Hertzbleed サイドチャネル攻撃:Intel/AMD の最新 CPU から暗号化キーが漏れる

Hertzbleed Side-Channel Attack allows to remotely steal encryption keys from AMD and Intel chips

2022/06/15 SecurityAffairs — テキサス大学/イリノイ大学/ワシントン大学の研究者たちは、Hertzbleed と呼ばれる新たなサイドチャネル攻撃の技術を考案し、最新の Intel/AMD チップからリモートの攻撃者が、暗号化キーを盗み出せることを証明した。研究者たちは、「Hertzbleed は、サイドチャネル攻撃の新しいファミリーである周波数サイドチャネルである。最悪の場合、これらの攻撃に成功した攻撃者は、以前は安全だと信じられていたリモートサーバーから、暗号化キーを抽出できるようになる」と述べている。研究者たちは、2022年8月10日~12日にボストンで開催される、第31回 USENIX セキュリティ・シンポジウムで、この研究成果を発表する予定だという。


Hertzbleed 攻撃の原理は、特定の状況下において、最新の x86 プロセッサで処理されるデータが、動的周波数スケーリングに依存する点にある。

研究者たちは、「まず第一に、Hertzbleed は、最新の x86 CPU に対して、電力サイド・チャネル攻撃を、リモートでもタイミング攻撃に変えることが可能であり、電力測定インターフェースの必要性を無くすことが可能だ。そ要因は、特定の状況下において、周期的な CPU 周波数の調整が、その時点の CPU 消費電力に依存し、これらの調整が、実行時間の差 (1 hertz = 1 cycle per second) に直接変換されるからだ」と述べている。

「第二に、たとえ定時間コードとして正しく実装されていても、暗号化コードがリモートタイミング解析により漏れる可能性があること、Hertzbleed は示している。その結果として、最新のプロセッサ上での定時間実行を保証するには、定時間コードの書き方に関する現在の Intel ガイドラインなどでは、不十分であることが判明した」と述べている。

この問題は、AMD では CVE-2022-23823 として、Intel では CVE-2022-24436 として追跡されており、現時点では修正プログラムは存在していない。研究者たちは、「Hertzbleed はバグではない。問題の原因は、動的周波数スケーリングにある。それは、CPU 低負荷時の電力消費を抑えるために、最新のプロセッサに実装されている機能である」と指摘している。

研究者たちは、2021年 Q3 に Intel/Cloudflare/Microsoft に対して、2022年 Q1 には AMD に対して、PoC エクスプロイト・コードと調査結果を共有している。ただし、現時点では、Hertzbleed 攻撃を緩和するためのマイクロコードを、Intel と AMD がリリースする予定はないとのことだ。Intel は、自身のライブラリやアプリケーションの守りを固めることで、この攻撃を緩和するというガイダンスを提供している。

回避策はあるのだろうか?

研究者たちは、「技術的には Yes である。しかし、システム全体のパフォーマンスに、大きな影響が生じるだろう。ほとんどの場合において、Hertzbleed を緩和するための、ワークロードに依存しない回避策は、周波数ブーストを無効化することだ。Intel は、この周波数ブーストを機能を Turbo Boost と呼び、AMD は Turbo Core/Precision Boost と呼んでいる。周波数ブーストの無効化は、BIOS を介して、または周波数スケーリング・ドライバを介して、実行時に行うことが可能だ。実験では、周波数ブーストを無効にすると、ワークロードの実行中、周波数はベース周波数に固定され、Hertzbleed によるリークを防ぐことができた。しかし、この方式は、性能に大きな影響を与えるため、推奨される緩和策ではない」と述べている。

6月10日には「Apple M1 Kernel の脆弱性 PACKMAN:ARM のポインタ認証を狙う攻撃が可能?」という、別のサイドチャネル攻撃に関する記事がポストされています。想定される攻撃手法は、まったく異なるものですが、こうした問題が払拭されるまでには、まだまだ時間が必要なのかもしれません。

%d bloggers like this: