脆弱性 Gather Data Sampling (GDS) - CVE-2022-40982
Environment
- Red Hat Enterprise Linux
- 一部の Intel CPU
Issue
Gather Data Sampling (GDS) (別名 “Downfall”) は、特定の Intel CPU に影響を与える一時的実行のサイドチャネルの脆弱性です。 これにより、攻撃者は、Microarchitectural Data Sampling (MDS) と同様のデータサンプリング攻撃を使用して、以前使用されていた AVX2 または AVX-512 ベクトルレジスターから、古いデータを取得できる可能性があります。 最悪のケースでは、このような攻撃を利用して、暗号化キーが抽出される可能性があります。
Resolution
この脆弱性は、更新された CPU マイクロコードをインストールすることで軽減できます。Red Hat では、microcode_ctl
パッケージの今後のリリースで、このマイクロコードの更新を利用できるようにします。CVE ページ https://access.redhat.com/security/cve/CVE-2022-40982 をモニタリングし、利用可能な修正を確認してください。
マイクロコードがインストールされると、インストールされているカーネルのバージョンに関係なく、影響を受ける CPU で軽減策がデフォルトで有効になります。
マイクロコードの更新に加え、カーネルの更新も推奨します。これにより、脆弱性と軽減策ステータスのレポートが追加されます。 また、軽減策を無効にする機能も追加されます。
Root Cause
Gather は、Intel Advanced Vector Extensions 2 (Intel AVX2) および Intel Advanced Vector Extensions 512 (Intel AVX-512) が提供する機能です。これには、vector-index メモリーアドレス指定を使用したメモリーから、不連続データを読み取る Single Instruction Multiple Data (SIMD) 命令のコレクションが含まれています。
収集命令がメモリーからの読み込みを実行する場合、場合によっては、CPU ハードウェアの最適化が原因で、以前使用されたベクトルレジスターからの古いデータが依存命令に一時的に転送されることがあります。この問題により、悪意のある攻撃者は、以前使用されたベクトルレジスターからの古いデータを推測することができます。
古いデータの露出範囲は、同じ物理プロセッサーコアに限定されます。 ローカルコードの実行権限を持つ攻撃者は、(Microarchitectural Data Sampling と同様の) サンプリングベースで古いデータを観察する可能性がありますが、古いデータのソースを直接制御したり指定したりすることはできません。
AVX 命令を使用する命令、または暗黙的に内部ベクトルレジスターを使用する命令 (REP MOVS
命令など) によって処理されたデータは、その後の GDS 攻撃に対して脆弱である可能性があります。
パフォーマンスへの影響
マイクロコードの軽減策によるパフォーマンスへの影響は、Intel Advanced Vector Extensions (AVX2 と AVX-512) が提供する収集命令および CLWB
命令を使用するアプリケーションに限定されます。 実際のパフォーマンスへの影響は、アプリケーションがこれらの命令をどの程度頻繁に使用するかによって異なります。 Red Hat 内部における最悪のケースのマイクロベンチマークに対するパフォーマンステストでは、大幅な低下が確認されました。 ただし、ベクトル収集を利用するより現実的なアプリケーションでは、1 桁台の低い割合での低下しか確認されませんでした。
ユーザーが徹底的なリスク分析を行った後に、軽減策を無効にすることを決定した場合 (たとえば、システムがマルチテナントではなく、信頼できないコードを実行しない場合) は、ユーザーは軽減策を無効にすることができます。 マイクロコードとカーネルの更新を適用した後、ユーザーはカーネルコマンドラインに gather_data_sampling=off
を追加することで、軽減策を無効にすることができます。
あるいは、GDS を含むすべての CPU 投機的実行の軽減策を無効にするには、mitigations=off
を使用します。
CLWB
のパフォーマンスの低下は、Skylake アーキテクチャーでは永続的であることに注意してください。軽減策を無効にしても、元のパフォーマンスは回復されません。
この問題の詳細は、以下の Intel の資料を参照してください。
- Gather Data Sampling Technical Paper
- Intel Security Advisory INTEL-SA-00828
Diagnostic Steps
マイクロコードとカーネルの更新を適用した後、以下のコマンドのいずれかを実行し、軽減策ステータスを確認できます。
# dmesg | grep "GDS: "
[ 0.162571] GDS: Mitigation: Microcode
# cat /sys/devices/system/cpu/vulnerabilities/gather_data_sampling
Mitigation: Microcode
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.
Comments