Linuxのデータ漏洩を引き起こすSpectreの脆弱性は修正済みだと思っていましたか? もう一度考えてみてください。パッチは完璧ではありません

Table of Contents

Linuxのデータ漏洩を引き起こすSpectreの脆弱性は修正済みだと思っていましたか? もう一度考えてみてください。パッチは完璧ではありません

Google のエンジニアが、投機的実行のスヌーピングを阻止するために実装された防御策が意図したとおりに機能していないと報告したことを受けて、Linux カーネル開発者らはオープンソース プロジェクトの 3 つの弱点を修正している。

火曜日に Linux カーネル メーリング リストに緊急としてマークされた 3 つの投稿で、Anthony Steinhauser 氏は、投機的実行を実行する最新の Intel および AMD x86 マイクロプロセッサの Spectre 脆弱性をブロックするために導入された対策の問題点を指摘しています。

Spectreファミリーの脆弱性は、標的のシステムに推測操作(必要のない可能性のある操作を実行すること)をさせ、機密データを露出させることで、攻撃者が保護されていないサイドチャネル経由でそのデータを入手できるようにするものです。通常、この脆弱性は、コンピューター上で既に実行されているマルウェア、または既にログインしている不正ユーザーによって悪用されます。

投機的ストアバイパスの脆弱性(CVE-2018-3639)に対する防御策である投機的ストアバイパス無効化(SSBD)には、高コストなモデル固有レジスタ(MSR)書き込み操作を回避するための最適化が施されています。しかし、この最適化は盗聴者がSSBDを無効化できるという欠点を孕んでいます。

チップセキュリティの図解

メルトダウン続編がインテルチップを襲う – データ干渉LVIの欠陥に対する完全な緩和策でパフォーマンスが大幅に低下

続きを読む

Steinhauser 氏は、SSBD を適用する際に間違った値を設定する論理上の欠陥があると述べています。

「攻撃者がSSBDを強制し、被害者のプロセスとは逆のSTIBP(シングルスレッド間接分岐予測子)の値を持つプロセスを作成し、それを被害者のプロセスと同じコアにスケジュールすると、悪用される可能性があります」と彼は説明した。

「被害者が攻撃者を追いかけると、Spectre V4 に対して脆弱になります。」

Linux は、特定の状況、具体的には STIBP が利用できない場合や間接分岐制限投機 (IBRS) が利用可能な場合、Spectre V2 による分岐ターゲット バッファー攻撃に対する防御である間接分岐予測バリア (IBPB) と呼ばれる Spectre 緩和策も強制的に無効にします。

これにより、Linux を実行している AMD 搭載コンピューターが脆弱になる可能性があります。これは、製造元が Spectre V2 に対する防御策として IBRS や STIBP ではなく IBPB を使用することを推奨しているためです [PDF]。

最後に、Steinhauser 氏は、間接分岐投機を無効にする設定が機能しないことを指摘しています。

「現在、オプションを使って強制的に無効化した後でも、間接分岐投機を有効にすることが可能ですPR_SPEC_FORCE_DISABLE」と彼は記しています。さらに、このPR_GET_SPECULATION_CTRLコマンドはその後、誤った結果(実際には有効になっているのに強制的に無効化された結果)を返します。」

修正されたコードは現在 Linux コードベースに組み込んでおり、まもなく利用可能になる予定です。®

Discover More