Intel、プロセッサ脆弱性はAMDやARMにもあり、対策で協力中と説明
コメント
注目のコメント
※所属機関の見解や分析結果ではありません。
CPUはユーザーモードで実行されているプログラムであっても処理を高速化させるために、特定の分岐処理を行う場合にのみカーネルモードに移行して、投機的なコード実行を行います。
この投機的なコード実行とは、分岐先を事前に予測して
先回りして処理を行うことをここでは指します。
この時勿論ですがユーザーモードからカーネルの資産は見えません。
カーネルモードで処理が完了すると再度ユーザーモードに
演算結果が返され、ユーザーモードのプロセスページテーブルに鎮座します。
この一連の流れを「暗黙的キャッシング」とIntelの開発者マニュアルには記載があります。
では仮に、先行してカーネルモードで演算した分岐処理が
実は必要ないものだったらどうなるでしょうかというのが
今回の攻撃手法のミソです。
その場合、なんとカーネルモードで生成された他のアプリケーションやOSの処理に必要な資産も含めてL1キャッシュにReadableな常態でとどまります。
まずカーネルモードへの移行ですが、これは特定のコードを書けば意図的に投機的コード実行を誘発できます(コードは略)
次に分岐予測演算を意図的に間違わせ、ユーザーモードのL1へ他の資産とともに舞い戻ってもらうためには
汎用分岐予測器の処理に注目する必要があります。
その中にソースアドレスの下位31ビット(たしか)
とBTBエントリー(分岐目標バッファ)をXORして値を渡す処理が存在しますが、ここに特殊な処理用のビットが2つ存在しこれも同じタイミングでXORに掛けられます。
ようは固定でXORに追加されるビットが存在するということです。
ということはこの2つのビットと同じ値でXORされると
汎用分岐予測器はこれから結果が入るはずのアドレスと
ソースアドレスの見分けがつかなくなります。(取り出せなくなる)
これにより汎用分岐予測器の処理は失敗に終わり
次に汎用予測子による再予測が始まります。
この時、ブランチヒストリバッファ(BHB)に対して
Flush+Reload(複数コアに対するサイドチャネル攻撃の連続試行)
等を実施することで、その状態をダンプすることが可能です。
このようにしてどんどんカーネルメモリをダンプしていきます。
文字数制限・・・下記記事を見ると、Linuxでは回避パッチが公開されているとのことだが、『パッチを適用することでパフォーマンスが5~30%落ちると報じられており』とのこと。
また、問題は2種類あり、「Meltdown(メルトダウン)」及び「Spectre(スペクター)」と命名されているとのこと。前者はIntel固有、後者はARMまで含めてリスクがある。
https://gigazine.net/news/20180104-meltdown-spectre/
AWSやGCP、Azureは、IntelのサーバーCPUを大量採用していると思う。パフォーマンス影響とセキュリティのバランスをどうしていくか。
ちなみにIntelの株価は昨日-3.39%(一時-6.83%)となった。アフターマーケットでも-1%弱落ちている。
一方でAMDは一時+8%超。
このようにIntelに限った影響ではない可能性も指摘されているなかで、AMDは終値で+5.19%(一時+10%超)、アフターマーケットで+2%超。インテルのチップの脆弱性問題、この記事をピックします。ご参考はこちら。
https://newspicks.com/news/2727940?ref=search&ref_q=%E3%82%A4%E3%83%B3%E3%83%86%E3%83%AB&ref_t=top&status=reload
インテルの発表では、インテルのプロセッサーに固有ではなく他社にもある脆弱性であること、パスワードや暗号化キーが覗かれる可能性があるとのことです。続報を待ちましょう。
https://s21.q4cdn.com/600692695/files/doc_presentations/2018/Side-Channel-Analysis-Security.pdf