RISC-VのCPUのひとつに、デバイスのメモリを自由に読み取ったり書き換えたりすることができてしまう脆弱(ぜいじゃく)性の「GhostWrite」があることがわかりました。ハードウェアの設計上の問題であるため、修正パッチなどのソフトウェア的な対策を講じることはできず、対処するには性能を大幅に犠牲にしなくてはならないと指摘されています。

GhostWrite

https://ghostwriteattack.com/

今回発見された脆弱性のGhostWriteは、Alibabaの子会社である中国のメーカー・T-Headが開発しているCPUで、現行で最速のRISC-Vチップとされている「T-Head XuanTie C910」の不具合です。



GhostWriteを発見したヘルムホルツ情報セキュリティセンター(CISPA)の研究チームによると、GhostWriteの影響を受ける命令は仮想メモリではなく物理メモリで直接動作し、通常はOSやハードウェアによって防止されているプロセスの分離を回避してしまうとのこと。

本来は分離されるはずのプロセスが干渉することで、権限のない攻撃者でも任意のメモリ位置の読み取りや書き込みが行えてしまう危険性があります。また、攻撃者が任意のコマンドを送信し、ターゲットとなったデバイスを完全に乗っ取ることも考えられます。

研究チームは「この攻撃の信頼性は100%で、決定的であり、実行には数マイクロ秒しかかかりません。また、Dockerコンテナ化やサンドボックス化などのセキュリティ対策でこの攻撃を阻止することも不可能です」と述べました。



バグが見つかっているのはT-Head XuanTie C910のみですが、このCPUはさまざまなデバイスに採用されているため、ノートPCからゲーム機まで幅広いデバイスがGhostWriteのリスクの影響を受けます。

研究チームが具体的に列挙した、GhostWriteによる攻撃のリスクがあるデバイスは以下のとおり。

・Scaleway Elastic Metal RV1(クラウドインスタンス)

・Lichee Cluster 4A(コンピューティングクラスター)

・Lichee Book 4A(ノートPC)

・Lichee Console 4A(小型ノートPC)

・Lichee Pocket 4A(携帯ゲーム機)

・Sipeed Lichee Pi 4A(シングルボードコンピュータ−)

・Milk-V Meles(同上)

・BeagleV-Ahead(同上)

GhostWriteはハードウェア上の欠陥なので、修正パッチやソフトウェアアップデートなどで防ぐことができませんが、問題となる命令はRISC-Vのアドオンである「ベクトル拡張」のものなので、ベクトル拡張を無効にすることでGhostWriteを回避できます。

しかし、これによって命令セットの約50%が無効になり、CPUのパフォーマンスや機能にも重大な影響が出ます。研究チームによると、問題のCPUでベクトル拡張を無効化してベンチマークを行うと最大77%のオーバーヘッドが発生したとのこと。つまり、その分だけパフォーマンスが低下するということです。



研究チームはこの問題をメーカーのT-Headに報告しましたが、同社は公式のコメントを出しておらず、何らかの対策を講じたかどうかも不明とのこと。また、親会社のAlibabaもメディアの問い合わせに応じていません。

CISPAの研究チームは、GhostWriteの発見を2024年8月3日から開催されているセキュリティカンファレンスのBlack Hat 2024で発表しました。