リモートSpectre攻撃によって、同一ホスト上のCloudflare WorkerからJWTを引き出すことに成功した。共有サーバーレス環境では、CPUのサイドチャネルがテナント境界を越えて到達し得ることが明らかになった。
研究者らは、意図的に仕込んだトークンをCloudflareの本番環境で毎秒最大12ビットの速度で抽出した。研究チームは両方のWorkerを管理し、被害側のWorkerにトークンを意図的に配置していた。Cloudflareは、この手法が実際に悪用されたことを示す兆候は確認しておらず、実証された攻撃への対策は済んでいると述べた。
この攻撃が注目されるのは、ネイティブコードの実行やV8のソフトウェアエクスプロイト、従来型のサンドボックス脱出を必要としなかったためだ。代わりに、同一ホスト上のWorkerがOSプロセスを共有できる仕組みを悪用した。
リモートSpectre攻撃によるJWT流出の仕組み
Cloudflare Workersプラットフォームは、同じOSプロセス内で多数のテナントのコードを実行するためにV8 isolatesを使用している。各Workerには専用のJavaScriptヒープが割り当てられるため、Cloudflareはすべてのテナントを別々のプロセスに入れるオーバーヘッドを避けながら、起動時間を短く抑えられる。Cloudflareは、共有Workerプロセス内の任意の読み取りが、依然としてテナント間の情報漏えいにつながり得ると認めた。
Spectreは、現代のCPUにおける投機実行を悪用する。プロセッサーは誤った投機処理の結果を破棄するものの、その痕跡がキャッシュに残ることがある。攻撃者はその痕跡を測定し、本来ならアクセスできないデータを推測できる。
Cloudflareはすでに、Worker内部で高解像度のローカルタイマー、共有メモリ、マルチスレッドを制限していた。研究者らは、WebSocket通信をリモートのタイミング情報源として使うことで、この障壁を回避した。
GIGAZINEは、攻撃でPseudo Least Recently Usedという手法も使われたと報じている。この手法は、わずかなキャッシュタイミングの差を増幅し、ノイズの多いネットワーク接続越しでも識別できるようにするものだ。Durable Objectsにより、測定中はWorker isolateを5時間から20時間超にわたって稼働状態に保てた。
研究者らは最終的に、意図的に仕込んだJWTを1ビットずつ、毎秒最大12ビット、99.16%の精度で復元した。The Hacker Newsは、その速度が、毎時およそ120ビットの抽出に成功した2021年の実証実験より約360倍速かったと報じている。
CloudflareのSpectre検知をすり抜けた理由
DyPrIsとして知られるCloudflareのDynamic Process Isolationシステムは、ハードウェアのパフォーマンスカウンターを監視し、Spectre攻撃に似たスクリプトを別のプロセスへ移す。
今回の新たな攻撃には、その防御をすり抜ける2つの特徴があった。
第1に、DyPrIsは以前、呼び出しが完了するまで分離を行わなかった。WebSocketのキープアライブメッセージによってDurable Objectの呼び出しを数時間継続できたため、研究者らは分離が行われる前に情報を抜き出す時間を確保できた。
第2に、大量のWebSocketトラフィックによってiTLBのアクティビティが増加した。その結果、DyPrIsが使用する正規化された分岐予測ミスのシグナルが検知しきい値を下回り、攻撃は通常のI/O負荷が高いWorkerに見えるようになった。
Cloudflare、Worker周辺の分離を強化
Cloudflareは、3つの防御策を重ねて導入していると説明した。DyPrIsの改善、V8 Sandboxの統合、ハードウェア支援によるプロセス内分離だ。
V8 Sandboxは、生の64ビットポインターへの露出を減らし、今回の研究で使われた特定の投機ガジェットを再利用しにくくする。Cloudflareは、他のガジェットや攻撃亜種が依然として可能なため、Sandboxは完全なSpectre対策ではないと注意を促している。
CloudflareはMemory Protection Keysも使用し、ハードウェアで強制されるメモリ境界の内側にWorkerヒープを置いている。誤ったキーで保護されたメモリへのアクセスはCPUによって拒否されるため、研究者らが実証した単純なisolate間読み取りを阻止できる。MPKによって情報漏えい可能な範囲は縮小するが、Cloudflareによれば、Spectreのリスクを完全に排除するものではない。
DyPrIsは現在、長時間実行されるワークロードやI/O負荷の高いワークロードをセキュリティ上のケースとして扱うほか、繰り返し発生するタイマーに似たネットワークアクティビティがサイドチャネル攻撃の特定にも役立つか調査している。
セキュリティチームがサーバーレスサービスを評価する際、この研究はワークロードが技術的にサンドボックス化されているかどうかだけでは不十分だと思い起こさせる。マルチテナント環境では、プロセス境界、ハードウェアで強制されるメモリ分離、ランタイム監視、サイドチャネル対策のすべてが、あるテナントのコードを別のテナントのデータから隔離するうえで役割を果たす。
詳しくはこちら:新たに公表され、現在悪用されている脆弱性を追跡するセキュリティチーム向けに、Microsoftの8月のPatch Tuesdayでも、すでに攻撃に使われているWindowsのゼロデイを含む400件超の脆弱性が修正された。





