Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

WAF 攻撃スコア

最終更新 Markdown で表示Agent セットアップ

攻撃スコアの トラフィック検出 は、機械学習アルゴリズムで各リクエストを分類します。悪意のあるリクエストである可能性に基づき、1 から 99 のスコアを付けます。この検出は WAF Managed Rules を補完します。

Managed Rules は、確立された攻撃手法の具体的なパターンである既知の攻撃シグネチャとリクエストを照合します。誤検知率はとても低いです。ただし攻撃者は、たとえばファジング(改変した入力を送って脆弱性を探すテスト手法)で既知のペイロードを改変し、完全一致を回避できます。

攻撃スコアは、この不足を補います。WAF Managed Rules のどのルールにも完全一致しない、悪意のある可能性があるトラフィックを、スコアで特定できます。

最大限の保護のため、Cloudflare は Managed Rules と攻撃スコアの併用を推奨します。

利用できるスコア

Cloudflare WAF は、次の攻撃スコアフィールドを提供します。

フィールド 説明 必要なプラン
WAF Attack Score
cf.waf.score
Number
各 WAF 攻撃ベクトルのスコアを 1 つのスコアにまとめた、1〜99 の総合スコアです。 Enterprise
WAF SQLi Attack Score
cf.waf.score.sqli
Number
SQL インジェクション(SQLi)攻撃ベクトルを 1〜99 で分類するスコアです。 Enterprise
WAF XSS Attack Score
cf.waf.score.xss
Number
クロスサイトスクリプティング(XSS)攻撃ベクトルを 1〜99 で分類するスコアです。 Enterprise
WAF RCE Attack Score
cf.waf.score.rce
Number
コマンドインジェクションまたは リモートコード実行(RCE)攻撃ベクトルを 1〜99 で分類するスコアです。 Enterprise
WAF Attack Score Class
cf.waf.score.class
String
WAF 攻撃スコアに基づく、現在のリクエストの攻撃スコアクラスです。
取りうる値は attacklikely_attacklikely_cleanclean です。
Business 以上

これらのフィールドは、カスタムルールレート制限ルール の式で使えます。数値スコアの範囲は 1 から 99 です。

  • スコア 1 は、リクエストがほぼ確実に悪意のあるものであることを示します。
  • スコア 99 は、リクエストがクリーンである可能性が高いことを示します。

スコア 100 は、リクエストが WAF 攻撃スコアの仕組みに到達したものの、スコアを付けなかったことを意味します。

Logpush のデータでは、スコア 0 はリクエストが攻撃スコアの段階に到達しなかったことを意味します。たとえば、先行するルールや防御の仕組みがすでに緩和したためです。値 0 は Cloudflare ダッシュボードには表示されません。

総合の WAF Attack Score は、個別の攻撃スコア(SQLi Attack Score や XSS Attack Score など)から数学的に導出され、それらの相互関係を反映します。ただし、総合スコアは個別スコアの合計ではありません。総合スコアが低い場合は、個別スコアも中程度から低めであることが多く、総合スコアが高い場合は個別スコアも高めです。

WAF Attack Score Class フィールドは、算出されたリクエストの攻撃スコアに応じて、次のいずれかの値になります。

ダッシュボードのラベル フィールド値 説明
Attack attack 攻撃スコアが 1 から 20 です。
Likely attack likely_attack 攻撃スコアが 21 から 50 です。
Likely clean likely_clean 攻撃スコアが 51 から 80 です。
Clean clean 攻撃スコアが 81 から 99 です。

特別な攻撃スコア 100 のリクエストは、Cloudflare ダッシュボードでは WAF Attack Score Class が Unscored と表示されます。ただし、このクラス値はルール式では使えません。

攻撃スコアは、リクエストの URL、ヘッダー、本文のどこにあっても、Base64、JavaScript(Unicode エスケープシーケンス)、URL エンコードされた内容を自動で検出してデコードします。

ルールの推奨事項

攻撃スコアが 50 未満のトラフィックを、スコアだけを根拠にすべてブロックすることは推奨しません。Likely attack の範囲(スコア 2150)には、悪意があると誤判定された正当なリクエスト(誤検知)が含まれることがあります。攻撃スコアでブロックする場合は、次のいずれかを行います。

  • 式では、より厳しい WAF Attack Score の値を使います。たとえば、WAF 攻撃スコアが 20 未満、または 15 未満のトラフィックをブロックします(しきい値は調整が必要な場合があります)。

  • 受信トラフィックをブロックするときは、高めの WAF Attack Score しきい値を、追加のフィルターと組み合わせます。たとえば、式に特定の URI パスの条件を入れる、または判定条件の一部にボットスコアを使います。


WAF 攻撃スコアの利用を始める

1. カスタムルールを作成する

Enterprise のお客様は、WAF Attack Score20 以下(推奨する初期しきい値)のリクエストをブロックする カスタムルールを作成 できます。例:

フィールド 演算子
WAF Attack Score less than or equal to 20
  • 同等のルール式: cf.waf.score le 20
  • アクション: Block

Business のお客様は、代わりに WAF Attack Score Class フィールドでカスタムルールを作成します。たとえば、このフィールドを使ってスコアクラスが Attack の受信リクエストをブロックします。

フィールド 演算子
WAF Attack Score Class equals Attack
  • 同等のルール式: cf.waf.score.class eq "attack"
  • アクション: Block

2. ドメインのトラフィックを監視する

作成したルールを監視します。とくに最初の数日は、トラフィックに対してしきい値(またはクラス)が適切かを確認します。必要ならルールを更新します。

3. ルールアクションを更新する

Enterprise のお客様で、アクションが Log のルールを作成した場合は、Managed ChallengeBlock など、より厳しいアクションに変更します。


補足

WAF 攻撃スコアと ボットスコア の目的は異なります。攻撃スコアは、WAF Managed Rules が見逃す攻撃のバリエーションを特定します。ボットスコアは、リクエストが自動トラフィックかどうかを特定します。

役に立ちましたか?