WAF攻撃スコアについて

WAF Attack Scoreは、リクエストの挙動とペイロードの特性を分析することで、既知の攻撃のバリエーションを検出するのに役立ちます。 この機能は、既存のルール・シグネチャに正確に一致しない悪意のあるトラフィックを識別することで、 WAFの管理ルールを 補完する。

WAFの管理対象ルールは、継続的に更新されるルールセットを使用して、誤検知率を抑えながら、よく知られた攻撃パターンを検出します。 これらのルールは、確立された攻撃ベクトルには有効だが、ファジング技術によって生成されたような、修正された攻撃や難読化された攻撃を検出するために最適化されていない。

WAF Attack Scoreは、機械学習モデルを使用して各リクエストを評価し、リクエストが悪意を持っている可能性に基づいて1~99の攻撃スコアを割り当てることで、このギャップに対処します。 ボット 管理と同様に、このスコアを使用して、管理ルールを直接トリガーしない不審なトラフィックを特定し、対処することができます。

最大限の保護を実現するために、 CIS は、既知の攻撃とそのバリエーションの両方を検出するために、WAF 管理ルールと WAF 攻撃スコアを併用することを推奨しています。

利用可能なスコア

CIS WAF は以下の攻撃スコアフィールドを提供する:

利用可能なWAFスコア
フィールド タイプ 説明 必須プラン
WAF攻撃スコア
cf.waf.score
数値 1~99のグローバルスコアで、各WAF攻撃ベクトルのスコアを1つのスコアにまとめる。 Enterprise
WAF SQLi攻撃スコア
cf.waf.score.sqli
数値 SQLインジェクション(SQLi) 攻撃ベクトルを1~99のスコアで分類。 Enterprise
WAF XSS攻撃スコア
cf.waf.score.xss
数値 クロスサイトスクリプティング(XSS) 攻撃ベクトルを1~99のスコアで分類。 Enterprise
WAF RCE 攻撃スコア
cf.waf.score.rce
数値 コマンドインジェクションまたは リモートコード実行(RCE) 攻撃ベクトルを1~99のスコアで分類。 Enterprise
WAF攻撃スコアクラス
cf.waf.score.class
ストリング WAF攻撃スコアに基づく、現在のリクエストの攻撃スコアクラス。 可能な値: attack likely_attacklikely_cleanclean すべてのプラン

これらのフィールドは、 カスタムルールや レート制限ルールの 式で使用できます。 WAF Attack Score フィールドは、 Number データ型を使用し、 1 から 99 までの範囲で、以下の意味を持つ:

  • スコアが1であれば、そのリクエストは悪意がある可能性が非常に高い。
  • スコア99は、そのリクエストがクリーンである可能性が高いことを示す。

特別なスコア 100 は、リクエストがWAF攻撃スコア分類システムに到達したが、システムがスコアを割り当てなかったことを示します。

Logpushでは0 というスコアも表示されるかもしれない。 この値は、リクエストが攻撃スコアを計算する段階に達していないことを意味する。 例えば、別のルールや保護メカニズムがすでにその要求を緩和しているかもしれない。 CIS コンソールに値 0 が表示されない。

グローバルなWAF攻撃スコアは、SQLインジェクション(SQLi)やクロスサイトスクリプティング(XSS)のスコアなど、個々の攻撃ベクトルのスコアから加重システムを用いて数学的に導き出されます。 これらのスコアは相互に依存しており、グローバル・スコアは個々の値を単純に合計したものではない。 グローバルスコアが低いほど、そのリクエストは悪意がある可能性が高く、スコアが高いほど、そのリクエストはクリーンである可能性が高いことを示す。

WAF攻撃スコアクラス]フィールドは、計算されたリクエスト攻撃スコアに応じて、 以下の値のいずれかを持つことができます:

WAF攻撃スコアクラス
コンソールラベル フィールド値 説明
対抗策 attack 120 の間の攻撃スコア。
攻撃の可能性 likely_attack 2150 の間の攻撃スコア。
クリーンである可能性が高い likely_clean 5180 の間の攻撃スコア。
クリーン clean 8199 の間の攻撃スコア。

特別な攻撃スコアが 100 のリクエストは、 Unscored のWAF攻撃スコアクラス値で CIS コンソールに表示される。 このクラス値をルール式で使用することはできない。

WAF Attack Scoreは、 Base64、 JavaScript (Unicodeエスケープシーケンス)、および URL-エンコードされたコンテンツを自動的に検出し、デコードします。 このデコードは、 URL、ヘッダー、リクエストボディ を含む、リクエストのすべての部分に適用される。

規則に関する推奨事項

50 未満の WAF 攻撃スコア値のみに基づいてトラフィックをブロックすることは避けてください。 攻撃の可能性が高い範囲(21-50 )のスコアは、偽陽性を含む可能性があり、多くの場合、追加のフィルタリング基準が必要です。

攻撃スコアに基づいてトラフィックをブロックする場合は、次のいずれかの方法を使用します:

  • より厳密なWAFアタックスコア値を式に使用する。 例えば、WAF攻撃スコアが 20 または 15 (正確な閾値を調整する必要があるかもしれません)未満のトラフィックをブロックします。
  • WAF攻撃スコアに基づいて受信トラフィックをブロックする場合は、高いWAF攻撃スコアのしきい値と追加のフィルタを組み合わせてください。 例えば、特定のURIパスのチェックを式に含めたり、ボットスコアを基準の一部として使用する。

WAF攻撃スコアの使用

カスタムルールにWAF攻撃スコアを設定するには、以下の手順に従ってください:

  1. カスタム・ルールを作成するには、以下のいずれかを選択する:

    • Enterprise プランをお客様場合は、WAF 攻撃スコアが 20 以下のリクエストをブロックする カスタムルールを作成してください。 この値は、推奨される開始しきい値である。

      • 同等のルール表現: cf.waf.score le 20
      • アクションブロック
    • スタンダードプランのお客様、 WAF Attack Score Class フィールドを使用してカスタムルールを作成してください。 例えば、スコアクラスが Attack のリクエストをブロックする。

      • 同等のルール表現: cf.waf.score.class eq "attack"
      • アクションブロック
  2. 最初の数日間は、規則を注意深く監視すること。 選択したしきい値またはクラス値が、トラフィックパターンと一致していることを確認します。 誤検出や脅威の見逃しがあれば、ルールを調整する。

  3. ルールアクションを更新する。 Enterpriseプランのお客様、 Log アクションでルールを作成した場合、ルールのアクションを Managed Challengeや Blockなど、より強力なアクションに変更してください。

WAF攻撃スコアとボットスコアは、異なるタイプのリスクを測定する。 WAF Attack Scoreは、WAF Managed Rulesが検出できない可能性のあるバリエーションを含め、既知の攻撃パターンに類似したリクエストを識別します。 ボットスコアは、自動化されたトラフィックを識別し、リクエストがボットから発信されている可能性を評価します。 WAF攻撃スコアを使用して、悪意のあるペイロードと攻撃動作を検出します。 自動化されたトラフィックを特定し管理するには、Bot Scoreを使用します。