データを吐き出すSpectreチップの欠陥はソフトウェアだけでは修正できないとGoogleの研究者は結論づけた

Table of Contents

データを吐き出すSpectreチップの欠陥はソフトウェアだけでは修正できないとGoogleの研究者は結論づけた

Google のセキュリティ研究者は、今日のプロセッサ コアに影響を与えているデータ漏洩の Spectre 脆弱性の影響を分析し、ソフトウェアだけでは悪用を防ぐことはできないと結論付けました。

チョコレートファクトリーの天才たち、ロス・マキロイ、ヤロスラフ・セヴシック、トビアス・テッビ、ベン・L・ティッツァー、トゥーン・フェルウエストは、さまざまな CPU ファミリに存在する投機的実行の脆弱性のスペクターギャングを悪用するユニバーサルガジェットと呼ばれるものを構築できることを示し、これにより、スレッドで実行される攻撃者が提供したコードが同じアドレス空間内のすべてのメモリを読み取ることができるようになります。

これは例えば、悪意のあるウェブページのJavaScriptコードがウェブブラウザのスレッドで実行されると、同じプロセス内の別のスレッドで実行されている別のウェブページのJavaScriptを盗み見ることができ、そのページから機密データを盗み取ることができる可能性があることを意味します。ブラウザにはすでにいくつかの緩和策が実装されています。例えば、Chromeのサイト分離機能はウェブページを別のプロセスで実行することで、悪意のあるJavaScriptによるスパイ活動の範囲を制限します。少なくともFirefox、Internet Explorer、Edgeは、Spectreスヌーピングに悪用される可能性のあるJSオブジェクトSharedArrayBufferの使用をブロックします。

しかし、攻撃者が提供したコードを解釈するブラウザやその他のアプリケーションにとって、根本的な脅威は依然として存在します。言語ベースの防御やプロセス内の同様の安全対策ではSpectreを阻止できません。個々のプロセスに個別の仮想アドレス空間とハードウェアで強制されるページテーブルを持たせ、ハードウェアベースの分離を行う必要があります。

脅迫か誇大広告か?

攻撃者が提供したコードが他のユーザー提供コードと同じアドレス空間で解釈されるシナリオは他にあまりないため(主にウェブブラウザが思い浮かびます)、Googleの調査は主に学術的なものであり、直ちにパニックになるようなものではありません。しかし、外部コードを解釈するソフトウェア(顧客のスレッドが同じプロセスを共有するクラウドベースの実行環境など)を開発している場合は、この点を十分注意する必要があります。

「信頼できないコードが汎用的な読み取りガジェットを構築し、サイドチャネルを通じて同じアドレス空間内のすべてのメモリを読み取ることができることを発見したため、今日のハードウェアの投機的な脆弱性は、既知の包括的なソフトウェアによる緩和策なしに、言語で強制される機密性をすべて破ると考えられるようになった」と研究者らは、プレプリントサービスArXivで配布された論文の中で述べている。

この論文のタイトルは「Spectre は今後も存在し続ける: サイドチャネルと投機的実行の分析」です。

2018年1月にThe RegisterがSpectreとMeltdownのバグを初めて報じた直後、ミシガン大学コンピューターサイエンス科助教授で、Spectreの最初の研究論文の共著者であり、当時は博士研究員だったダニエル・ジェンキン氏は、次のように語った。「ハードウェアの再設計以外にSpectreの根本原因を排除できる効果的な対策は、現時点ではわかりません」と、同氏は昨年The Registerに語っていた。

不気味なコンピューターチップ

Intel SGXの「安全」な部屋はホワイトハットハッカーの襲撃者によって簡単に破壊される

続きを読む

Spectre は、その名前が示すように、投機的実行を悪用するものです。投機的実行とは、プロセッサが他のタスクでビジー状態にある間にプログラムの将来のパスを推測し、予測計算を実行するという、最新のプロセッサの機能です。

正しいパスが推測されれば、これらの計算は保持されるため、時間を節約し、コード実行を高速化できます。しかし、Spectreの脆弱性が示したように、未来を覗き見る能力は悪用される可能性があります。

Spectreには複数の亜種が存在するが、根本的な問題はチップ設計者がセキュリティを犠牲にして速度を優先したことにある。「私たちのモデル、つまりメンタルモデルは間違っている。私たちはこれまでずっと、セキュリティを犠牲にしてパフォーマンスと複雑さを優先してきたのに、それに気づいていなかったのだ」と研究者たちは指摘する。

バリアント4「投機的エイリアシングの混乱」に対しては、Googleの研究者がソフトウェアによる解決策を見つけることができませんでした。「バリアント4は、私たちが考え得るあらゆる解決策を覆します」と研究者たちは述べています。

当初、ソフトウェアメーカーとハードウェアメーカーは、マイクロコードのアップデートやRetpolineなどの技術といった修正プログラムを推進しました。ブラウザメーカーのGoogleとMozillaは、投機的実行攻撃を困難にするため、タイミングデータへのアクセスを困難にしました。

しかし、それは無駄なようだ。「タイマーを操作してタイミングチャネルを緩和することは不可能であり、無意味であり、いずれにせよ最終的には自滅的である」と研究者らは述べている。

Googleの研究者たちは、同社のChromeブラウザ内のV8 JavaScript仮想マシンにSpectre対策を追加したが、問題の根本的な解決には至らずに動作が遅くなるため、パフォーマンスの低下が大きな問題となっていることに気づいた。「これらの緩和策はどれもSpectreに対する包括的な保護を提供しておらず、緩和策はパフォーマンスと保護のトレードオフという苛立たしい問題を抱えている」と研究者たちは述べている。

そのため、Googleはブラウザセキュリティの重点を前述のサイト分離に移しました。しかし、より優れたプロセス分離という形で、ハードウェアからの支援も必要です。

インテルは 2018 年 3 月に Spectre の脆弱性の一部に対するハードウェア修正を発表しましたが、Spectre Variant 1 については「ソフトウェアによる緩和策を通じて引き続き対処する」という同社の主張は、現在ではかなり疑わしいものになっています。®

Discover More