powered by TechFeed
表示モード
Google

GoogleのAIエージェント「PageBreak」が自社アプリのXSS脆弱性を500件超自動発見 — 誤検知ほぼゼロで修正まで自動化へ

10月5日、Mayura Kathirが「Google PageBreak AI Agent Finds Over 500 XSS Vulnerabilities Across Its Web Applications」と題した記事を公開した。この記事では、GoogleのAIセキュリティエージェント「PageBreak」が自社Webアプリケーション全体で500件以上のXSS脆弱性を自動発見・検証した取り組みについて詳しく紹介されている。

10月5日、Mayura Kathirが「Google PageBreak AI Agent Finds Over 500 XSS Vulnerabilities Across Its Web Applications」と題した記事を公開した。この記事では、GoogleのAIセキュリティエージェント「PageBreak」が自社Webアプリケーション全体で500件以上のXSS脆弱性を自動発見・検証した取り組みについて詳しく紹介されている。


PageBreakの全体アーキテクチャ

PageBreakはLLMと決定論的なバリデーションレイヤーを組み合わせたAIエージェントだ。大まかな処理フローは次のとおりである。

  1. 探索フェーズ:LLMがアプリケーションの入力経路やコードパスを解析し、潜在的な攻撃パスの候補を列挙する
  2. 検証フェーズ:専用バリデーターが実際に動作しているアプリケーション環境に対してエクスプロイトの再現を試みる
  3. 報告フェーズ:再現に成功した「証明済み脆弱性」のみを開発チームに報告する

候補として列挙されたものの検証で確認できなかったケースは開発チームには届かず、内部で保持されて将来のスキャンのシードや既存バリデーターのカバレッジギャップ特定に活用される。このアーキテクチャ全体が、後述する「誤検知ほぼゼロ」という結果を支えている。

PageBreakはGoogleのモノリポ、ライブHTTPトラフィックから抽出したセキュリティシグナル、認証済みスキャニングインフラといったGoogle固有の資産を活用している点も特徴的だ。モデルは元記事に記載のバージョン名としてGemini 3.1 ProとGemini 3.5 Flashが中心とされている。なお、プロジェクトは2025年11月に社内パイロットとして開始し、2026年1月に正式プロジェクトへ昇格した経緯がある(いずれも元記事に記載の時系列)。


AIがXSSを500件超発見、しかも誤検知ほぼゼロ

LLMを使ったセキュリティツールが増える中、現場のエンジニアが最も不満を抱えてきたのが「誤検知の多さ」だ。モデルはもっともらしい脆弱性レポートを生成できるが、アプリケーションの実行状態やサニタイズ処理、権限チェックの有無を正確に把握できているわけではない。結果として、開発チームが存在しない脆弱性を調査するために時間を浪費するケースが後を絶たない。

PageBreakはこの問題に正面から取り組んでいる。設計の核心は「決定論的な検証(Deterministic Validation)」だ。LLMが攻撃パスの候補を提案したあと、専用のバリデーターが実際に動作しているアプリケーション環境に対してエクスプロイトを再現しようと試みる。成功した証明が得られた場合のみ、確定した脆弱性として報告される。 GoogleはこのモデルによってFalse Positive率がほぼゼロに抑えられたと述べている。

確認されなかった候補は破棄されずに内部で保持され、将来のスキャンのシードや、既存バリデーターのカバレッジギャップ特定に活用される。開発チームには送られない。


検証ロジックの詳細

XSSの検証では、PageBreakがカスタムJavaScriptペイロードを注入し、レンダリングハーネスまたはスキャニングシステム経由でURLを開き、ブラウザコンテキストでペイロードが実行されるかを観察する。

同じ原則は他の脆弱性クラスにも適用される。

  • **SQLインジェクション**:クエリを操作できるか検証
  • パストラバーサル:テストファイルを作成し、読み取りを試みる
  • RCE(リモートコード実行):タイミング遅延、ファイル書き込み、アウトバウンドDNS/HTTPコールバックを使用
  • **SSRF**:アプリケーションが内部サービスへリクエストを送信できるか監視

実際に発見されたチェーン脆弱性の例

Googleは、PageBreakが発見したチェーン型の脆弱性の事例も公開している。

1. apis.google.comのキャッシュポイズニング
URLパスの無制約なセグメントがJavaScriptレスポンスに注入できる状態だったにもかかわらず、キャッシュキーの生成から除外されていた。攻撃者がキャッシュされたJavaScriptファイルを汚染し、影響を受けたキャッシュエントリを受け取ったユーザーに対してスクリプトを実行させられる可能性があった。野外での悪用は確認されていないとGoogleは述べている。

2. admin.google.comのオープンリダイレクト起因のXSS
未検証のredirect_uriパラメータがwindow.locationに到達するエンドポイントで、暗号署名による制御が別の認可フローを呼び出すことで迂回可能だった。PageBreakは、悪意あるjavascript: URIに対して有効な署名が生成できることを発見した。

3. Google Tag Assistant ExtensionのユニバーサルXSS
外部メッセージングの安全でない実装とスクリプトロードの不備により、デバッグ対象ページのコンテキストで任意のJavaScriptが実行できる状態だった。


Googleの高保証フレームワークへの影響

PageBreakはGoogleが開発した「高保証Webフレームワーク」の大規模テストとしても機能した。2026年9月4日時点で、それらのフレームワーク上に構築された数百のアプリケーションからPageBreakが発見したXSSはわずか2件のみで、いずれも内部アプリケーションまたはデバッグエンドポイントに限定されていた。

これらのフレームワークは以下のようなセキュアデフォルトに依存している。

  • コンテキスト対応の自動エスケープ
  • 厳格なCSP(Content Security Policy)
  • Trusted Types
  • セキュアCookieおよびクロスオリジン保護
  • コンパイル時のUnsafe JavaScript/TypeScriptパターン検出

XSSがわずか2件という結果は、フレームワーク側のセキュアデフォルト設計がいかに効果的かを示す数値として注目に値する。


次のステップ:修正まで自動化へ

Googleは現在、PageBreakをCodeMenderと連携させる作業を進めている。CodeMenderとは、発見された脆弱性に対して修正コードの候補を自動生成し、開発者レビューのキューに投入するエージェント的な取り組みだ。PageBreakによる「発見・検証」とCodeMenderによる「修正案生成」を組み合わせることで、「AIが脆弱性を発見・検証し、さらに修正案まで提示する」という一貫したパイプラインの完成を目指している。


詳細はGoogle PageBreak AI Agent Finds Over 500 XSS Vulnerabilities Across Its Web Applicationsを参照していただきたい。