-
Cloudflare ダッシュボードで Security の Settings ページを開きます。
Settings を開く ↗ -
(任意)Detection tools で絞り込みます。
-
Malicious uploads detection をオンにします。
次のような POST リクエストを使います。
Required API token permissions
At least one of the following token permissions is required:Zone WAF WriteAccount WAF Write
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/content-upload-scan/enable" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"ゾーンでコンテンツスキャンを有効にするには、cloudflare_content_scanning リソースを使います。例:
resource "cloudflare_content_scanning" "zone_content_scanning_example" {
zone_id = var.cloudflare_zone_id
enabled = true
}Security Analytics と HTTP ログを使い、悪意のあるコンテンツオブジェクトが正しく検出されていることを検証します。
コンテンツスキャンのテストには、EICAR アンチマルウェアテストファイル ↗ を使えます(ZIP 形式を選びます)。
または、次の手順で説明するカスタムルールを、Block などの緩和アクションではなく Log アクションで作成します。このルールは セキュリティイベント を生成するので、設定を検証できます。
アプリケーションへアップロードされた、検出済みの悪意のあるコンテンツオブジェクトをブロックする カスタムルールを作成 します。
たとえば、Block アクションと次の式でカスタムルールを作成します。
| フィールド | 演算子 | 値 |
|---|---|---|
| Has malicious content object | 等しい | True |
Expression Editor を使う場合は、次の式を入力します。
(cf.waf.content_scan.has_malicious_obj)ルールアクション: Block
このルールは、Cloudflare が疑わしい、または悪意のあるコンテンツオブジェクトを検出したリクエストに一致します。WAF コンテンツスキャンが提供するフィールドの一覧は、コンテンツスキャンのフィールド を参照してください。
任意: 他の Rules 言語フィールドと組み合わせる
前の式を、Rules 言語の他の フィールド や 関数 と組み合わせられます。ルールの適用範囲を調整したり、コンテンツスキャンを他のセキュリティ機能と組み合わせたりできます。たとえば次のとおりです。
-
次の式は、特定のエンドポイントへアップロードされた悪意のあるコンテンツオブジェクトを持つリクエストに一致します。
フィールド 演算子 値 論理 Has malicious content object 等しい True かつ URI Path 含む upload.phpエディターを使う場合の式:
(cf.waf.content_scan.has_malicious_obj and http.request.uri.path contains "upload.php") -
次の式は、ボットがコンテンツオブジェクトをアップロードするリクエストに一致します。
フィールド 演算子 値 論理 Has content object 等しい True かつ Bot Score より小さい 10エディターを使う場合の式:
(cf.waf.content_scan.has_obj and cf.bot_management.score lt 10)
追加の例は、ルールの例 を参照してください。
デフォルト設定ではカバーできない方法でアップロード内容を検査するには、カスタムスキャン式 を追加します。
-
Cloudflare ダッシュボードで Security の Settings ページを開きます。
Settings を開く ↗ -
(任意)Detection tools で絞り込みます。
-
Malicious uploads detection > Configurations の下で、編集アイコンを選びます。
-
Add content location を選びます。
-
Content location に、カスタムスキャン式を入力します。例:
lookup_json_string(http.request.body.raw, "file") -
Save を選びます。
次のような POST リクエストを使います。
Required API token permissions
At least one of the following token permissions is required:Zone WAF WriteAccount WAF Write
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/content-upload-scan/payloads" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '[
{
"payload": "lookup_json_string(http.request.body.raw, \"file\")"
}
]'上記のリクエストは、カスタムスキャン式の現在の一覧に次の式を追加します。
lookup_json_string(http.request.body.raw, "file")cloudflare_content_scanning_expression リソースを使って、カスタムスキャン式を追加します。例:
resource "cloudflare_content_scanning_expression" "my_custom_scan_expression" {
zone_id = var.cloudflare_zone_id
payload = "lookup_json_string(http.request.body.raw, \"file\")"
}詳細は、カスタムスキャン式 を参照してください。