英国バーミンガム大学の科学者らは、機密計算のための「安全な部屋」とされるインテルのソフトウェア・ガード・エクステンション(SGX)セキュア・エンクレーブの機密性を侵害する新たな方法を開発した。
ここ数年、いわゆるセキュアエンクレーブ(安全な領域)を設定するために使用されるセキュリティ指向の命令セットであるSGXのセキュリティは、情報セキュリティ関係者から繰り返し批判されてきました。これらのエンクレーブは、コンピュータの管理者、オペレーティングシステム、アプリケーション、ユーザー、そして所有者でさえアクセスできないソフトウェアやデータを格納することを目的としています。暗号化されたメディアストリームをデコードする著作権侵害対策(DRM)や、クラウドサーバー内の機密性の高い暗号といったソフトウェアがこれに該当します。これらのエンクレーブは、個人の寝室で実行されているかクラウド環境で実行されているかを問わず、コードや情報を盗み見ることができないようにするためのものです。
2016年に懐疑的な見方が広がり、その1年後にはPrime+Probe攻撃とRowhammer攻撃がSGXの保護を徐々に弱体化させました。そして2018年にはSpectre攻撃が発生し、その後も一連の攻撃手法がエンクレーブ保護を破りました。
バーミンガムの科学者たち、つまりコンピューター科学者の Zitai Chen、Georgios Vasilakis、Kit Murdock、Edward Dean、David Oswald、および Flavio D. Garcia は、昨年彼らの一部が開発に協力した Plundervolt と呼ばれる攻撃のバリエーションを成功させた。
Plundervoltは、SGXエンクレーブを搭載した最新のIntelプロセッサに対するソフトウェアベースの攻撃であり、電圧を低下させることで障害やエラーを誘発し、暗号鍵などの機密情報の復元を可能にします。昨年12月の公開を受けて、IntelはマイクロコードとBIOSのアップデートを通じてプロセッサ電圧を低下させる機能を削除することで、この脆弱性を軽減しました。
研究者たちは現在、市販の電子機器約36ドル分を用いて、同様の攻撃をハードウェアで実装した。彼らは来年開催されるUsenix Security 2021カンファレンスで、この研究成果をまとめた論文[PDF]を発表する予定だ。
AppleがIntelプロセッサを捨てるもう一つの理由:専門家が発見したSGXカーネルデータ漏洩の脆弱性
続きを読む
彼らの手法は、バグを劇的に烙印を押すという伝統に倣い「VoltPillager」と名付けられ、IntelのPlundervoltパッチ(CVE-2019-11157)を適用したSGXシステムでも動作します。この手法では、CPUと電圧レギュレータ間のシリアル電圧識別バスにメッセージを挿入し、CPUコアの電圧を制御します。
これはリモート攻撃ではないため、システム管理者やユーザーが慌てて脆弱なシステムにパッチを適用するような事態にはなりません。サーバーへの物理的なアクセス(悪意のある回路基板を取り付けるためにサーバーを開ける)が必要となるため、主にマルチテナントコンピューティングのシナリオにおいて脅威となります。しかし、SGXの目的の半分は、サーバーが手の届かない場所にあり、クラウドプロバイダーなどの第三者のデータセンターにある場合に、機密コードやデータを不正なサーバー管理者から保護することです。しかし、クラウドプロバイダーの誰かが物理的にマシンにアクセスできれば、Intelプロセッサーを刺激してSGXの保護を破ることが可能です。
「SGXは悪意のある内部者やクラウドプロバイダーから防御できるとよく主張されているので、この攻撃は非常に関連性がある」とバーミンガム大学のセキュリティとプライバシーグループの講師で論文の共著者の一人であるデビッド・オズワルド氏はThe Registerへの電子メールで述べた。
オズワルド氏は、SGX を搭載した Intel Xeon E プロセッサ上で実行される Microsoft Azure DCsv2 シリーズの仮想マシンに関する Intel の発言を指摘し、次のように述べた。「サーバーに物理的にアクセスできるクラウド管理者やデータセンター オペレーターであっても、Intel SGX で保護されたデータにはアクセスできません。」
「我々は、そうではないこと、つまりSGXへの物理的な攻撃が非常に低コスト(約30ドル)で可能であることを実証しました」と彼は述べた。「そして、これまでのSGX攻撃とは異なり、我々の発見は(例えばマイクロコードなどで)簡単に修正することができません。」
これまでのSGX攻撃とは対照的に、私たちの発見は簡単には修正できない(マイクロコードなどで)
論文では、SVIDプロトコルへの暗号認証の追加、CPUによるSVIDバスへのパケット注入監視、エンクレーブコードへの対策といった緩和策の可能性について触れている。しかし、これらの手法はどれも特に有望ではないと主張している。スマートカードの電圧監視回路といったハードウェアベースの緩和策も一つの可能性だが、論文ではチップ設計の変更が必要となり、オーバーヘッドが発生すると指摘している。
どうやらIntelは試みるつもりすらないようだ。研究者たちは3月にIntelに攻撃を報告したが、「SGXを侵害するためにケースを開けて内部ハードウェアを改ざんすることは、SGXの脅威モデルの範囲外です。CVE-2019-11157(Plundervolt)のパッチは、脅威モデルに基づくハードウェアベースの攻撃から保護するようには設計されていません」と返答された。つまり、Microsoft Azureに対する約束は完全に水の泡となったのだ。
インテルの広報担当者もThe Register宛ての電子メールで同様の声明を発表し、次のように述べている。「ネジを外したり、プラスチック製のケースを破壊したりといった、攻撃者が物理的にケースを開けてデバイスの内部ハードウェアにアクセスする必要がある手法は、通常、脆弱性として扱われません。これまで通り、システムを最新の状態に保ち、デバイスの物理的な所有権を維持することをお勧めします。」
データセンターがポケットに入れて持ち運べるなら、この推奨はもっと意味のあるものになるでしょう。ただし、そうするのはお勧めしません。しばらくすると熱さに耐えられなくなるからです。
VoltPillagerの脅威に直面しているのはIntelだけではないかもしれない。研究者たちは他のベンダーのプロセッサには攻撃を試みなかったが、論文の中でAMDがSVIバスを介してCPUに接続された電圧レギュレータを含む同様のプロセッサ設計を採用していると指摘している。
研究者たちは、調査結果を考慮すると、計算上の秘密を守るために第三者や安全な領域に頼るのは賢明ではないかもしれないと結論付けている。
「この論文の結果と、メーカーがこのタイプの攻撃を緩和しないという決定を合わせると、機密計算を信頼できないリモートプラットフォームにアウトソーシングするという、広く信じられているエンクレーブ実行の約束がまだ実行可能かどうかを再考する必要がある」と論文は結論づけている。®