Cloudflareは、毎秒3200万件のHTTPリクエストを処理しており、W3Techsで把握しているWebサーバーが提供するWebサイトの22%以上で利用されています。インターネットプロパティの5分の1についてトラフィックを保護するというユニークな立場にあるおかげで、発生した脅威を都度特定し、脅威の進化・変異を追跡することができます。

Webアプリケーションファイアウォール(WAF)は Cloudflare のセキュリティツールボックスの中核であり、マネージドルールはWAFの主要機能です。マネージドルールは、Cloudflareのアナリストチームが作成したルールの集合体で、既知の攻撃パターンを示すリクエストをブロックします。これらのマネージドルールは、偽陰性(攻撃の検出漏れ)と偽陽性(攻撃がないのにあると誤検知)の両方を最小限に抑えるために広範にテストされているため、確立された攻撃ベクトルのパターンに対しては非常によく機能します。しかし、静的な正規表現に基づくルールは、たとえばファジング技術によってもたらされるシグネチャのバリエーションに対して本質的に敏感であるため、マネージドルールはしばしば攻撃のバリエーション(バイパスとしても知られる)を見落とします。

当社はこの問題を、log4j の保護をリリースした際に目撃しました。脆弱性が公表された後の数日間、攻撃者がWAFをバイパスしようとしたため、バリエーションや変異に合わせて常にルールを更新する必要があったのです。しかも、ルールの最適化には多大な人的介入が必要な上、最適化が機能するのはたいていバイパスの特定や悪用が行われた後であるため、保護はプロアクティブ(事前予防的)というよりリアクティブ(事後対処的)なものになります。

本日、悪用される前に人手を介さずバイパスや悪意あるペイロードを識別することを目的とし、マネージドルールセット(OWASPやCloudflare Managedなど)を補完する新ツールを提供できることを嬉しく思います。お客様は、マネージドルールや拡張データで分類したトラフィックの良・悪を覚え込ませた機械学習モデルからのシグナルにアクセスして、新旧の幅広い攻撃に対してより優れた保護を提供することができるようになりました。

新登場の機械学習WAF検出をお試しください

Enterprise、Pro、Bizのお客様向けに、この新しい検出機能への早期アクセスを提供します。試してみたい方は、順番待ちリストに登録してください。長期的には、より上位のお客様にもご利用いただけるようになる予定です。

はじめての自己学習型WAF

新しい検出システムは、既存のマネージドルールセットを補完するもので、主に次の3つの利点があります。

  1. お客様のトラフィックすべてに対して実行されます。各リクエストには、攻撃(たとえばSQLiやXSS)が含まれる可能性に基づいてスコアが与えられます。これによって、これまで無かったWAF分析が可能となり、お客様のトラフィック全体のトレンドやパターンを調べることができます。
  2. 過去のトラフィックとフィードバックにより、検出率が向上します。モデルは、Cloudflareの全トラフィックについてマネージドルールで分類したトラフィックの良・悪を学習します。これにより、小規模なサイトでも、最大規模のインターネットプロパティと同レベルの保護を受けることができます。
  3. パフォーマンスの新しい定義。機械学習エンジンは、人間のリサーチャーが悪用したり特定したりする前に、バイパスや異常を特定します。

その秘訣は、革新的な機械学習モデル、当社が日々ブロックしている攻撃を基に構築した膨大な訓練データセット、データ拡張技術、行動テストの原則に基づく適正な評価とテストの枠組み、各リクエストをごくわずかの遅延で評価できるようにする先端エンジニアリングの組み合わせです。

新しいWAFエクスペリエンス

新しい検出は、ボット分析で開始されたパラダイムに基づくものです。このアプローチでは、アクションを起こすかどうかに関係なく、各リクエストが評価され、スコアが与えられます。すべてのリクエストにスコアを付けるので、ユーザーは自分のサーバーに送られたトラフィック全体のスコアが時間とともにどのように変化するかを視覚化することができます。

お客様は、機械学習による分類エンジンを使って、トラフィックの傾向を把握することができます

さらに、特定の攻撃ベクトル(たとえばSQLi)に関してリクエストのスコアをヒストグラム化し、良性トラフィックを悪性のものと分けるのに妥当なスコアを見極めることができます。

実際の軽減は、そのスコアを基にどのリクエストをブロックすべきかを決定したカスタムWAFルールで行います。これにより、お客様は、Cloudflareが入力する動的フィールド(ボットスコアなど)をはじめ、HTTPリクエストの任意のパラメーターをロジックに含めてルールを作成することができます。

WAF機械学習スコアに基づくファイアウォールルール

当社は現在、このアプローチをマネージドルール(OWASPとCloudflare Managed)にも拡大適用することを検討中です。お客様は、試行錯誤しながらルールを作成するのではなく、トラフィック全体を見た時に表れるパターンを基にトレンドを特定し、ルールを作成することができるようになり、トラフィックをログに記録して検証し、最終的に保護を実施することが可能になります。

その仕組みは?

機械学習ベースの検出は、OWASPやCloudflare Managedといった既存のマネージドルールセットを補完するものです。このシステムは、リサーチャーやエンドユーザーが直接監視することなく、攻撃パターンのバリエーションや異常を特定するために設計されたモデルに基づいています。

本日より、SQLインジェクションとクロスサイトスクリプティングという2つの攻撃ベクトルに対するスコアを公開します。ユーザーは、3つの個別スコアを使用してカスタムWAF/ファイアウォールルールを作成することができます。合計スコア(cf.waf.ml.score)、SQLiのスコアとXSSのスコア(それぞれ cf.waf.ml.score.sqli、cf.waf.ml.score.xss)の3つです。スコアの値は 1 から 99 で、1 は確実に悪意のあるトラフィック、99 は有効なトラフィックとなります。

アプリケーションに到達する全トラフィックのスコアのヒストグラム

モデルは、既存のWAFルールによるトラフィック分類に基づいて訓練されます。元々のリクエストの変形バージョンにも有効で、攻撃のフィンガープリントを簡単に識別できます。

モデルは、各リクエストの各部を別々に評価してスコアを与えますので、たとえば悪意のあるペイロードがリクエストのボディにあっても、URIにあっても、ヘッダーにあっても識別できます。

検出エンジンは脅威が見つかった場所(たとえばボディ、URI、ヘッダー)の内訳を表示

一見簡単そうに見えますが、ここに至るまでには、Cloudflareのエンジニアが解決しなければならない課題がいくつもありました。信頼できるデータセットの構築方法、スケーラブルなデータラベリング、適性なモデルアーキテクチャの選択、Cloudflareのグローバルネットワークが処理するリクエスト(毎秒3200万回)の一つ一つにカテゴリー分類を実行する要件などです。

これからの数週間は、このソリューションの内部動作をより良くご理解いただけるよう、エンジニアリングチームが一連のブログ記事を公表します。

今後について

当社は、今後数か月の間に新しい検出エンジンをお客様にリリースし、そのパフォーマンスに関するフィードバックを収集する予定です。長期的には、検出エンジンを拡張して、既にマネージドルールで識別しているすべての攻撃ベクトルを網羅し、機械学習モデルによってブロックされた攻撃を反映して、マネージドルールセットをさらに改善すること計画です。