Zenbleed: この AMD セキュリティ バグについて知っておくべきことすべて

CPU に関する長年にわたる一連のセキュリティ バグの最新作である Zenbleed も、パッチが必要な問題です。 知っておくべきことは次のとおりです。

2018 年に Spectre と Meltdown の CPU エクスプロイトが公表されて以来、コンピューティングの世界はかなり警戒しています。 プロセッサのセキュリティ バグや抜け穴の発見について、研究者たちは過去 5 年間で大量の発見を行ってきました。 5 月に初めて報告された後、7 月 24 日、さらに別のエクスプロイトが公開されました。 今回は、Zen 2 アーキテクチャに基づいて構築された AMD プロセッサに特化したもので、「」と呼ばれます。ゼンブリード". Zenbleed について、そしてそれが世界にとって何を意味するのか、知っておくべきことはすべてここにあります。

Zenbleed はどのように機能しますか?

Zenbleed は、CPU の投機的能力を悪用するという点で、Spectre などの他のハードウェアベースのセキュリティ バグと非常によく似ています。 パフォーマンスを向上させるために、CPU 次に行う必要があることを推測または予測します。スペクターが最初に公開されて以来、世界は、推測が行われると非常に安全ではない可能性があることを学びました。 不適切に。

出典: テイビス・オーマンディ

CPU のレジスタは、少量のデータ、通常は命令、ストレージ アドレス、またはその他の種類の小さなデータを保持できます。 x86_64 アーキテクチャの XMM レジスタ (つまり、影響を受ける Zen 2 プロセッサ) は、メモリのアドレス指定ではなく、データの計算にのみ使用できます。 これは、YMM レジスタの場合は 256 ビット、ZMM レジスタの場合は 512 ビットに拡張されます。 この場合、XMM は下位 128 ビットを指します。 合計 512 ビットの ZMM レジスタ。

これらのレジスタは、標準の C 関数など、さまざまな用途に非常に役立ちます。 この脆弱性は、投機的実行と分岐予測の誤りを悪用して、基本的にメモリからランダムなデータを吐き出しますが、そのデータは、 何でも. 文字列の長さを測定する strlen などの標準 C ライブラリ関数は、データの移動にこれらのレジスタを使用できます。 あなたが使用しているパスワードが、運悪くこれらのいずれかに該当した可能性があります。 レジスター。

分岐予測と投機的実行とは、まだ必要ではないが、後続のサイクルで必要になる可能性が高い操作をコンピューターが実行する場合を広く指します。 これは、システムに空きリソースがあるときによく行われます。これは、CPU に対する命令やデータの準備がまだ整っていないときに全体の処理を高速化するためです。 実行された作業が不要な場合、通常は破棄され、プロセッサは次の正しい命令を実行するために必要な場所に戻ることができます。 これを行う場合、これは分岐予測ミスと呼ばれます。

問題が発生するのは、YMM および ZMM レジスターの 128 位以降のビットをゼロに設定する vzeroupper 命令です。 これは、パフォーマンスが低下するため、AVX コードと従来の SSE コードの間で移行するときに特に行われます。 偽の依存関係によって引き起こされるペナルティを軽減しながら、整数昇格と同様の効果も回避します。 C.

プロセッサが vzeroupper 命令を投機的に実行すると、適切なロールバックは行われません。 ただし、影響を受けた Ryzen プロセッサは、不正確ではありますが、強制的に回復する可能性があります。 この状態になると、現在実行中のプログラムはこれらのレジスタをリアルタイムで監視し、いつでもシステム全体を流れるデータを表示できます。

どの CPU が Zenbleed の影響を受けますか? パッチはいつ利用可能になりますか?

前述したように、Zen 2 アーキテクチャに基づく AMD CPU のみが Zenbleed セキュリティ バグに対して脆弱であることが知られていますが、 Zen 2 アーキテクチャは 3 シリーズの CPU を搭載しているため、どの CPU が脆弱で、どの CPU が脆弱かを把握するのが面倒になっています。 そうではありません。 すべてを明確にするための表を次に示します。

影響を受ける CPU

Ryzen 3000シリーズ

APU を除くすべて (例: Ryzen 3 3200G)

エピックローマ

全て

Ryzen 4000シリーズ

全て

Ryzen 5000シリーズ

5300U、5500U、および 5700U のみ

Ryzen 7000シリーズ

7020 APU のみ (Ryzen 3 7320U)

これはかなり大量の AMD プロセッサであり、これまでに確認されているものだけです。 Zen 2 は、Steam デッキ、Xbox シリーズ S および X、PS5 に電力を供給する APU にも使用されています。 これらの CPU も影響を受けるかどうかはまだ聞いていませんが、このエクスプロイトの動作方法から判断すると、これらの CPU も影響を受けていないとしたら驚くでしょう。 新しい 7020 シリーズ チップも影響を受けるため、AMD が Xbox と PS5 にパッチを適用した可能性は低いと思われます。

執筆時点では、 マイクロコードが Linux カーネルに送信されました これにより、この脆弱性が修正され、オペレーティング システムまたは BIOS には、この問題を修正するアップデートがすでにインストールされている可能性があります。

これは、脆弱な CPU を使用するコンピュータにとって何を意味しますか?

すべてのコンピュータが同じではないため、これに答えるのは難しいです。 ゲーミングデスクトップやノートパソコンを使っているだけの普通の人であれば、そこまで心配する必要はないかもしれません。 これはかなり高度なエクスプロイトであり、現在は公知となっていますが、攻撃者が Zenbleed を使用して何かをハッキングした例はまだ知られていません。

ただし、データセンターや、自分のコンピューターで機密情報を扱う重要な人々にとっては、リスクははるかに高くなります。 AMD が脆弱性が公開される前に Epyc Rome にパッチが適用されたことを明確にしているのには理由があります。 情報は Epyc CPU によって処理されており、大規模サーバーに電力を供給する CPU が正常に動作すると大惨事になります。 攻撃されました。 Linux カーネル 6.4.6 はすでにリリースされています をロールインすることでこの脆弱性を修正します。 公式マイクロコードパッチ AMDから。 Microsoft も同様のものを Windows に組み込む可能性が高いと思われます。

心配なことに、 AMDの公式BIOSパッチは数か月公開されない可能性があるその場合、「」があります。チキンビット" これは、Linux または FreeBSD マシンを使用している場合に設定できます。 Linux マシンでは、msr-tools を使用して次のコマンドを実行できます。

wrmsr -a 0xc0011029 $(($(rdmsr -c 0xc0011029) | (1<<9)))

FreeBSD では、以下も使用できます。

cpucontrol(8)

SMT を無効にするだけでは、この脆弱性を軽減するのに十分ではありません。

Zenbleed が特に悪い点の 1 つは、Zen 2 が AMD で最も人気のある CPU アーキテクチャの 1 つだったということです。 これは 2019 年と 2020 年の AMD の復活のきっかけとなり、2023 年になっても多くの人、企業、組織が依然として Zen 2 プロセッサを搭載したコンピューター、特に Epyc Rome を使用しています。 CPU。 これは、Spectre (2019 年以前のほぼすべての CPU に影響を与える) や Meltdown (2019 年以前の Intel CPU のほぼすべてに影響を与える) ほど深刻ではありませんが、それでもかなり深刻です。 広く普及している。

このような脆弱性に対するセキュリティ パッチもパフォーマンスの低下につながることがよくありますが、 AMDはこう語った トムのハードウェア このペナルティは CPU とワークロードに依存します。 推測と予測は CPU のパフォーマンスにとって非常に重要であるため、潜在的な修正によってパフォーマンスが大幅に低下するかどうかは不明です。