eSecurity Planetのコンテンツおよび製品の推奨は、編集上の独立性を保っています。パートナーへのリンクをクリックすることで収益が発生する場合があります。詳細はこちら
リモートSpectre攻撃によって、同一環境に配置されたCloudflare WorkerからJWTを抜き取ることに成功した事例が報告されました。共有型サーバーレス環境において、CPUのサイドチャネルがテナントの境界を越えて到達し得ることを示す結果です。
研究者らは、Cloudflareの本番環境において、意図的に仕込んだトークンを最大毎秒12ビットの速度で抽出しました。研究チームは攻撃側・被害側双方のWorkerを制御しており、トークンは被害側に意図的に配置したものです。Cloudflareは、この手法が実際に悪用された痕跡は見つかっていないとしたうえで、実証された攻撃への対策を講じたことを明らかにしています。
この攻撃が注目される理由は、ネイティブコードの実行やV8のソフトウェア脆弱性の悪用、従来型のサンドボックス脱出を必要としなかった点にあります。代わりに、同一環境に配置された複数のWorkerがOSプロセスを共有し得るという仕組みを突いたものでした。
リモートSpectre攻撃がJWTを漏洩させた仕組み
Cloudflare Workersのプラットフォームでは、V8アイソレートを用いて多数のテナントのコードを同一のOSプロセス内で実行しています。各Workerは専用のJavaScriptヒープを持つ仕組みで、これによりCloudflareは起動時間を短く保ちながら、テナントごとに別プロセスを用意するオーバーヘッドを回避しています。Cloudflareは、共有Workerプロセス内での任意読み取りが依然としてテナント間漏洩の経路になり得ることを認めています。
Spectreは、現代のCPUに実装された投機的実行の仕組みを悪用する攻撃です。プロセッサは誤った投機的処理の結果自体は破棄しますが、その痕跡がキャッシュに残ることがあります。攻撃者はその痕跡を測定することで、本来アクセスできないはずのデータを推測できます。
Cloudflareはこれまでにも、Worker内での高解像度ローカルタイマー、共有メモリ、マルチスレッドの使用を制限してきました。研究者らは、この障壁を回避するため、WebSocket通信をリモートのタイミング測定手段として利用しました。
GIGAZINEの報道によれば、この攻撃ではさらにPseudo Least Recently Used(疑似LRU)という手法も用いられ、わずかなキャッシュタイミングの差を、ノイズの多いネットワーク接続越しでも識別できるレベルまで増幅させていました。また、Durable Objectsを利用することで、測定の間、Workerアイソレートを5時間から20時間以上にわたって稼働させ続けることができました。
研究者らは最終的に、意図的に仕込んだJWTを1ビットずつ、最大毎秒12ビット、精度99.16%で復元することに成功しました。The Hacker Newsの報道によると、この速度は2021年の実証実験(1時間あたり約120ビット)と比較して約360倍に達しています。
Cloudflareの検知システムがなぜ見逃したのか
Cloudflareは、DyPrIsと呼ばれる動的プロセス分離システムを運用しており、ハードウェアのパフォーマンスカウンターを監視し、Spectre攻撃に似た挙動を示すスクリプトを別プロセスへ隔離しています。
今回の新たな攻撃には、この防御をすり抜ける2つの特徴がありました。
1つ目は、DyPrIsがこれまで、実行が完了するまで隔離処理を待つ設計になっていた点です。WebSocketのキープアライブメッセージによって、Durable Objectの実行を数時間にわたり継続させることが可能になり、隔離処理が働く前に研究者らが情報の窃取を完了できてしまいました。
2つ目は、大量のWebSocketトラフィックによってiTLBの活動が増加した点です。これによりDyPrIsが利用する分岐予測ミスの正規化シグナルが検知しきい値を下回り、攻撃がI/O負荷の高い通常のWorkerと見分けがつかなくなっていました。
CloudflareがWorkerの分離をさらに強化
Cloudflareは、DyPrIsの改良、V8サンドボックスの統合、ハードウェア支援によるプロセス内分離という、3つの重層的な対策を講じたことを明らかにしました。
V8サンドボックスは、生の64ビットポインタへの露出を減らすもので、今回の研究で使われた特定の投機的実行ガジェットの再利用を難しくします。Cloudflareは、他のガジェットや攻撃の変種が依然として存在し得るため、このサンドボックスがSpectreへの完全な対策にはならないと注意を促しています。
Cloudflareはまた、Memory Protection Keys(MPK)を用いて、Workerのヒープをハードウェアによって強制されるメモリ境界の内側に置いています。誤ったキーで保護されたメモリへのアクセスはCPUレベルで拒否されるため、今回研究者らが実証したような単純なアイソレート間の読み取りを阻止できます。CloudflareはMPKによって漏洩の余地は縮小するものの、Spectreのリスクを完全になくすものではないとしています。
DyPrIsは現在、長時間実行されるワークロードやI/O負荷の高いワークロードをセキュリティ案件として扱うようになっており、Cloudflareは、タイマーに似た通信パターンの反復を検知することがサイドチャネル攻撃の特定にも役立つかどうか、引き続き調査を進めています。
サーバーレスサービスの採用を検討しているセキュリティチームにとって、今回の研究は、ワークロードが技術的にサンドボックス化されているかどうかだけを見て安心してはいけないという教訓になります。マルチテナント環境においては、プロセスの境界、ハードウェアによって強制されるメモリ分離、ランタイムの監視、そしてサイドチャネル対策のすべてが、あるテナントのコードを別のテナントのデータから遠ざけるうえで重要な役割を果たしているのです。
関連記事:新たに公表され実際に悪用されている脆弱性を追うセキュリティチーム向けに、Microsoftの8月のPatch Tuesdayでも、既に攻撃に悪用されているWindowsのゼロデイ脆弱性を含む400件超の脆弱性への修正が公開されました。
KJ
Kezia Jungco
Kezia Jungcoは、人工知能、データ分析、CRMソフトウェア、クラウドインフラ、サイバーセキュリティ、そして新興のビジネステクノロジーを専門とするテクノロジーライター兼リサーチャーです。ソフトウェアプラットフォームやテクノロジーソリューションの評価において5年以上の経験を持ち、ビジネスリーダーが仕事の未来を形作るツールやトレンドを理解する手助けをしています。
Keziaは、生成AIプラットフォーム、チャットボット、自然言語処理(NLP)ツール、CRMシステム、ビジネスソフトウェアの実地テストと分析において豊富な経験を有しています。彼女の仕事は、複雑なテクノロジーを実践的な知見に落とし込み、組織がテクノロジー導入、業務効率化、デジタルトランスフォーメーションについて的確な判断を下せるよう支援することに重点を置いています。
TechnologyAdvanceのスタッフライターとして、KeziaはAIイノベーション、機械学習のビジネス応用、データ駆動型テクノロジー、クラウドコンピューティング、サイバーセキュリティ、セールステクノロジーを取材しています。ジャーナリズム、リサーチ、教育のバックグラウンドを持つ彼女は、厳密な分析と、企業・一般読者双方にとって分かりやすい明快な報道を組み合わせています。
Keziaは、フィリピン大学ロスバニョス校で開発ジャーナリズムを専攻し、開発コミュニケーションの学士号を取得しています。また、人工知能、データプライバシー、情報セキュリティに関する専門トレーニングも修了しています。彼女の記事はTechnologyAdvice、TechRepublic、eWeek、Datamation、Selling Signalsに掲載されており、急速に進化するテクノロジーの世界を読者が実践的かつ調査に基づいた形で読み解けるよう手助けしています。
翻訳元: https://www.esecurityplanet.com/cloud-security/news-cloudflare-workers-remote-spectre-jwt-leak/