Modern operating systems are packed with defenses against security vulnerabilities. しかし、もしそれらの防御機能を削除できたとしたらどうだろうか? そうすればOSを実行しているチップをはっきりと見ることができる。また、通常OSが隠しているハードウェアの脆弱性も露呈する。
A new hand-coded OS, Fractal, provides that clear view. MITのComputer Science and Artificial Intelligence Laboratory(CSAIL)の研究者たちによってゼロから構築されたFractalは、それを実行するチップのアーキテクチャを調査するために設計された。その証左として、このOSは2026年5月に2026 IEEE Symposium on Security and Privacy in San Franciscoで発表され、AppleのM1チップにこれまで知られていなかった脆弱性を発見するために使用された。
Joseph RavichandranはFractalをプログラミングしたCSAILの博士課程学生で、このOSは2022年に公開されたArm CPUの脆弱性であるPacmanの研究で直面した障害に着想を得たと述べている。
「我々はcustom kernel patchesやkernel extensionsといった技術で道を切り開いた」とRavichandranは説明する。しかし、それは部分的な解決に過ぎなかった。「夢は常に、こうしたハックを不要にする完全にカスタムなオペレーティングシステムを持つことだった」
Probing Chip Data Storage & Movement
hardware vulnerabilitiesを調査する研究者は、チップ上でデータがどのように保存・移動されるかを正確に知る必要がある。彼らはチップから望ましい動作を引き出すテストをコーディングし、その結果を分析してチップがコードをどのように実行したかを再構築することでこれを推測する。
しかし、WindowsやMacOSのような従来のOSには、コード実行やメモリ管理を難読化する防御機能や機能が備わっている。「私はsecure hardware designのコースでいくつかの演習を作成してきた」とRavichandranは言う。「学生たちが経験する苦労や、私自身が研究で経験した苦労を見て、もっと良い方法がなければならないと実感した」
Fractalは問題に対する明らかな解決策だ。従来のOSをパッチしたり悪用したりする代わりに、Fractalはデバイスの元のOSを完全に置き換え、セキュリティ研究に特化したカスタマイズされた代替OSを提供する。
しかし予想されるように、OSをコーディングするのは容易なことではない。Fractalはassembly、C、C++などのprogramming languagesを組み合わせてゼロからコーディングされた。Ravichandranは2024年6月に作業を開始し、その年の終わりにOSの初版を完成させた後、数ヶ月のテストを経た。デバッグが最も困難なステップで、サポートを想定していないハードウェア向けにカスタムOSを構築したことで、デバッグツールが使えなくなった。
「Apple Silicon上でFractalを動作させる際、長い間、私が得られた唯一の出力はマシンの前面にある電源ランプだけだった」とRavichandranは言う。「このランプはコードが実行されているかどうか(ランプが点灯している場合)、あるいは何らかの理由でマシンがクラッシュしたかどうか(ランプが消灯している場合)を教えてくれた」
Fractal OS Features for Security Research
Fractalは研究者に3つの主要な機能を提供する。
最初の目玉機能はmulti-privilege concurrencyだ。従来のOSでは、システムリソースへのプログラムのアクセスを制御する特権レベル間のチップの動作を比較するのは極めて困難だ。レベルを切り替えるとメモリレイアウト、CPUのbranch-predictorの状態などが変化し、これらすべてがテスト結果を歪める変数となる。Fractalは他のパラメータを同一に保ちながら、特権レベル間でテストを同時に実行できるため、よりクリーンなテスト結果が得られる。
2つ目の機能はcooperative multitaskingで、従来のOS機能であるpreemptive multitaskingの代替だ。Preemptive multitaskingは現代のOSにとって重要な機能で、一度にアクティブになる可能性のある数十または数百のタスクを切り替えるために使用される。しかし、OSが別のタスクをより重要と判断した場合にテストを一時停止する可能性があり、テスト結果にノイズを加える。Fractalのcooperative multitaskingを有効にすると、ユーザーは中断なしにコードの実行順序を指定できる。
最後の機能はgmapと呼ばれるFractalのメモリシステムだ。従来のOSでは、プログラムはOSが実際のハードウェアにマッピングする仮想アドレスを通じてメモリに到達する。このマッピングはテスト間で変化する可能性がある。Gmapは代わりにスレッドとタスク間でメモリ位置をミラーリングし、もう一つの変数を排除する。
これらの機能に共通するテーマは制御と明瞭さだ。「Fractalの目的は、ハードウェアが何をするかを可能な限り正確に単純に伝えることだ」とRavichandranは言う。「Fractalから得られた情報を活用することで、研究者はOSに依存しないハードウェア自体の動作をより良く理解できるようになる」
Discovering Phantom Speculation on M1
Fractalの能力を示すため、Ravichandranは手元にあったハードウェアであるAppleのM1を標的にした。
Fractalにより、Apple SiliconがPhantom speculationという形態の影響を受けているという初めての証拠を発見することが可能になった。これは場合によっては攻撃者が一時的に攻撃者が選んだパスにチップを誘導することを可能にする。PhantomはAdvanced Micro Devices(AMD)およびIntelのハードウェアに存在することが知られていたが、AppleのM1に存在することは証明されていなかった——今回まで。
この脆弱性の実際的な影響は限定的である可能性が高い。Fractalは、AppleのM1上でPhantom fetchesが発生する一方で、命令は決して実行されないことを発見した。Ravichandranは、この脆弱性が実際にどのように悪用されるかについての推測を避け、脆弱性はAppleに開示されたと述べた。
主にAppleのM1を搭載したMac Miniでテストされたが、Fractalは多くのIntelおよびAMD PC、Raspberry Pi、およびMac Mini with Apple M4のようなより最近のApple Siliconデバイスでも動作する。FractalはMITライセンスの下でオープンソースOSとして無料でダウンロード可能だ。RavichandranはカーネルをGithubに、完全な実験セットアップをZenodoに投稿しており、追加の詳細はFractalのウェブサイトで入手できる。
Ravichandranは、他の研究者がFractalを使って他のマイクロアーキテクチャを探求することを楽しみにしている。「今の私の目標は、このシステムを世界に公開し、他の研究者が恩恵を受けられるようにすることだ」と彼は言う。「Fractalが、このアプローチから恩恵を受ける他の研究室からの貢献によるコミュニティプロジェクトになることを願っている」
0 Comments
Log in to join the conversation.No comments yet. Be the first to share your thoughts.