32c3インテルの x86 プロセッサに関するセキュリティ上の懸念 (同社が秘密の Management Engine マイクロコントローラを自社のシリコンに強制的に組み込む決定など) により、どのようなアーキテクチャに基づいているかに関係なく、パーソナル コンピュータの信頼性に関する根本的な疑問が生じています。
YouTubeビデオ
Invisible Things Labs の創設者でセキュリティ研究者の Joanna Rutkowska 氏は、日曜日にハンブルクで開催された第 32 回 Chaos Communications Congress (32c3) で最初の講演の 1 つを行いました。講演「(十分に) 信頼できる x86 ラップトップに向けて」では、Intel x86 を「安全ではなく信頼できない」ものにしていると考えられる問題点を改めて述べ、それらの問題点が実際に解決される可能性があると考えている理由を説明しました。
この講義は、ルトコフスカ氏の 10 月の論文 (PDF) に基づいており、同論文では、現代のオペレーティング システムのほとんどは信頼しすぎていると主張しているほか、同氏の 12 月の提言 (PDF) も取り上げられている。
問題は、カーネル、ドライバ、その他の低レベルコードは信頼できると想定されているものの、そこに潜むバグを悪用され、セキュリティメカニズム全体を無効化される可能性があるという点です。ルトコフスカ氏はさらにこう付け加えました。「数千ものドライバ、ネットワークプロトコルやスタック、ファイルシステムサブシステム、グラフィックスやウィンドウサービス、その他OSが提供するサービスのいずれかに対するエクスプロイトが成功する可能性は、システムアーキテクトによって低いと考えられてきました。」
Rutkowska 氏によると、ファームウェア レベルの脆弱性 (LightEater など) とブート セキュリティの不適切な実装 (Intel TXT など) は、周辺機器を通じてもたらされる少数の攻撃ベクトルと並んで、攻撃者に十分な攻撃材料を提供します。
これは、機密データをハードウェアに預けることは現実的に不可能であり、重要な情報はメインマシンから分離しておくべきであることを意味します。彼女は、人間とパーソナルコンピュータの相互依存がますます高まるにつれ、「状態を担う(信頼できる)要素をハードウェアの残りの部分から厳密に分離する」ことが必要になったと述べています。
ルトコフスカ氏は、GnuPGやTorからOpenVPN、ディスク暗号化ツールLUKSに至るまで、近年のアプリケーション層における個人のセキュリティ向上に向けた共同の取り組みは「オペレーティングシステムを信頼できなければ意味がない。なぜならオペレーティングシステムは信頼される部分であり、それが侵害されればすべてが失われるからだ」と述べた。
信頼できるオペレーティングシステムスタックの構築に向けた注目すべき取り組みがいくつか行われてきました。ルトコフスカ氏自身も5年前にオープンソースのQubes OSプロジェクトを立ち上げ、現在では数十人の貢献者がいます。Qubesは、それぞれ異なるアプリケーションをそれぞれ独自の仮想マシンで実行することで動作します。例えば、従来のウェブサイトにアクセスするためのブラウザを実行するVMと、GPGを実行するVMは別々です。ブラウザが侵害された場合、攻撃者は暗号化されたメールクライアントにアクセスするためにXenハイパーバイザーを突破する必要があります。
Qubes OS バージョン 1.0 は 2012 年にリリースされ、3.0 は今年 10 月にリリースされました。
彼女の講演の中心は、ハードウェア、特にラップトップに関しては、信頼性が広く想定されているが、それは当てはまらないという点でした。
Intel x86 ラップトップの何が問題なのでしょうか?
Intelのx86プラットフォームは現代のラップトップに広く採用されており、「現在のIntelプロセッサはまさにあらゆる機能を統合しています」とRutkowska氏は述べています。「10年前は、プロセッサ、ノースブリッジ、サウスブリッジ、そしておそらくはさらに多くの個別の要素がマザーボード上に搭載されていました。今日では、これらの要素のほぼすべてが1つのプロセッサパッケージに統合されています。」
「もちろん、これを製造しているのは1社だけです」とルトコフスカ氏は述べた。「インテルというアメリカの企業で、構造は完全に不透明です。チップ内部を検査する方法は全くありません。このチップのおかげで、ノートパソコンの製造が非常に簡単になり、多くのベンダーが魅力的な小型ノートパソコンを製造できるようになったのです。」
ジョアンナ・ルトコフスカ © 2015
今日のプロセッサについて語るとき、もはやCPUだけの話ではありません、とルトコフスカ氏は言います。「プロセッサとは、CPU、GPU、メモリコントローラハブ、PCI Express、サウスブリッジ(例えばSATAコントローラ)など、そしてマネジメントエンジン(ME)と呼ばれるものも含むようになったのです。」
Intel MEはマイクロコントローラーであり、IntelのAMTハードウェアおよびファームウェアテクノロジーの一部です。これにより、管理者はネットワーク経由でハードウェアをリモート管理できます。これは、実行中のオペレーティングシステムに関係なく、すべてこのテクノロジーの影響を受けます。この管理はスタックの低レベルで行われるため、OSを介さずに実行されます。つまり、インストール済みのWindowsをLinuxディストリビューションで上書きしても、信頼性は保証されません。
MEマイクロコントローラには独自のRAMが搭載されており、システムのRAMにアクセスできます。さらに、ファームウェアコードを格納した専用のプライベートROMも搭載されており、誰もそれを検査することはできません。「MEマイクロコントローラは、多数の独自プログラムを実行します」とルトコフスカ氏は述べ、「Intel独自のOSも実行します。プロセッサに電源が接続されている限り、スリープモード時でさえも、これらはすべて実行されます。そのため、MEマイクロコントローラは好きなように動作している可能性があります。」
彼女はこう付け加えた。
セキュリティ担当者がまず思い浮かべるのは、これがバックドアやルートキットの理想的なインフラだということです。確かにその通りです。しかし、もう一つ問題があります。それは、私が「パーソナルコンピューティングのゾンビ化」と呼んでいるものです。
元ステルスマルウェア研究者のルトコフスカ氏は、マネージメントエンジン以上にマルウェアにとって理想的なインフラストラクチャは想像できないと述べています。「MEは重要なものすべてにアクセスできます。DRAM、CPU本体、GPUに制約なくアクセスでき、ネットワークカード、特にイーサネットカードと通信できます。イーサネットカードのコントローラもプロセッサのサウスブリッジに搭載されています。また、SPIフラッシュ上に専用のパーティションがあり、MEが保存したいものを何でも保存できます。これは非常に問題が多く、何を実行しているのか全く分かりません。」
ゾンビ化
通常、ソフトウェアはアプリケーション層で実行され、ソフトウェアによるすべての意思決定がそこで行われることが期待されます。その下の低レベル コードは仲介者として機能し、ユーザーが望むことをハードウェアに指示します。
MEを設計したIntelのアーキテクトの一人が書いた本を引用し、Rutkowska氏によれば「それはIntel MEについての唯一の公式情報源」であり、Intelはこのモデルを完全に逆転させたいと考えていると研究者は考えている。
インテルは「本質的に、アプリ、そしてオペレーティングシステムからデータに関係するロジックをすべて排除し、Intel MEに移行したいと考えています。Intel MEもまたオペレーティングシステムであり、独立したオペレーティングシステムです。どのように動作するのかは誰も知りません。バイナリを解析できないため、ソースコードを見ることも、リバースエンジニアリングすることもできません。これは、提供する機能と同様に、インテルによって完全に管理されているオペレーティングシステムです」と彼女は述べた。
ME ブラックボックスは信頼できない、とルトコフスカ氏は言う。「アーキテクチャの複雑さは、効果的に解決できるとは思えない。」
この出来事は、マシン上のソフトウェアを安全にロックダウンし、区画化できるというQubes OSの自信を揺るがしたように思えたが、別の方法で勝利できるかもしれない。「古いルールのままでは、本当の意味で勝つことはできない」とルトコフスカ氏は述べ、今こそルールを変えるべき時かもしれないと付け加えた。「まずは、ここで問題となっているほとんどのものが、永続的な状態から始まっていることを認識することから始める必要がある」