By Omar Yang (Senior Threat Researcher, Automotive)
Google社のセキュリティリサーチャーTavis Ormandy氏が最近明らかにしたところによると、米国半導体企業AMDのマイクロアーキテクチャZen 2において重大脆弱性が存在することが露見しました。Zenbleedと名付けられたこの脆弱性は、悪用されると、コアごとに毎秒30キロビットという驚異的な速度で機密データが漏えいする可能性があり、深刻な脅威をもたらします。キーとパスワードを含む情報が検出されることなく外部に流出する可能性があるため、緊急のセキュリティ問題と見なされています。この脆弱性はCVE-2023-20593に採番され、遠隔操作で悪用が可能であり、早急の対応が求められています。
この脆弱性は、誤ってロールバックされる推測実行と、不適切に処理されるレジスタのクリアプロセスという2つの主要な要素から成り立っています。この脆弱性の重大さを理解するため、現代のCPUの動作方法、特にこのようなセキュリティ上の欠陥を無意識に引き起こす可能性のある高度なメカニズムについて見ていきます。さらに、この脆弱性が自動車システムに与える影響を探り、自動車メーカーや専門家が直面する潜在的なセキュリティ問題に説明します。
スペキュラティブ実行
現代のCPUでは、独立した命令を並行して実行するだけでなく、分岐などの依存命令の処理技術もあります。最も可能性の高い条件を予測し、事前に命令を実行することで、CPUは条件付き操作の完了を待つことなく、タスクの処理時間を効果的に短縮できます。この性能最適化メカニズムは「スペキュラティブ実行」あるいは「分岐予測」と呼ばれます。
しかし、分岐予測はあくまでも予測に過ぎず、決して完璧ではない点を理解することが重要です。時には予測が誤っていることがあり、その結果、CPUは別の命令セットを実行する必要が生じます。ここに潜在的なセキュリティ上の問題が存在します。誤った分岐からの復旧時に、他のレジスタのデータが偶然にも露呈することはありえるでしょうか。このような場合、CPUのスペキュラティブ実行や分岐予測メカニズムにより、他のレジスタの機密データが不意に露呈する可能性があります。
Zenbleedの動作原理
Zenbleedに影響を受けるレジスタはYMMと呼ばれ、CPUが頻繁に行う様々な基本操作において重要な役割を担います。これには、文字列の長さを計算する、メモリブロックを異なる場所にコピーするなどの操作が含まれます。レジスタは固定されたメモリ位置を持たず、代わりにレジスタ割り当てテーブル(RAT)を通じて管理されます。このテーブルは、レジスタが指し示す位置を追跡します。
図1:レジスタ割り当てテーブル(左)と物理レジスタファイル(右)
Zenbleedに基づく画像
CPUが「レジスタをクリアする」という指令を推測的に実行する際に、必ずしも全ビットをゼロに設定するわけではありません。実際には、RAT内でレジスタをゼロとして単にマークするだけです。しかし、この推測的実行が後に誤った予測であった場合、CPUはゼロフラグを解除し、レジスタを元の位置に戻すことで元に戻ります。問題は、レジスタが固定された物理位置に割り当てられていないため、元の位置が他のレジスタによって使用されている可能性がある点です。
図2:「クリアした」後もレジスタがアクセス可能である様子
Zenbleedに基づく画像
Ormandy氏が指摘しているように、精密なスケジューリングにより、一部のプロセッサは「vzeroupper」という命令の誤予測から不正確に回復することがあります。この命令は、レジスタの上部をクリアする操作を行います。この不正確な回復が原因となり、他のレジスタに保存されている機密データが、攻撃されたYMMレジスタに「流出」することがあります。
Zenbleedが自動車産業に及ぼす影響
脆弱性Zenbleedが自動車産業に与える潜在的な影響を把握するためには、現代自動車のアーキテクチャについて理解することが重要です。先進運転支援システム(ADAS)のような高度な機能が増えるにつれ、これらを支える複雑な計算処理のために強力なCPUやGPUが必要とされています。例として、AMDは最近、自動車用デジタルコックピットソリューションを導入し、いくつかの自動車メーカーに採用される見込みです。
このため、AMDチップセットを搭載した車両は、脆弱性Zenbleedに悪用されるリスクがあります。2021年11月の報道によると、Teslaは中国でのモデルYのチップをインテルからAMDに変更したことが明らかになりました。これにより、同社のモデルYも脆弱性Zenbleedに悪用される可能性があります。
さらに、脆弱性Zenbleedの悪用で特に懸念される点は、現代の自動車における仮想化技術による隔離を迂回する能力です。現代の多くの自動車は、異なるオペレーティングシステムを隔離し、様々なタスクを効率的に管理するために仮想マシンやコンテナを使用しています。しかし、Zenbleedはこれらの隔離措置を超えることが可能であるため、データ漏えいの阻止ができなくなる恐れがあります。車両で動作するオペレーティングシステムがWindowsであれLinuxであれ、脆弱性の悪用が仮想環境で遂行されてしまうからです。脆弱性Zenbleedは、基礎となるオペレーティングシステムに関係なく、マイクロアーキテクチャZen2上でパスワード漏えいを引き起こす可能性があります。
このように、脆弱性Zenbleedは、影響を受けるAMD Zen 2 CPUをコアプロセッサとして使用する車両にとって重大なセキュリティリスクをもたらします。この脆弱性は機密情報の流出を促す可能性があり、パスワードやトークンなどを含むデータの流出により、車両とそのユーザーのセキュリティとプライバシーを脅かす可能性があります。
緩和策
自動車メーカーやセキュリティ専門家にとって、YMMレジスタの内部動作や推測実行と予測ミスに関する課題を理解することが重要であり、さらにAMDプロセッサを使用している自動車システムから生じるZenbleedの潜在的なセキュリティリスクにも注意を払う必要があります。Zenbleedのような現代のCPU脆弱性に対処して、自動車システムのセキュリティと完全性を保つために、適切な緩和策の実施が不可欠です。
脆弱性Zenbleed悪用のリスクを緩和することは、影響を受けるシステムのセキュリティ保護において重要です。特にCPUハードウェアは回路を変更してパッチを適用することができないため、別の解決策が必要となります。AMDは、最新のセキュリティ情報により、問題に対応するためのマイクロコードアップデートの適用を推奨しています。また、影響を受ける他のチップセットのリリースタイムラインも公開されており、2023年10月から提供開始されています。
脆弱性Zenbleedの影響を受けるAMD CPUを搭載している自動車メーカーは、車両の具体的なソフトウェアアップデートメカニズムに応じて、オーバー・ザ・エア(OTA)アップデートやリコールを通じてファームウェアのパッチを適用することができます。
マイクロコードアップデートの適用が実行不可能な場合、オーマンディはソフトウェアの回避策として「チキンビット」DE_CFG[9]を設定することを推奨しています。ただし、この回避策はパフォーマンス最適化技術に起因する脆弱性の性質により、パフォーマンスが低下する可能性がある点を留意することが重要です。
コネクテッドカーにおける他の潜在的な脆弱性についての研究やセキュリティ対策に関するさらなる詳細は、VicOne公式サイトのリソースをご参ください。