- GoogleのシニアリサーチャーであるDaniel Moghimi氏が、第6世代〜第11世代のIntel CPUに影響するDownfall脆弱性(CVE-2022-40982)を公開。
- Intel CPUのメモリ最適化手法でデータ漏えいが発生し、信頼できないプロセスが他のメモリにアクセス可能。
- メモリ上に散在するデータへ高速にアクセスするためのGather命令が予測実行される際、内部ベクターレジスタファイルの内容が漏えい。
- これを悪用するために、GDS(Gather Data Sampling)およびGVI(Gather Value Injection)技術を導入。
- Linux環境で、他ユーザーの暗号鍵を盗んだり、カーネルのデータを抽出したりするデモを公開。
- 特にGDS手法が非常に効果的で、OpenSSLから鍵を盗むPoC攻撃を2週間で成功。
- この脆弱性は、一般的な仮想マシンやユーザー-カーネル分離だけでなく、ハードウェアセキュリティ技術であるIntel SGXも回避可能。
- 理論上、Downfall攻撃はWebブラウザでも実行可能だが、追加研究が必要。
- またDownfall攻撃は一般的なプログラムと似て見えるため検知が非常に難しく、市販のアンチウイルスソフトウェアでは検知できない。
- 2022年8月24日にIntelへ脆弱性を共有しており、Intelは脆弱性を緩和するアップデートを準備中。
- ただし最大50%のオーバーヘッドが発生する可能性があるとのこと。
- PoCコードも公開されている。
5件のコメント
またお前か、インテル?!
最大50%のオーバーヘッドということは、それだけCPUが遅くなるということなんでしょうか……。
Hacker News 側のコメントを見ると、最大 50% のオーバーヘッドが発生する可能性があるのは Gather 命令に限られるようです。
一般的なアプリケーションの性能低下は大きくないだろうとのことです。
Intel CPUの脆弱性は次々と出てきますね。Meltdown、Falloutに続く3つ目の脆弱性だそうです。
論文のAI要約:
この論文は、現代のCPUにおける「Gather Data Sampling」(GDS)脆弱性を利用した「Downfall」攻撃を紹介する。GDSは、SIMDレジスタバッファのようなCPUコンポーネントから古いデータを漏えいさせ、ユーザー・カーネル間や仮想マシンといったセキュリティ境界を越えた攻撃を可能にする。
GDSは複数バイトのデータを同時に盗み出すことができ、プロセス間で最大5.7KB/sの高速な秘匿チャネルを構築できる。OpenSSLのAES暗号化を対象としたブラインド攻撃により、暗号鍵を盗み出せることを実証している。
GDSにより、ソフトウェアが明示的に読み取らなくても、キャッシュされていないメモリや no-op 演算を持つページにアクセスすることで任意のデータを漏えいさせることができる。GDSによって悪用された際にデータを漏えいさせる、
memcpyベースの「ガジェット」コードが特定されている。これによりLinuxカーネルからデータを盗み出す。「Gather-based Volatile Injection」(GVI)攻撃が紹介され、gather後のデータ依存演算を通じて古いデータを注入し、任意の情報を漏えいさせることができる。これにより、別プロセスからデータを漏えいさせることを実証している。
GDSは、マイクロアーキテクチャバッファをフラッシュした後でも依然として有効であることが示されている。これは、以前の脆弱性に対するパッチが適用されたIntel CPUを含む、テストされたすべてのIntel CPUに影響する。
この論文は、世界中のコンピュータの安全性を弱める重大な脆弱性を特定し、現在の防御手段は有効ではないとして、緊急のハードウェア修正を求めている。CPU設計とテスト手法における深刻な限界を明らかにしている。