サイバーセキュリティ

Cloudflare、Workersに対するリモートSpectre攻撃を再評価し、毎秒12ビットのデータ漏えいを明らかに

内部再評価により、Spectre型のリモート攻撃が本番環境でWorker間の分離を越えてデータを漏えいさせ、毎秒最大12ビット、99%を超える精度を達成できることが示された。Cloudflareによれば、この攻撃はDyPrIsの改善、V8 Sandboxの統合、Memory Protection Keysに基づくプロセス内分離によってすでに対処されている。

2026-08-19
1 分で読めます
11 閲覧数
فريق تحرير certi.news
Cloudflare、Workersに対するリモートSpectre攻撃を再評価し、毎秒12ビットのデータ漏えいを明らかに

Cloudflareは、Cloudflare Workersプラットフォームに対するリモートSpectre攻撃を再評価した結果を明らかにした。この評価は2024年から2025年初頭にかけて実施された。研究チームは本番環境で動作する概念実証を構築し、研究者が管理する攻撃者Workerから被害者Workerへ、毎秒最大12ビット、99%を超える精度でデータを漏えいさせることに成功した。

同社は、実証された攻撃についてはCloudflare Workers Runtimeチームが講じた対策により本番システムで対処済みであり、過去3年間に実際の悪用を示す兆候は見つかっていないと説明している。結果は、Albert Pedersen、Haocheng Xiao、Sam Ainsworth、Nigel Topham、Martin Schwarzlが共同執筆した論文で公開された。

なぜこの研究が重要なのか?

Workersはエッジで信頼できないJavaScriptを実行する仕組みに依存しており、数万のテナントがV8アイソレートを介して単一のOSプロセスを共有できる。各Workerには独立したJavaScriptヒープがあり、これにより起動時間と多数のテナントをホスティングする効率が向上する。一方で、プロセス内の任意読み取り脆弱性は、テナント間のデータ漏えいにつながる可能性がある。

Spectre攻撃は、プロセッサの投機的実行を利用する。プロセッサが分岐命令の結果を予測し、確定前に命令を実行すると、結果自体は後で破棄される可能性がある。しかし、キャッシュなど、プロセッサのマイクロアーキテクチャ状態には微細な痕跡が残る。攻撃者はメモリアクセス時間の差を利用して、本来読み取れないデータのビットを推測できる。

Cloudflareは2021年、悪意のあるように見えるスクリプトを別プロセス内に隔離する本番向け防御機構、Dynamic Process Isolation(DyPrIs)を導入した。しかし今回の再評価では、実行機構の制約により、攻撃が分離を回避できるほど長時間有効な状態を維持できることが判明した。

攻撃はどのようにWorkersの制約を克服したのか?

このプラットフォームではローカルタイマーが制限され、共有メモリやマルチスレッドも許可されていないため、SharedArrayBufferに依存する従来の測定手法は利用できない。その代わりに研究者らは、WebSocket接続を介したリモートタイマーを使用し、L1キャッシュにおけるtree-based PLRU置換ポリシーを利用して、キャッシュイベントによって生じる信号を増幅した。

チームはさらに、2種類のSpectre gadgetを設計した。1つ目は、アイソレート固有のヒープベースアドレスを含む、圧縮されたヒープポインターを漏えいさせるために使用された。2つ目は、型に関する投機的な混乱を利用して64ビット幅の生ポインターにアクセスし、漏えいを攻撃側が選択したアドレスからの読み取りへと変換した。研究実施時点ではV8 SandboxはまだWorkersに導入されておらず、TypedArrayはバッキングストアへの生ポインターを保持する構造の1つだった。

再現可能な測定を確保するため、研究者らはキャッシュ容量を超える大規模なオブジェクト群を作成し、各ラウンドで正確なキャッシュラインごとのエビクションセットを探すのではなく、ランダムな位置を選択した。また、長期間の実行コンテキストを維持するためにDurable Objectsを使用し、WebSocketメッセージによって処理時間とリクエストの制限をリセットできるようにした。実行バッチの間に定期的な休止時間を設けることで、アイソレートを5時間から20時間超にわたってアクティブな状態に保つことができた。

攻撃者と被害者を近接させるため、攻撃者Workerはfetchを介して被害者Workerを呼び出した。これにより、多くの場合、両者は同じエッジサーバー上の同一プロセスで実行された。この手法により、エッジ拠点の負荷が低い時間帯を利用して測定の安定性を高めることもできた。

Cloudflareの防御策は実際にどのように変わったのか?

Cloudflareは単一の対策に依存せず、複数の変更を導入した。V8 Sandboxが保護レイヤーの一部となり、JavaScriptヒープの大部分における64ビット幅の生ポインターの存在を減らすことを目指している。これにより、研究で使用された一部の投機的混乱ガジェットは再利用が難しくなるが、Spectre攻撃に対する完全な対策ではない。メモリ境界外へのアクセスを実現する別のガジェットや形式が現れる可能性があるためだ。

2025年9月、同社はMemory Protection Keys(MPK)に基づくプロセス内分離を公開した。この技術はメモリを保護領域に分割し、低コストでアクセス権を切り替えることで、各アイソレートのヒープをハードウェアが強制する境界の背後に置く。これにより、攻撃が利用したアイソレート間のヒープの直接読み取りは防止されるが、Spectreのリスクがすべてなくなるわけではない。保護領域の数には限りがあり、保護キーの状態を慎重に管理する必要もある。

Cloudflareは、長時間実行される処理やI/O負荷の高いワークロードに対応できるよう、DyPrIsの仕組みも改善した。スクリプトの分離を呼び出しの終了まで待つだけでは、WebSocket接続やDurable Objectによって呼び出しが数時間開いたままになる場合に不十分である。同社はまた、特に計算負荷の高い部分の周囲でタイマーに似た操作が繰り返される場合に、通常のノイズとして扱うのではなく、リモートタイミングの挙動を検知シグナルに加えることも検討している。

結果の限界

テストはCloudflareと研究者が管理するWorkersを対象に実施されたものであり、実際のテナントへの侵入を示す証拠ではない。また、同社の説明によれば、最も高い漏えい速度は精度を犠牲にして達成された。過去3年間に実際の悪用を示す兆候も確認されていない。したがって今回の結果は、従来の分離モデルにおいて実行可能な攻撃能力が存在したことと、プロセス分離、ハードウェア強制のメモリ保護、継続的な挙動検知を組み合わせる重要性を示している。

ニュースの出典
Cloudflare Blog
原文を開く ↗
ف
著者

فريق تحرير certi.news

同じカテゴリー

おすすめ記事

すべてのニュースを見る