Raspberry PiはSpectreまたはMeltdownエクスプロイトに対して脆弱ですか?


58

SpecterとMeltdownという 2つの新しい重大なセキュリティ欠陥が発見されました。

Raspberry PiはSpectreやMeltdownに対して脆弱ですか?


1
研究者によると:現時点では、ARMおよびAMDプロセッサもMeltdownの影響を受けるかどうかは不明です。
長寿

1
ブラウザ(Chrome / Firefox)でJavascriptを使用してパスワードを盗むことができる例があります。
長寿

4
@ alex2003super:びっくりしないでください。影響を受けるデバイスの規模は驚異的ですが、実際にこの問題の影響を実際に受ける可能性はかなり低いです。そして、たとえ彼らがそうでなかったとしても、びっくりすることは助けにはなりません。:)
モニカとの軽さレース

1
ここは主題についての最近の記事で、彼らは脆弱ではありませんようだraspberrypi.org/blog/...
オマールElabd

5
この投稿に興味があるかもしれません:raspberrypi.org/blog/…–
pfm

回答:


61

ARM自身によると、Pi 4より前のすべてのモデルで使用されているプロセッサコアは脆弱ではありません

Armプロセッサの大部分は、このサイドチャネル投機メカニズムのバリエーションの影響を受けません。影響を受けやすいArmが設計したプロセッサの小さなサブセットの決定的なリストを以下に示します。[表のリンクを参照]

古いPiで使用されているプロセッサコアは次のとおりです。

上記のコアはいずれも、どのバージョンの攻撃に対して脆弱であると記載されていません(実際、これらの攻撃に対する既知の脆弱性がないため、まったく記載されていません)。

ラズベリーパイ4は、使用のCortex-A72脆弱としてリストされているに記載されているとおり2、変異体1に、図3aおよび4を幽霊の攻撃に対して脆弱ラズベリーパイ4ですか?、Raspbianにはこれらの脆弱性に対するソフトウェアの緩和策が含まれているため、悪用されるリスクは低いはずです。他のオペレーティングシステムには適切な緩和策が含まれていない可能性があり、ARMはCortex-A72のハードウェア緩和策がリリースされたと述べていますが、これがPi 4に適用されたかどうかは不明です。

バリアント1および2(CVE-2017-5753およびCVE-2017-5715)はSpecterとして知られており、バリアント3(CVE-2017-5754)および3a(ARMが調査した関連する攻撃)はMeltdownと呼ばれることに注意してください。したがって、Pi 4より前のRaspberry Piデバイスはいずれも、SpectreまたはMeltdownに対して脆弱ではないと考えられています。


他のアーキテクチャで必要なLinuxカーネルへの変更が、Raspberry Piで実行されるLinuxのバージョンにプッシュされるのではないかと思いますか?おそらく、これらの変更によりシステムの速度が低下するため、パッチが不要であってもRPが影響を受ける可能性があります。
ボビーデュレット

4
カーネルパッチは、実行中のプロセッサを検出し、影響を受けるモデルでない場合は自動的に無効にします。さらに、Raspberry Pi(および他のほとんどのシングルボードコンピューター)のカーネルは利用可能なハードウェア専用に構築されており、メンテナーが問題のパッチを含めたり有効にしたりする理由はありません。
パーキンス

1
@BobbyDurrett、カーネルに対するMeltdownの変更は、コードベースのx86固有のセクションにあります。Spectre関連の変更はいたるところにありますが、それらのほとんどはコードのプロセッサー固有のセクションにあるか、コンパイラーによって処理されます。ネットワークコードの構造的な変更などの一部のビットは、Piに漏れることがありますが、ほとんどは漏れません。
マーク

コメントをありがとう。Linuxカーネルコードのどの部分がプロセッサ固有であるかを考えるのは興味深いことです。さまざまな種類のCPUで実行されるオペレーティングシステムでは、各プロセッサに固有のコードを適切に分割する必要があります。
ボビーデュレット

22

Pi(すべてのバージョン)は脆弱ではありません。

SpectreとMeltdownはどちらも順不同の実行を必要とします。Cortex-A7の早期パイ2とで使用されるのCortex A53以降のパイ2とPI 3で使用されるが、厳密インオーダーアーキテクチャです。ARM11パイ1で使用されるが、部分的にアウトオブオーダーではなく、仕事にスペクターやメルトダウンが可能な方法です。

ARMはこれを確認します:ARMプロセッサの非常に限られたサブセットのみがSpectreに対して脆弱なハードウェアを持ち、さらに限られたサブセットはMeltdownに対して脆弱であり、それらのすべてが脅威の緩和を許可すると考えられています。


10

これについての私の別の見解を提供したいと思います。

Meltdownについては、一部のプロセッサに特有の脆弱性があるため、Raspberry PiのCPUに脆弱性がないとARMが言う場合、おそらく信頼できる可能性があります。

ただし、Spectreはより一般的な脆弱性です。これまでのところ、2つの亜種しか実証されていませんが、もっと多くの亜種があると確信しています。CPUの障害は、コンテキスト切り替えを行うときに分岐予測子の状態がフラッシュされず、分岐予測子の状態が分岐命令アドレスの下位ビットによってインデックス付けされ、まったくタグ付けされないことです。そのため、プロセスの境界を超えて、2つのブランチが同じブランチ予測子の状態を共有している場合があります。

すべてのRaspberry PiモデルのCPUは、ブランチプレディクタが2ビット飽和カウンタの単なる大きな配列であるという点で、他のすべてのRaspberry Piモデルとほぼ同じであると確信しています取られない)。この配列のインデックスは、分岐命令アドレスの下位ビットであり、タグはありません。この予測子の状態はフラッシュされません。

現在、2つのブランチが同じ予測子状態を共有している場合、ごく最近の過去に特定のブランチがどのように進んだかを測定できます。スペクターの情報漏洩はこうしてあります!ブラウザーを確実にトリガーして、JavaScriptからパスワードに分岐するコードを実行し、分岐がどの方向に行ったかを測定できる場合、実際にパスワードを抽出できます。これは極端な例です。JavaScriptからトリガーできるような方法で、パスワードのすべてのビットに正気な人はいませんが、これは問題を示しています。

ARMの言うことすべてを信じないでください。ARMが意味することは、おそらくGoogleが開発したエクスプロイトがこれらのARM CPUで動作しないことです。それは彼らがSpectreに無敵であることを意味しません。他の種類のエクスプロイトが機能する可能性があります。

この質問を参照してください:https : //security.stackexchange.com/questions/176678/is-branch-predictor-flush-instruction-a-complete-spectre-fixとその回答の意味を理解します。ブラウザで実行されている不正なJavaScriptコードは、プロセス内の他のブランチが行った方法をSpecterが測定するために発生する可能性があります。ブラウザーが信頼できないコードを実行する前に積極的にブランチプレディクターをフラッシュしない限り、ブランチプレディクターフラッシュ命令でさえ、この不正なJavaScriptの問題を解決しません。

20ビット(2ビット飽和カウンタが必要になるため、インデックスとして14ビットを使用する分岐プレディクタは32ビットアドレス空間の残りの18ビットでタグ付けされないため、幽霊は非常に長い間私たちと一緒にいます、18ビットタグ)を2ビットだけでなく。これにより、分岐予測子のサイズが10倍になります!CPUメーカーは、特別な特権のないユーザー空間でも動作する分岐予測子フラッシュ命令を追加し、カーネルはコンテキスト切り替え時にそれを使用し、ユーザー空間は信頼できないJITedコードを実行するときに使用することを期待しています。これにより、実際にはほとんどのSpectre問題が修正されますが、理論的にはすべてではありません。


今、2つのブランチが同じ予測子状態を共有している場合、特定のブランチがごく最近にどのようになったかを測定できます。」投機的実行なしでこれを行う方法
ピーターテイラー

@PeterTaylorこれらのARM CPUには分岐予測機能があるため、投機的実行があります。それらが欠けているのは、順不同の実行です。
ジュスト

それらは投機的な命令フェッチを持つように文書化されていますが、それは投機的な実行ではありません。それをオラクルとして使用することはまだ可能であるかもしれないというのは公平な点です。
ピーターテイラー

わずかではあるが測定可能なレイテンシの違いがあるため、投機的なフェッチでさえ十分かもしれません。
ジュスト

Linuxはすでにカーネルアドレスのランダム化を追加していました。ブランチのアドレスを予測することはできません。
–MSalters
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.