チップを電子顕微鏡のように覗く自作OSをMITが開発、Apple M1に未知の弱点を発見

私たちが日々使うチップの中で何が起きているのかは、外からは見えにくい。MIT CSAILの博士課程の学生Joseph Ravichandran氏らのチームは、その中身を覗くためにゼロから専用のOSを作り上げた。「Fractal」と名付けたこのOSを、Ravichandran氏はOS版の電子顕微鏡にたとえる。早速Apple M1チップを調べ、これまで知られていなかった弱点を見つけた。

CPUの中には、命令を先読みする分岐予測器やキャッシュなど、外から見えない構造が数多くある。こうした挙動を調べるとき、研究者はこれまでmacOSやLinuxのカーネルを手作業で改造して使ってきた。だが汎用OSは自身の動きを測定に紛れ込ませ、肝心の信号が雑音に埋もれてしまう。

Fractalは発想を逆転させ、ほかのソフトウェアを一切動かさずベアメタル上で直接起動する。鍵は、利用者のプログラムのメモリー内にありながらカーネルの権限で動く「outer kernel thread」という仕組みだ。同じ条件のまま実行中に権限レベルだけを切り替えられ、雑音の少ない実験環境が得られる。

FractalでApple M1を調べ、いくつかの発見があった。ARMのCSV2という仕様により、利用者のプログラムがカーネルに任意のコードを実行させることは防げていた。しかしCPUは、その防御が働く前に予測先の命令をキャッシュへ読み込んでおり、その痕跡が外から観測できる。つまり、利用者側からカーネル内部の動きの一部をのぞけてしまう。さらにチームは、これまでAMDやIntelでしか確認されていなかった「Phantom」という現象を、Apple Siliconで初めて確認した。Phantomは、何もしない命令までCPUが分岐命令と取り違え、プログラムが指示していない処理を勝手に先読みするもので、これも情報の盗み見に悪用されうる。

Fractalはx86_64、ARM64、RISC-Vに対応し、コードは3万1000行を超える。研究者が共通して使える土台として設計され、コードはGitHubで公開されている。QEMUやFFmpegのように誰もが使える研究基盤を目指すという。

関連情報

Fractal title slide: white FRACTAL on black with a geometric triangular logo above; subtitle 'An Operating System Designed for Microarchitecture Reverse Engineering'; authors Joseph Ravichandran & Mengjia Yan, MIT CSAIL.

fabsceneの更新情報はXで配信中です

この記事の感想・意見をSNSで共有しよう
  • URLをコピーしました!

最新記事

YouTube / PodCast

【PR】読んで役立つ注目記事

目次