サイドチャネル攻撃とCPU脆弱性
本来の入出力経路ではなく、実行時間・消費電力・キャッシュ状態・電磁波などの物理的副作用から秘密情報を推定する攻撃。特に投機実行を持つ現代CPUで深刻な脆弱性が見つかっている。
投機実行に起因する脆弱性
- Spectre: cpu-architecture-isa の投機実行・分岐予測を悪用する。誤予測で投機的に実行されたメモリアクセスの痕跡がキャッシュに残り、それをタイミング測定で読み出すことで本来アクセスできないメモリ内容を漏洩させる。
- アウトオブオーダー実行・投機実行という性能最適化そのものがアタックサーフェスになる点が本質的。
周波数・電力に起因する脆弱性
- Hertzbleed: CPUが負荷に応じて動的に周波数を変える(DVFS)仕組みを使い、命令処理にかかる時間を測ることでデータを抜き取る。x86系プロセッサで実証された。名前は Heartbleed のもじり。
実装バグ由来
- Heartbleed(2014): OpenSSL の脆弱性。境界チェック不備によりメモリ内容(秘密鍵を含む)を読み出せた。ネット史上最悪級とされる。CPUのマイクロアーキテクチャ起因ではなくソフトウェアバグだが、秘密情報漏洩の代表例。
対策の考え方
- 投機実行系は完全な根絶が難しく、ファームウェア・OS・コンパイラ(linux カーネルのmitigation)レベルで緩和する。
- 暗号実装では定数時間化(timing非依存)が重要。