その深刻度は

ソフトウェア同様、CPUにもバグはある

2007/07/05

 これは普通のバグ報告やパッチとは違う。問題があるのはCPUだ。人々はその深刻度を議論している。

 CPUのバグは何も新しいものではない。1990年ごろ、わたしはIBMのDOSバージョンに取り組んでいたプログラマーと1日過ごしたことがある。彼は一部のIntel CPUにいかにバグが多いか、そのことについてどれだけインテルに苦情を言ったか(そして無駄だったか)をひっきりなしに話していた。これはOSを書く仕事ではよくあることだが、セキュリティの角度から見ると比較的新しいと言える。

 この件に関するシオ・デ・ラット氏の率直なブログは、さまざまなセキュリティリストで引用されている。デ・ラット氏はCore 2 CPUラインには「ひどいバグがある」とし、この問題はパッチが当てられているものの、無害なバグではなく、userlandコードからそのまま悪用できるセキュリティ問題だと断言している。つまり、悪用するにはコードを実行するためのローカルアクセスが必要になるが、特権アクセスは不要だということだ。

 インテルによるこれらプロセッサの「Specification Update(PDF)」には、修正されたバグの多くに含まれるエラッタセクションが入っている。デ・ラット氏は、このエラッタのいくつかを恐ろしいといっている。わたしが見たところでは、これらのバグはプロセッサのハングアップや「予測不可能なシステムの振る舞い」につながる可能性がある。とりあえず、インテルが正直で正確であると仮定しよう。そうすると、これらは明らかに問題であっても、わたしには特に恐ろしいものには見えない。

 マイクロソフトのマイケル・ハワード氏が最近、DoS(サービス停止)攻撃について話したように、誰かのシステムをクラッシュさせるのは、ドアベルを鳴らして走り去るようなものだ。迷惑な行為ではあるが、何事かを成し遂げるものではないし、ちょっとくだらないくらいのことだ。名声のためのハッキングは数年前に流行遅れになってしまったと私は思っている。だから、どうしてわざわざそんな攻撃を広めるのだろうか。

 問題のバグのフィックスは、プロセッサのマイクロコードの形で提供されている。(最近知ったのだが)このCPUマイクロコードのアップデートは実行時にロードできるが、それは持続しないということが分かっている。これを適用する一般的な方法は、ブート時にBIOSで適用するというものだ。従って CPUアップデートはBIOSフラッシュアップデートとして提供できる。

 だがアップデートはOSによって適用されることもある。このケースでは、マイクロソフトがそれを行った。Knowledge Base 936357には、「インテルプロセッサを使っているシステムの信頼性を向上させる」とする「マイクロコード信頼性アップデート」へのリンクが掲載されている。

 確かに、バルディス・クレトニクス氏がfunsecリストへの投稿で以下のように説明している通り、インテルはプロセッサにマイクロコードの一時的なパッチのためのスペースを残している。

 約294Kバイトのデータがあり、現在は125のチャンクがある。それぞれのチャンクは基本的に、ファミリー、モデル、ステッピング、チェックサム、長さ、そして「ランダムに見えるバイト」で構成されている。分解できるようになっており、もしもデルが、6種のCPUのうち1つが特定のノートPCに搭載される可能性があり、ほかの119種のいずれでもないと知っていれば、これらの6種をBIOSに含めるだけでいい。もちろんマイクロソフトのアップデートに294Kバイトをすべて含める必要があるだろう。

 マイクロソフトがこのようなフィックスを提供しており、それが何のためのものかをはっきりさせていないという事実は、同社がこの問題を深刻なものと受け止めていることを物語っている。このアップデートがWindows UpdateまたはMicrosoft Updateに現れるかどうかじきに分かるだろう。

 このようなパッチを書くのは、マイクロソフトのような企業が単独でやれることではない。マイクロコードは普通のコードとは違う。プロセッサのバージョンあるいはステッピングによって変わる傾向がある。マイクロソフトはインテルからさまざまなアップデートを受け取り、それを1つのプログラムにパッケージ化したのだろう。例えば、アップルなどから同様のアップデートが提供されることも考えられるが、デ・ラット氏は、「インテルはBIOS ベンダーと大手OSメーカーに詳細なフィックスを提供しているだけだ。オープンソースOSはおおむね蚊帳の外に置かれている」と述べている(同氏はそれを知っているはずだ)。

 プロセッサのバグが、実際のコンピュータへの本格的な攻撃手段に変えられるという心配はしていない。手間がかかるわりにリターンが少ないように思えるからだ。マイクロソフトが先月修正した脆弱性を利用する方がいい。だがデ・ラット氏が言うように、インテルはおそらくいくつかのエラッタを隠しているだろう。同社は長年の間、文書を公開してこなかった。この未知の問題がどれほど深刻か、誰に分かるだろうか?

原文へのリンク

(eWEEK Larry Seltzer)

情報をお寄せください:



@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)