Intel CPUの脆弱性(SRBDS)とUbuntuの対応方針
「Intel CPU」の脆弱性(SRBDS/Crosstalk)と「Ubuntu」の対応方針の紹介です。最新情報を入手するには
「SRBDS/Crosstalk」に関する最新情報や「Ubuntu」の対応方針び対応状況に関する最新情報は、以下を参照してください。また「Intel」によるアナウンスは、以下を参照してください。
- Special Register Buffer Data Sampling Advisory
- Deep Dive: Special Register Buffer Data Sampling
- Special Register Buffer Data Sampling / CVE-2020-0543 / INTEL-SA-00232
ここで紹介する内容は、現時点での対応方針及び対応状況です。
SRBDS(Special Register Buffer Data Sampling)
ある特定の「Intel CPU」において、特殊レジスターのバッファーデータが同一CPU上で実行されている悪意あるプロセスに漏洩する問題が見つかりました。この脆弱性は「Crosstalk」とも呼ばれています。
「RDRAND」や「RDSEED」といった特定の命令は、物理CPUコアの外側からデータを取得して使用します。
これは特殊レジスターリードと呼ばれる内部マイクロアーキテクチャー操作を経由して実行されます。
この時共有されたステージングバッファーの一部を使用しますが、このバッファーがその後他のスレッドによって使用される時に完全にクリアされていないことがあります。
攻撃者はこの性質を利用し他のコアから特殊レジスターを読み取り、以前共有ステージングバッファーに保持されていたデータを読み取り、機密情報を推測できる可能性があります。
「RDRAND」「RDSEED」「SGX EGETKEY」といった特殊レジスターリードの中には機密情報が含まれたままデータを取得できるものもあり、攻撃者は同一CPU上で悪意あるコードを実行することで、同一CPUの他のスレッドやコアから機密情報を推測できる可能性があります。
この攻撃手法は以前発見された「MDS」や「TSX Asynchronous Abort」と同じ方法に依存した攻撃手法です。
影響を軽減する緩和策
「Ubuntu」において本脆弱性の緩和策は、「Intel Microcode(intel-microcodeパッケージ)」のアップデートにより実現されます。「Intel Microcode」では、複数の論理コアにまたぐ「RDRAND」等の命令をシリアライズし、「RDRAND」や「RDSEED」、「EGETKEY」命令実行時に共有ステージングバッファー内のデータを上書きすることで、影響を軽減します。
この結果これらの命令実行時にパフォーマンスが低下します。
もしどうしてもパフォーマンスへの影響が看過できない場合は、「Linux kernel」のコマンドラインに「srbds=off」を指定してください。
「Linux kernel」の場合、「/dev/urandom」デバイスや「getrandom()」システムコールを経由して「RDRAND」や「RDSEED」の出力を取得し、セキュアランダムナンバーの生成に使用しています。
さらに取得した値は安全な方法を用い、他のエントロピーのソースと混ぜ実際の値を生成しています。
これらの処理を経て秘密鍵の生成やその他機密データをアプリケーションに提供しています。
アプリケーションが直接「RDRAND」や「RDSEED」命令を使用して機密データを生成しない限り、攻撃者が実際の値を推測することは困難です。
影響を受けるCPU
本脆弱性に影響を受けるCPUの詳細は、以下を参照してください。Ubuntuの対応方針
「Ubuntu」では、本脆弱性を軽減する「Intel Microcode」パッケージのアップデートをリリースしています。この対応は「Intel IPU 2020.1」で行われています。
OS | Intel Microcodeのパッケージバージョン |
---|---|
Ubuntu 20.04 LTS | intel-microcode 3.20200609.0ubuntu0.20.04.0 |
Ubuntu 19.10 | intel-microcode 3.20200609.0ubuntu0.19.10.0 |
Ubuntu 18.04 LTS | intel-microcode 3.20200609.0ubuntu0.18.04.0 |
Ubuntu 16.04 LTS | intel-microcode 3.20200609.0ubuntu0.16.04.0 |
Ubuntu 14.04 ESM | intel-microcode 3.20200609.0ubuntu0.14.04.0 |
Ubuntu 12.04 ESM | 対応しない。 ベンダーに本脆弱性に対応したBIOSの アップデートがないか問い合わせてください。 |
すでにアップデートがリリースされているので、「ソフトウェアの更新」を起動して「Intel Microcode」と「Linux kernel」をアップデートしてください。
またアップデート後、アップデートを反映するためにPCを忘れずに再起動してください。