今年、研究者たちがIntel, AMD, そしてARMのチップに、設計上の根本的な弱点を見つけたときには、今の世代のコンピューターのプロセッサーのほとんどすべてに対し、極刑が求刑されたようだった。その設計ミスによって、コンピューターのメモリーから機密データを盗むことが可能だからだ。
そのMeltdownおよびSpectreと呼ばれる脆弱性は1995年まで遡(さかのぼ)り、アプリケーションがシステムのメモリーの、自分にパーミッションのない部分にアクセスできないようにしている壁に穴を開けた。それにより有能なハッカーは、パスワードや暗号鍵などの機密データが保存されている場所を見つけることができる。多くの企業がその欠陥の一部を緩和してきたが、真の長期的な解決は、コンピューターのプロセッサーの設計の最初からのやり直しであることも知っていた。
このたび、MITのComputer Science and Artificial Intelligence Laboratory(CSAIL)の研究者たちが、将来にわたって、MeltdownやSpectreのような欠陥を防止できる方法を見つけた。
アプリケーションが何かをメモリーに保存したくなったら、置くべき場所をプロセッサーに尋ねる。しかしメモリーの探索は遅いので、プロセッサーは“speculative execution”(投機実行)と呼ばれるトリックを使って、複数のタスクを同時に動かし、正しい空きメモリーを探そうとする。しかし悪質なハッカーは、その同じテクニックを使って、アプリケーションが自分に許されていない場所のメモリーから読めるようにする。
MITのCSAILによると、彼らのテクニックはメモリーを分割することによって、データが同じ場所に保存されないようにする。それを彼らは、“secure way partitioning.”(安全な方法によるパーティショニング)と呼んでいる。
彼らはこの方式をDAWG、“Dynamically Allocated Way Guard”(ガードを動的に割り当てる方法)と名付け、それは滑稽な名前のようにも聞こえるが、IntelのCache Allocation Technology, CAT(キャッシュ割り当て技術)を補完する意味を持つ。彼らの研究論文によると、DAWGはCATと同じような仕事をし、使うにあたってデバイスのオペレーティングシステムの変更箇所も少ない。したがって、Meltdownのフィックスとして問題のコンピューターにインストールするのも容易である。
ペーパーの著者の一人Vladimir Kirianskyによると、このテクニックは“共有が起きるべきところと、起きるべきでないところとの、明確な境界を確立し、機密情報を扱うプログラムがそのデータをまあまあ安全に保てるようにする”。
この技術は通常のコンピューターを保護するだけでなく、クラウドの脆弱なインフラストラクチャも保護できる。
DAWGはすべての投機的攻撃を防げるわけではないが、今研究者たちは技術の改良に取り組んでおり、すべての攻撃ではないものの、これまでよりも多くの攻撃を防げるようになる、と言っている。
しかし彼らの技術を実際にIntelなどのチップメーカーが採用すれば、DAWGのようなテクニックは“パブリッククラウドのインフラストラクチャに対する信頼を再興し、ハードウェアとソフトウェアの共同設計によりパフォーマンスのオーバヘッドも最小化できる”、という。
〔関連記事: スペクター! メルトダウン! カーネル・パニック!――今回の脆弱性はほぼ全員に影響が及ぶ。〕
[原文へ]
(翻訳:iwatani(a.k.a. hiwa)