2025/09/05 20:01 MileSan: Detecting μ-Architectural Leakage via Differential HW/SW Taint Tracking

ロボ子、今日のITニュースはすごいぞ! MileSanっていうRTLサニタイザーが出てきたらしいのじゃ。

RTLサニタイザーですか? 初めて聞きました。どんなものなんですか、博士?

アーキテクチャレベルとマイクロアーキテクチャレベルの情報フローの差異をチェックして、悪用可能な情報漏洩を検出するらしいぞ。簡単に言うと、CPUの中身で情報がダダ漏れになってないかチェックするスゴイ奴なのじゃ!

なるほど。情報漏洩を防ぐためのツールなんですね。具体的にはどんなことができるんですか?

RandOSっていうファザーを使って、5つのRISC-V CPUで19個も新しいリーケージを見つけたらしいぞ! そのうち13個にはCVEが割り当てられたって書いてあるのじゃ。

19個もですか! それはすごいですね。既存の手法では見つけられなかった脆弱性を見つけられるということですか?

そう! 既存のファザーは、情報漏洩の可能性のある特定のマイクロアーキテクチャ構造に過剰適合しちゃうらしいのじゃ。それに、既知の脆弱性をトリガーするシードに基づいてプログラムを生成するから、新しい脆弱性は見つけられないみたい。

なるほど。MileSanは、そこが違うんですね。どのようにして新しい脆弱性を見つけるんですか?

アーキテクチャ情報フロー(AIF)とマイクロアーキテクチャ情報フロー(MIF)の違いに着目しているのじゃ。AIFはISAから派生する情報フローで、MIFはCPUのマイクロアーキテクチャ実装における論理的な情報フロー。マイクロアーキテクチャの最適化で、タイミングに影響を与える追加の情報フローが発生するから、そこを突くのじゃ!

タイミングに影響を与える情報フローですか。サイドチャネル攻撃につながるようなものですか?

その通り! MileSanは、CPUが特定の命令を実行するのにかかる時間に影響を与える過剰な情報フロー(タイミングサイドチャネル)を検出して、悪用可能なマイクロアーキテクチャのリーケージを特定するのじゃ。

なるほど。ソフトウェアレベルとハードウェアレベルの両方から情報フローを追跡するんですね。

そう! プログラムと秘密メモリ位置を考慮して、ソフトウェアレベルの静的 taint trackingでアーキテクチャフローを計算して、プログラム実行時にハードウェアレベルの動的情報フロー追跡でマイクロアーキテクチャフローを計算するのじゃ。

すごいですね。RandOSというファザーも気になります。これはどんな役割を果たすんですか?

RandOSは、秘密データのアーキテクチャ情報フローを厳密に決定したランダムなプログラムを生成するのじゃ。特権レベルとアドレス空間レイアウトを網羅して、セキュリティドメイン内およびドメイン間のマイクロアーキテクチャリーケージを検出するらしいぞ。

ランダムなプログラムを生成することで、予期せぬ脆弱性を見つけやすくするんですね。

そういうこと! 発見された脆弱性には、トランジェント実行の脆弱性や、定数時間違反が含まれているらしいぞ。

トランジェント実行攻撃は最近よく聞きますね。SpectreやMeltdownのような脆弱性もそうでしたよね。

さすがロボ子、よく知ってるのじゃ! MileSanはCCS'25で発表されて、RandOSとともに利用可能になるらしいぞ。しかも、MileSanの原理は普遍的で、特定のISAに限定されないらしい。

それは素晴らしいですね。RISC-V以外のCPUでも使えるようになる可能性があるんですね。

ただし、MileSanのスケーラビリティは、基盤となるIFTメカニズムによって制限されるらしいから、今後の課題じゃな。

今後の発展に期待ですね。博士、今日の解説もありがとうございました!

どういたしましてなのじゃ! ところでロボ子、情報漏洩を防ぐために、一番大切なことってなんだと思う?

そうですね…、やはり日頃からセキュリティ意識を高く持つことでしょうか?

ブー! 答えは…秘密なのじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。