Googleは、Intel CPUに対するデータ漏洩のSpectreエクスプロイトの概念実証を公開し、注目を集めている。

Table of Contents

Googleは、Intel CPUに対するデータ漏洩のSpectreエクスプロイトの概念実証を公開し、注目を集めている。

Googleは金曜日、Chromeブラウザに対してSpectreベースの攻撃を実行するための概念実証コードを公開し、ウェブ開発者がブラウザベースのサイドチャネル攻撃を軽減するための対策を講じることができることを示した。

GitHubに投稿されたコードは、Intel Skylake CPUを搭載したChrome 88上で、攻撃者がデバイスメモリから1KB/秒の速度でデータを取得する方法を示しています。Googleによると、この攻撃はArmベースのApple M1チップを搭載したブラウザでも有効であるはずです。

このコードはタイミング攻撃を実行し、攻撃者はメモリへのアクセスに必要な時間を観察し、操作が高速か低速かに基づいて、選択したアドレスがキャッシュ内にあるか、ロードする必要があるかを推測します。

「警告」警告の横にあるチップ上のスペクターのロゴのイラスト

Googleのエンジニアは、データ流出のスペクターに悩まされているこの世界で、ウェブ開発者にコードのセキュリティを強化するよう促している。

続きを読む

この情報を入手した攻撃者は、メモリ内のコード構造であるSpectreガジェットを用いてJavaScript配列をテストし、キャッシュされたデータを復元することができます。これにより、攻撃者はメモリ内に保存されている暗号鍵やその他の機密情報を盗み出す可能性があります。

Google は、サイドチャネルによるデータ漏洩を実証するウェブページも開設しました。

「2018年1月に公開されたスペクター脆弱性は、プロセッサ(CPU)設計の脆弱性の一種を悪用し、CPUが後続の命令を投機的に実行している間に、攻撃者が意図したプログラム制御フローを変更できるようにする」と、Googleのセキュリティエンジニアであるスティーブン・ロッガー氏とアルトゥール・ヤンク氏はブログ投稿で説明した。

例として、実際の命令パスが範囲外のメモリアクセスにつながっているにもかかわらず、CPU がメモリ長チェックが合格したと誤って推測する可能性がある方法について説明します。

「予測ミスが判明するとCPUの状態はロールバックされるが、この動作は攻撃者にデータを漏らす可能性のある目に見える副作用を残す」と研究者らは説明している。

YouTubeビデオ

Googleのエンジニアたちは、公開していないものの、異なる特性を持つ他のPoCも開発していると述べています。あるPoCは8kB/秒の速度でデータを漏洩できるとのことですが、performance.now() APIを5μs(0.005ms)の精度のタイマーとして使用しているため、この高速化には安定性の低下が伴います。また、1ms以下の精度のタイマーを使用した別のPoCでは、データ漏洩速度はわずか60B/秒でした。

彼らが公開を選択したPoCコードは、セットアップが容易で、SharedArrayBufferのような高精度タイマーなしで動作するためだと彼らは述べています。Googleのソフトウェアエンジニアは、多くの最新CPUでデータ消去に使用されているTree-PLRUキャッシュエビクション戦略を悪用することで、低精度タイマーに対するこの手法の有効性を高めることに成功しました。そして、この戦略を説明する別のウェブデモも公開しています。

  • 学術研究によると、インテルのCPUインターコネクトはマルウェアに悪用され、暗号化キーやその他の情報が漏洩する可能性がある。
  • Google は Chromium の ASLR セキュリティ防御のバイパスを調査したが、諦めてゴミ問題にパッチを当てない
  • メルトダウンとスペクターの欠陥発見に貢献した学者は、複雑さがコンピュータセキュリティを破ったと語る
  • 不意打ちを食らうな: 投機的なメモリプロービングがカーネル防御を回避し、マルウェアにルート権限を与える

ロッガー氏とヤンク氏は、この概念実証コードが大幅な変更なしに実際の攻撃に使えるかどうかは疑問だと述べている。彼らは、スペクターのリスクが現実のものであることを示すために、コードを公開する必要があったと主張している。

「特に、ウェブアプリケーション開発者に対して、セキュリティ評価においてこのリスクを考慮し、サイトを保護するための積極的な措置を講じる必要があるという明確なシグナルとなることを期待しています」と説明している。

今週初めにお伝えしたように、W3Cのウェブアプリケーションセキュリティワーキンググループは、Googleのセキュリティエンジニアであるマイク・ウェスト氏が作成した、ウェブ開発者がSpectre耐性コードを作成するために取るべき手順をまとめた勧告を支持するかどうかを検討しています。ロッガー氏とヤンク氏は、ウェブ開発者がこのメッセージを理解することを期待して、これらの防御仕様(CORP、COOP、COEPなど)を引用しています。®

Discover More