Retbleedは、毎秒約219バイトで98%の精度でIntelCPUからカーネルメモリをリークする可能性があります。 このエクスプロイトは、毎秒3.9kBの帯域幅でAMDCPUからカーネルメモリを抽出できます。 研究者たちは、Intel CPUを実行している場合は約28分、AMD CPUの場合は約6分で、Linuxコンピューターのルートパスワードハッシュを見つけて物理メモリからリークできると述べています。
Retbleedは、CPUが推測を行うために依存する分岐予測ユニットを本質的に汚染するコードを使用して機能します。 中毒が完了すると、このBPUは、攻撃者が制御できる誤予測を行います。
「非特権ユーザーであっても、カーネルアドレス空間内に存在するブランチターゲットを挿入できることがわかりました」と研究者はブログ投稿に書いています。 「カーネルアドレス空間内の分岐ターゲットにアクセスすることはできませんが、そのようなターゲットに分岐するとページフォールトが発生しますが、分岐予測ユニットは分岐を監視すると自動的に更新され、分岐が合法的に実行されたと見なします。カーネルアドレス。」
IntelとAMDが対応
IntelとAMDの両方が勧告で対応しました。 Intelは、拡張間接分岐制限投機(eIBRS)と呼ばれる保護が設定されていないSkylake世代のプロセッサに脆弱性が存在することを確認しています。
「インテルは、LinuxコミュニティおよびVMMベンダーと協力して、今日の公開日またはその前後に利用できるはずのソフトウェア緩和ガイダンスを顧客に提供してきました」とインテルは次のように書いています。 ブログ投稿。 「Windowsシステムはデフォルトで間接分岐制限投機(IBRS)を使用しているため、影響を受けないことに注意してください。これは、Linuxユーザーが利用できる緩和策でもあります。 インテルは、この問題が管理されたラボ環境の外で悪用されていることを認識していません。」
一方、AMDは 公開されたガイダンス。 「AMDは、新たな潜在的なセキュリティの脆弱性を特定して対応するための継続的な作業の一環として、ソフトウェアサプライヤに、Spectreのような攻撃から保護するための追加の手順を検討することを推奨しています」とスポークスマンは電子メールで書いています。 同社はホワイトペーパーも発行しています。
研究者の研究論文とブログ投稿の両方で、Retbleedを悪用するために必要なマイクロアーキテクチャの条件が説明されています。
インテル。 Intelでは、リターンターゲットの予測を保持するリターンスタックバッファがアンダーフローすると、リターンは間接ジャンプのように動作し始めます。 これは、深い呼び出しスタックを実行するときに発生します。 私たちの評価では、システムコールによってトリガーされる可能性のあるそのような条件が1,000を超えることがわかりました。 Intel CPUの間接分岐先予測は、 前作。
AMD。 AMDでは、差出人住所スタックの状態に関係なく、返品は間接分岐のように動作します。 実際、間接ジャンプを使用してリターン命令をポイズニングすることにより、AMD分岐予測子は、リターンではなく間接ジャンプに遭遇すると想定し、その結果、間接分岐ターゲットを予測します。 これは、システムコールを通じて到達できるあらゆるリターンが悪用される可能性があることを意味し、それらは大量に存在します。
Razaviは電子メールで、次のように付け加えました。「Retbleedは、Intel、特にAMDマシンでの単なるretpolineバイパスではありません。 AMDは実際、Retbleedに基づくBranchTypeConfusionを紹介するホワイトペーパーをリリースする予定です。 基本的に、Retbleedは、AMDCPUにリターン命令と間接分岐を混同させています。 これにより、AMDCPUでの返品の活用は非常に簡単になります。」
緩和策には、研究者が12%から28%多くの計算オーバーヘッドがあると測定したコストがかかります。 影響を受けるCPUに依存している組織は、研究者、Intel、およびAMDからの出版物を注意深く読み、緩和ガイダンスに必ず従ってください。
この物語はもともとに登場しました Ars Technica。