Cloudflareは、試行のたびに攻撃リクエストを変更できる高度なAIモデルを使い、固定されたテストセットだけに依存せず、自社のWebアプリケーションファイアウォール(WAF)をテストした。同社は事前の承認を得たうえで、顧客専用のステージング環境で実験を実施し、45のシナリオで1,107件の試行を記録した。
基本的な考え方は、異なるエンコードを試したり、HTTPリクエスト内の別の位置へペイロードを移したり、宛先の表現方法を変更したりできる攻撃者の行動の一部をシミュレートし、その応答を使って次の試行を選択することだった。モデルには、アプリケーションのソースコード、内部WAFルール、ルール番号は与えられず、リクエストのコンテキストと、指定されたHTTPレスポンスデータだけを扱わせた。
適応型テストはどのように機能したのか?
各シナリオは、WAFがブロックすることが既知のリクエストから開始し、その後モデルが新たな変更を提案した。リクエストの送信後、別のモデルまたはモデルによるレビューステップが応答を確認し、システムは試行回数の上限内で次のステップを決定した。コードがリクエストの実行と証拠の記録を担当し、各試行の前に許可リストを使ってドメイン名を検証するとともに、リダイレクトを停止し、保護ルールの変更や公開をシステムが行えないようにした。
44のシナリオは、クロスサイトスクリプティング(XSS)、SQLインジェクション、コマンドインジェクション、サーバーサイドリクエストフォージェリ(SSRF)、パストラバーサルまたはローカルファイルインクルージョン(LFI)、Log4j攻撃の6カテゴリーを対象とした。45番目のシナリオでは、ログインジェクションを個別に扱った。
1,107件の試行から調査可能な49件の結果へ
WAFの全体的な性能は高く、XSS、LFI、SQLi、Log4jのカテゴリーではほぼ完全なカバレッジを達成した。人手によるレビュー後、調査に値する結果は49件残り、そのうち48件はコマンドインジェクションとSSRFの2カテゴリーに属していた。ブロックされたリクエストは558件で、その他の試行は、無効、無害、重複、または対象に到達していないという理由で除外された。
Cloudflareは、ブロックされなかったリクエストを確定した脆弱性とは見なさなかった。同社は、そのリクエストが有効で対象に到達し、明確に悪意のある状態を維持し、挙動がWAFに起因し、エンジニアが安全に再現できることを条件とした。この区別は重要である。WAFの回避だけでは、アプリケーションの悪用に成功したことや、機密データにアクセスしたことは証明できないからだ。
SSRF検知におけるギャップの例
あるシナリオで、システムはクラウドのメタデータサービスのアドレスの記述方法を変更し、異なる数値表現を使うとともに、リクエストの複数の部分にアドレスを配置した。試行の大半はブロックされたが、末尾のドットを使った表現の試行の一つで、WAFによるブロックではなくリダイレクトが発生した。Cloudflareはこれを、認証情報へのアクセスや悪用の成功を示す証拠ではなく、調査に値する兆候と見なした。
実際には何が変わったのか?
Cloudflareは結果をレビューし、新たなルールが必要なのか、リクエストの正規化を改善すべきなのか、別のセキュリティ層による対応が必要なのかを判断した。結果はManaged Rulesetにおける3つの変更につながった。7月21日版で「SSRF - Obfuscated Host」と「SSRF - Restricted Protocol」の検知を追加し、「SSRF - Cloud」の検知を改善した。難読化されたホストの検知は、内部アドレスに対して通常とは異なる数値形式を使ったリクエストから直接導かれた。
この実験は、ここでのAIがテスト範囲を拡大するためのツールであり、エンジニアリング上の判断の代替ではないことを示している。同じファミリーに属する2つのモデルは異なるバリエーションを生成したが、基本的な問題はどちらにも現れた。また、1つのシナリオ内で試行回数を増やしても、追加の結果が必ず見つかるとは限らなかった。一部の試行系列ではアイデアの重複が始まった一方、開始地点、攻撃カテゴリー、入力位置を増やすことで、より広いカバレッジが得られた。
WAFの限界も残る。ファイアウォールを回避したペイロードは、アプリケーション自体が悪用可能な場合にのみ成功するため、ソフトウェアの更新と脆弱性の修正は引き続き必要である。Cloudflareは、まずルールをログ記録モードで有効化し、一致したリクエストとセキュリティイベントをレビューしたうえで、正当なトラフィックに影響がないことを確認してからブロックへ移行することを推奨している。同社は今後、モデルがアプリケーションの脆弱性とWAFルールの両方を把握するホワイトボックステストを実施する計画だ。