機械学習が誤った物語を語るとき
(jackcook.com)- MITのハードウェアセキュリティプロジェクトは、Webブラウザで可能な機械学習支援サイドチャネル攻撃を再現する中で、高いモデル精度が実際の原因を証明しないという落とし穴を明らかにした
- 既存のWebサイトフィンガープリンティング研究はCPUキャッシュ競合を原因と見ていたが、キャッシュアクセスをなくして単純にカウンタだけを増加させる方式のほうが、複数の環境でより高い精度を示した
- 研究チームはCPU周波数スケーリング、CPUコア競合、キャッシュ仮説を順に排除し、eBPF計測によって100ns以上停止した区間の99%以上が割り込み処理だったことを確認した
- システム割り込み信号だけでもWebサイトの読み込み活動が露出し、Chrome/Linuxでは100個のWebサイトの中から対象サイトを識別する精度が**96.6%**に達した
- 防御策を設計するには、モデルが当てたという事実よりも先に、サイドチャネルの実際のメカニズムを確認する分析が必要になる
研究が始まったきっかけ
- 2020年、MITのSecure Hardware Designの授業で、Web開発と機械学習の経験をもとにWebサイトフィンガープリンティング攻撃を再実装するプロジェクトが始まった
- Mengjia Yanは、機械学習でハードウェアの弱点を攻撃する最新のWebサイトフィンガープリンティング研究にどこか噛み合わない点があると見て、再実装を提案した
- プロジェクトはその後、There’s Always a Bigger Fish: A Clarifying Analysis of a Machine-Learning-Assisted Side-Channel Attackという論文につながった
- この論文はIntelの2024 Hardware Security Academic Awardで1位を獲得し、2023年のIEEE Micro Top Picksにも選ばれた
- 研究はブラウザ攻撃、システム割り込みリーク、機械学習の解釈ミスという3つの軸を扱っている
サイドチャネルとWebサイトフィンガープリンティング
- プロセス分離はアプリケーションのメモリや資源を分離するが、実際のコンピュータではネットワークカード、GPU、CPUのような資源が引き続き共有されている
- 共有資源は意図せずユーザー活動の情報を漏らすことがある
- 同じWi‑Fiルーターを使う人が大容量の動画を見ると、別のユーザーのダウンロード時間が遅くなることがある
- 消費電力の変化や電磁放射も、暗号鍵やユーザー活動を推定するサイドチャネルになりうる
- Webサイトフィンガープリンティングは、あるタブの攻撃者Webサイトが、別タブで開かれた対象Webサイトを識別しようとする攻撃である
- Shusterman et al.の既存研究は、CPUキャッシュを利用して100個の候補Webサイトの中から開かれたサイトを当てる攻撃を示した
- 攻撃者はCPUキャッシュサイズの配列を作り、1で埋める
- 対象Webサイトが読み込まれている間、2msごとに配列アクセス時間を測定する
- 15秒間で合計7,500個の測定値を収集する
- Webサイトごとにスクリプト、画像、スタイルシート、レンダリングパターンが似た形で繰り返されるため、測定トレースが指紋のように使える
- 100個のWebサイトから各100個のトレースを集め、合計10,000件のラベル付きデータセットを作って機械学習モデルを学習させる
- 複数のブラウザとOSで最大91.4%の精度を得た
キャッシュを取り除いたカウンタ攻撃
- 初期の再実装では4つのWebサイト分類は容易で、単純なRandom Forest分類器で98%の精度を得た
- 実験を10個のWebサイトに拡張した際、当初は75%の精度だったが、その後10個、50個、100個のWebサイト分類まで改善された
- 決定的な変化は、キャッシュ配列へのアクセスをなくし、攻撃者が可能な限り速く
value++を繰り返すようにした方式だった- 一定時間ごとにカウンタ値を保存すると、その期間中にコンピュータがどれだけ多く実行できたかがトレースとして残る
- ブラウザウィンドウのサイズ変更や新しいタブを開くといった別の活動も、カウンタトレースに反映される
- 論文では5msごとに値を保存し、固定時間内でより多くの情報を得ている
- カウンタトレースで学習したモデルは、従来のキャッシュ遅延トレースより高いWebサイト識別精度を示した
- この結果は、既存攻撃が本当にキャッシュ競合を利用していたのかという疑問を生み、原因を突き止める分析へとつながった
モデル精度と原因分析の隔たり
- 機械学習支援サイドチャネル攻撃で、モデルがユーザー活動を安定して予測できるという事実は、信号の存在だけを示す
- 高い精度は、その信号がどのサイドチャネルから来たのかを証明しない
- Shusterman et al.のモデルが91.4%の精度で対象Webサイトを当てられたとしても、それがCPUキャッシュ競合を捉えたことを意味するわけではない
- モデルが見つけるのは相関関係であり、信号の原因を説明するものではない
- 原因分析を誤ると、防御策の設計を誤った方向へ導くおそれがある
- 研究者たちは攻撃論文をもとに、コンピュータをより安全にする防御策を設計する
- 攻撃原因を誤解すると、時間と労力が無駄になりかねない
仮説検証: 周波数、コア、割り込み
- 研究チームは、既存のキャッシュベース攻撃と新しいカウンタベース攻撃を複数の環境で比較した
- 100個のWebサイト識別課題で、カウンタベース攻撃はほぼすべての実験構成でより高い精度を示した
- macOSのSafariでは、キャッシュ攻撃が72.6%、カウンタ攻撃が**96.6%**の精度を示した
- 基本構成では、100個のWebサイトの中から正解を**95.2%**の精度で識別した
-
CPU周波数スケーリング仮説
- 現代のCPUは、負荷に応じて周波数を上げ下げしてエネルギーを節約する
- 対象Webサイト読み込み中にCPU周波数が変化し、カウンタ値が変わる可能性があるという仮説を立てた
- BIOSで周波数スケーリングを無効化した後、新しいデータを収集してモデルを学習させた
- 精度は95.2%から**94.2%**へと1ポイントしか下がらず、カウンタ値の変化をCPU周波数変化で説明するのは難しかった
-
CPUコア競合仮説
- 攻撃者と対象タブが同じCPUコアで実行されると、対象タブの読み込みが攻撃者のカウンタ実行時間を減らす可能性がある
- Linuxの
tasksetで攻撃者と対象タブを別々のコアで動かすよう固定した - CPU周波数スケーリングを切った状態でも、精度は**94.0%**で維持された
- CPUコア競合も主要因とは考えにくい
-
システム割り込み仮説
- 次の仮説は、システム割り込みがカウンタベース攻撃の信号源だというものだった
- OSはキーボード、マウス、ディスプレイ、ネットワークカードなどのハードウェア装置と通信するために割り込みを使う
- 割り込みがCPUコアに到達すると、そのコアで実行中のプログラムは即座に停止し、割り込みハンドラが実行される
- 対象Webサイトの読み込み中、ネットワークやグラフィックスなどの各種装置が割り込みを発生させ、それが攻撃者と同じコアで処理されると、攻撃者のカウンタ値が低くなりうる
- Linuxでは
cat /proc/interruptsで割り込み処理を確認できる
移動可能な割り込みと移動不可能な割り込み
- Linuxでは、一部の移動可能な割り込みを特定のコアへルーティングできる
- 数字IDを持つ割り込みがこれに当たる
- キーボードやネットワークカードのような外部ハードウェア装置から来ることが多い
- 多くの移動不可能な割り込みは特定コアへ隔離できない
- 3文字のIDを持つ割り込みがこれに当たる
- CPUコア間の活動同期に使われるため、すべてのコアで処理されなければならない
- 実験環境では割り込み活動の大半を占めていた
irqbalanceで移動可能な割り込みをコア1へ送り、tasksetで攻撃者と対象をコア2と3で動かした- CPU周波数も固定した状態で精度はほぼ6ポイント低下し、割り込み仮説がより有力になった
eBPFで確認した実際の原因
- 移動不可能な割り込みまで完全に隔離する実験はOSの構造上不可能だったため、eBPFで実行を計測した
- eBPFを通じて2つの時点を記録した
- 攻撃者プログラムが開始・停止する時点
- 割り込みハンドラが開始・停止する時点
- CPU周波数が固定されているため、攻撃者が妨害されなければ、固定時間内にほぼ同じ数の命令を実行するはずである
- Jonathan Behrensが書いたeBPFコードで、攻撃者が停止した区間と割り込み処理区間を比較した
- 100ns以上続いた攻撃者の実行停止区間の99%以上が、割り込み処理時間であることが確認された
- 攻撃者のCPUコアは実質的にカウントコード実行か割り込み処理のどちらかを行っており、割り込み処理時間が短ければカウンタ値は上がり、長ければ下がるというパターンが現れた
論文の2つの主要な結果
- 1つ目の結果は、システム割り込みがユーザー活動を漏らすという点である
- システム割り込みのセキュリティ特性は、既存文献で研究されたことがなかった
- 研究チームはシステム割り込みベースのサイドチャネルを初めて分析した
- 2つ目の結果は、機械学習支援サイドチャネル攻撃を慎重に分析すべきだという点である
- 機械学習モデルはサイドチャネルを理解していなくても強力な攻撃を作れる
- OSを計測していなければ、どのサイドチャネルを使っているのか結論づけられなかったはずだ
- 既存のキャッシュベース攻撃への防御策は、CPUキャッシュを繰り返し追い出してノイズを入れる方式だった
- ローカルIPアドレスにネットワークリクエストを送るなど、多くの割り込みを発生させる防御のほうが、キャッシュベース攻撃にもカウンタベース攻撃にもより有効に働いた
- この比較は、Shusterman et al.の攻撃がキャッシュよりも割り込み信号を主に利用しているという根拠を強めた
追加実験と防御の可能性
- 論文には追加結果も含まれている
- JavaScriptに提供されるブラウザクロックを変更して攻撃を完全に緩和する方法を提案した
- 攻撃者と対象を別々の仮想マシンに入れて隔離する実験を行った
- 複数の移動不可能な割り込みの頻度と処理時間を分析した
- ブラウザはJavaScriptに提供するクロック精度を下げることで、高精度タイミングベース攻撃を難しくしている
- Chromeは0.1ms単位で丸め、ランダムノイズを追加する
- FirefoxとSafariは1ms単位で丸める
- Tor Browserは100ms単位で丸め、攻撃精度をChromeの96.6%から**49.8%**へ下げた
- クロック精度の低下にはトレードオフがある
- ブラウザベースのゲームエンジンは、レンダリングやアニメーションに高精度タイマーを必要とする
- Tor Browserユーザーは多くのゲームをプレイしにくいが、セキュリティ重視のユーザーには問題でないかもしれない
残された研究課題
- システム割り込みは、SpectreやMeltdownのように現代コンピュータの深部にあるハードウェア機構と結びついている
- 移動不可能な割り込みを攻撃者から隔離する防御は現状では実装できず、それを可能にするにはコンピュータをどう再設計すべきかも不明である
- Webサイト活動と割り込みの関係も十分には理解されていない
- weather.comは多くのrescheduling interruptを引き起こしたが、nytimes.comやamazon.comはそうではなかった
- 追加の画像、広告、スクリプトがカウンタトレースにどのような影響を与えるかは分析されていない
- 攻撃はさらに強力になりうる
- この論文は「攻撃論文」より「分析論文」に近い
- Chrome/Linuxで得られた96.6%の精度は上限ではなく下限かもしれない
- より良いモデルや別の方法論によって、1,000個のWebサイト分類、映画を見ているかどうか、VPN使用の有無、Robinhoodをどれくらいの頻度で確認するかといった課題に適用される可能性が残っている
- ブラウザベースの防御も、実際のブラウザへ実装し、一般ユーザーにとって実用的かどうかを検討する必要がある
研究が個人の進路に残した影響
- このプロジェクト以前は大学院進学は真剣な選択肢ではなく、NVIDIAでのディープラーニング研究インターン経験後は、大手テック企業やAIスタートアップへの就職を考えていた
- プロジェクト後、研究が楽しく、美しいものにもなりうるという経験を得た
- MIT卒業後、コンピュータサイエンスのMEng課程を1年続け、その後Rhodes scholarshipを得てUniversity of Oxfordで2年間学んだ
- 来年、MITで6年制のコンピュータサイエンスPhDを始める予定である
1件のコメント
Hacker News のコメント
良い記事で、その後ろにある研究も端正です。
論文の貢献は実のところ 機械学習 とはあまり関係なく、割り込みを使った 新しいサイドチャネル を見つけた点にあると思います。
ここでの機械学習は読者をより引きつける役割に近く、同じように「統計」と言っても大差はなかった気がします。
以前、指導教員が「論文が本当は何についてのものか分かったら、書き直すときに以前テーマだと思っていた部分を削ぎ落とせ」と言っていたのを思い出しました。
この論文のタイトルは、機械学習の話より新しいサイドチャネルに焦点を当てるべきだったと思います。とはいえ些細な難癖で、素晴らしい仕事です。
機械学習に関する誤解の発見が特に重要なのは、既存の コンピュータアーキテクチャ研究 のかなりの部分に疑問を投げかけるからです。
以前はこうした攻撃を行うには、悪用するサイドチャネルを深く理解している必要がありましたが、機械学習モデル、ここでは LSTM が単なる「統計」を超えてはるかに高い精度を可能にすることで、よく理解されていないサイドチャネルを悪用する強力な攻撃を作りやすくなっています。
このように作られた機械学習支援型の攻撃は現在かなり多く、Shusterman らの論文ひとつだけでも、コンピュータアーキテクチャの論文としては非常に大きい、ほぼ200回の引用を受けています。
こうした研究を公開する目的は、システムをよりよく理解して、より強い防御を作るためであり、誤って理解してコミュニティをミスリードするコストは大きいです。
以前の攻撃の原因が結局キャッシュだったと判明したとしても、この点はなお正しいのですが、その過程で新しいサイドチャネルを発見したことで、メッセージはずっと明確になりました。ブログ記事ではこの部分をもっと強調できたかもしれません。
現実にはデータの海に溺れていると、こうした常識は相関関係の洪水の中で失われることがありますが、良い実験設計とピアレビューは本来、弱い結論や解釈をふるい落とすべきものです。
その意味で、この再現研究はその役割を見事に果たしました。
素晴らしい記事です。サイドチャネル攻撃をこんなに分かりやすく理解できるとは思いませんでした。
最初から悪者が誰かは分かっているけれど、「どうやったのか」を探っていく殺人ミステリーのように読めました。
ブックマークしました。
でもこの反応のおかげで読み、実際に本当に良かったです。
「来年 MIT に戻り、コンピュータサイエンスの6年制博士課程を始めます。これ以上わくわくすることはありません!」というくだりが驚きです。
すべては、著者が元のサイドチャネル攻撃にあったずっと高度なキャッシュ追い出し攻撃の代わりに、カウンタを試してみるようなランダムな試みをしてみようという 幸運なアイデア から始まり、当時は知らなかった概念のおかげでそれがうまくいった、という点が印象的です。
おそらく数千人に一人だったであろう私のような人間は、そうした運がなく、学界に残る考えを早々に諦めて業界に入り、平凡なキャリアを築きました。
オーストラリア式の、修士に近いコンピュータサイエンスの Honours Degree を始め、2010年ごろ、今の AI ブームよりずっと前の時期に、正規の AI 科目で学んだ応用例をもとに 人工知能の論文 を書きたいと思っていました。
ワイナリーがワインの品質と生産を改善するために AI を使う方法から出発して、より「一般的な」応用に適用してみたかったのですが、割り当てられた指導教員は手伝うことにまったく関心がなく、他の支援もなかったため、続けるのは難しかったです。
特にかなり良い給与の正社員オファーがあり、続けていたとしてもおそらく大した成果は出せなかったでしょう。
著者も言うように、指導教員や周囲の助けのおかげで物事が進んだのであり、一人では途方もない推進力と才能が必要ですが、私にはそのどちらも足りなかったように思います。
日本で最初の博士課程にいたとき、教授と周囲の人たちは3年間、私が提案することすべてに対して、実行可能なアイデアもなく批判するだけでした。
隣の研究室の教授は私の研究を気に入ってくれましたが、研究室を移るには気づくのが遅すぎました。
今は、私の別プロジェクトを完全に理解し、気にかけてくれる全国の半分、つまり合計2人と一緒にいられる場所にいて、すでに彼らのデータのおかげでプロジェクトは良くなりました。
所長も私を好意的に見てくれていて、正式な所属ではなくても研究室の活動に加えてくれています。
こういう環境なら成功できます。合う環境と人を見つけるのは難しいですが決定的で、そうでなければ非常に良い仕事も無駄になりかねません。
記事は良かったです。
ごく些細なページ上の難癖ですが、大きな点が連なった 区切り線のスタイル が画像カルーセルの位置インジケータのように見えて紛らわしかったです。
記事が素晴らしく、説明がとても分かりやすく、インタラクティブデモ も本当に見事です。
こういうことをどう始めることになったのか、その背景を語ってくれた点も良かったです。
非常に興味深く、説明もよくできています。研究が出てから2年経っているなら、関心のある データ収集者 たちはすでに考慮しているでしょう。
ハッカーのことは忘れていいです。これは企業と政府のためのエクスプロイトです。
プライバシー保護を重視するウェブサイトが、ランダムに割り込みを発生させるパッケージを配布することはできるでしょうか? ブラウザ拡張がすべてのサイトに対してそうすることはできるでしょうか?
ランダムに割り込みを発生させる私たちの対策はブラウザ拡張として実装されており、ソースコードはここにあります: https://github.com/jackcook/bigger-fish
ただし、日常的に使うことを勧めるのは難しいです。テストではページ読み込み時間が約10%遅くなったと記憶しています。
一部はコンピュータ使用量が多いときにかなり変わりましたが、Safari にはすでに一部の緩和策が入っている可能性がありそうです。
それでも論文は本当に見事です。