セキュリティ
8年が経った今も、投機的実行の過程で垣間見えてしまう「未来」を隠すための代償を、私たちは払い続けています
有名なSpectre脆弱性は2018年の遺物だと思っていたなら、考え直す必要があります。特定のRISC-Vチップは、今なおこのぞっとするような脆弱性の影響を受けると研究者は述べています。
Spectreとは、投機的実行に関連する一群の脆弱性を指します。投機的実行とは、命令が実行される前にデータの流れを予測することでパフォーマンスを高める最適化技術です。予測が外れた場合はロールバックされ、実行中のアプリケーションに影響を与えることはありませんが、それでも痕跡が残ります。その痕跡を復元・悪用すれば、メモリ保護を突破し機密情報にアクセスできてしまいます。
Spectreの脆弱性は長年にわたりx86やARMのチップを悩ませてきました。その結果、コンピュータ科学者たちは間接分岐制限投機(IBRS)、間接分岐予測バリア(IBPB)、シングルスレッド間接分岐予測器(STIBP)など、一連の対策を開発してきました。
ベルギーとドイツの学術機関に所属する研究者たちによれば、RISC-Vのチップアーキテクチャは構造が単純すぎるためSpectre脆弱性の影響を受けないという見方が広く受け入れられてきたといいます。
しかし、その前提は誤りだと、第35回Usenix Security Symposiumで採択された論文「Spectre on RISC-V Silicon: Attacks and Defenses on Commercial Out-of-Order Processors」は指摘しています。同論文によれば、市販されているアウトオブオーダー型のRISC-Vプロセッサ(SiFive P550、T-Head Xuantie C910/C920)は、Spectreの主要な変種すべてに対して脆弱だとしています。
一方、命令をインオーダーで処理するRISC-Vプロセッサ(SiFive U74、Xuantie C906、C908)には、脆弱性は見当たらないとのことです。
これまでの研究では、学術研究向けに使われるRISC-Vプロセッサ(BOOM、RiscyOO、RSD、Proteus、NaxRiscv、NutShellなど)が、Spectreの変種のうち一つ以上の影響を受けうることが示されていましたが、市販シリコンについては扱われていませんでした。
論文には「私たちは両プロセッサに対してSpectre-PHT、Spectre-BTB、Spectre-RSB、Spectre-STLを用いた概念実証攻撃を実演し、97パーセントを超える精度で最大100パーセントの再現率を達成した」と記されています。
Spectre-PHTはパターン履歴テーブル(Pattern History Table)を誤学習させる手法、Spectre-BTBは分岐先バッファ(Branch Target Buffer)を汚染する手法、Spectre-RSBはリターンスタックバッファ(Return Stack Buffer)を攻撃する手法、Spectre-STL(Store To Load)はストアからロードへの転送予測ミスを悪用する手法です。
RISC-Vにおけるリスクを実証するため、研究者たちはXuantie C910上で任意のLinuxカーネルメモリを毎秒338バイトの速度で漏洩させる概念実証エクスプロイトを作成しました。
x86やARMのハードウェアでは、これらの脆弱性に対応するソフトウェアベースの対策がすでに開発されています。しかし研究者たちによれば、こうした対策が必ずしもそのまま通用するわけではないといいます。また、マイクロアーキテクチャの特性を観察・分析するために必要なイントロスペクション用インターフェースがRISC-Vハードウェアに欠けている点も問題視しています。さらに著者らは、RISC-Vハードウェアのエコシステムが多様であるため、あらゆるシステムに有効な単一の緩和策は存在しにくいと主張しています。
著者らは論文の結びで次のように述べています。「RISC-Vは、成熟したアーキテクチャが積み重ねてきた耐性強化を伴わないまま、そのソフトウェアと脅威モデルだけを受け継いでしまっている。このギャップを埋めるには、個々の緩和策を移植するだけでは足りない。効果的なSpectre対策の前提となる、アーキテクチャ上のプリミティブ、ハードウェアの透明性、そしてエコシステム全体に及ぶツール群を構築する必要がある」
著者らによれば、この発見は昨年12月に責任ある形で開示されたとのことです。パッチのうち3件はすでにLinuxのメインラインにマージ済みで、残り2件はレビュー中です。SiFiveはP550固有の問題に対応済みとされ、T-Head(Alibaba)は自社プロセッサ向けの応急的な投機バリアを近く公開すると約束しているといいます。
著者らは、Spectreが発見されてからすでに8年が経過していることを理由に、公表を先延ばしにしない決断をしたと述べています。
この論文は、Lukas Gerlach氏(CISPAヘルムホルツ情報セキュリティセンター)、Marton Bognar氏(KU Leuven、DistriNet)、Daniel Weber氏およびMichael Schwarz氏(CISPAヘルムホルツ情報セキュリティセンター)、Jo Van Bulck氏(KU Leuven、DistriNet)によって執筆されました。®