始める
- Cloudflareダッシュボード ↗にログインし、アカウントとドメインを選択します。
- セキュリティ > 設定に移動します。
- 受信トラフィック検出の下で、悪意のあるアップロードをオンにします。
次のようなPOSTリクエストを使用して機能を有効にします:
curl --request POST \"https://api.cloudflare.com/client/v4/zones/{zone_id}/content-upload-scan/enable" \--header "X-Auth-Email: <EMAIL>" \--header "X-Auth-Key: <API_KEY>"セキュリティ分析とHTTPログを使用して、悪意のあるコンテンツオブジェクトが正しく検出されていることを確認します。
EICARアンチマルウェアテストファイル ↗を使用してコンテンツスキャンをテストできます(ZIP形式を選択)。
または、次のステップで説明するように、_Log_アクションを使用してWAFカスタムルールを作成します。これにより、構成を検証するためのセキュリティイベント(セキュリティ > イベントで利用可能)が生成されます。
アプリケーションにアップロードされた悪意のあるコンテンツオブジェクトをブロックするWAF カスタムルールを作成します。
例えば、_Block_アクションと次の式を持つカスタムルールを作成します:
| フィールド | 演算子 | 値 |
|---|---|---|
| 悪意のあるコンテンツオブジェクトがある | equals | True |
Expression Editorを使用する場合、次の式を入力します:
(cf.waf.content_scan.has_malicious_obj)このルールは、WAFが疑わしいまたは悪意のあるコンテンツオブジェクトを検出したリクエストに一致します。WAFコンテンツスキャンによって提供されるフィールドのリストについては、コンテンツスキャンフィールドを参照してください。
オプション: 他のルール言語フィールドと組み合わせる
前の式を他のフィールドや関数と組み合わせることができます。これにより、ルールのスコープをカスタマイズしたり、コンテンツスキャンを他のセキュリティ機能と組み合わせたりできます。例えば:
-
次の式は、特定のエンドポイントにアップロードされた悪意のあるコンテンツオブジェクトを持つリクエストに一致します:
フィールド 演算子 値 論理 悪意のあるコンテンツオブジェクトがある equals True And URIパス contains upload.phpエディタを使用する場合の式:
(cf.waf.content_scan.has_malicious_obj and http.request.uri.path contains "upload.php") -
次の式は、コンテンツオブジェクトをアップロードするボットからのリクエストに一致します:
フィールド 演算子 値 論理 コンテンツオブジェクトがある equals True And ボットスコア less than 10エディタを使用する場合の式:
(cf.waf.content_scan.has_obj and cf.bot_management.score lt 10)
追加の例については、例ルールを参照してください。
デフォルトの設定ではカバーされていない方法でアップロードされたコンテンツをチェックするには、カスタムスキャン式を追加します。
-
Cloudflareダッシュボード ↗にログインし、アカウントとドメインを選択します。
-
セキュリティ > 設定に移動します。
-
受信トラフィック検出の下で、悪意のあるアップロードを選択します。
-
コンテンツオブジェクトの場所を追加を選択します。
-
コンテンツの場所にカスタムスキャン式を入力します。例えば:
lookup_json_string(http.request.body.raw, "file") -
保存を選択します。
次のようなPOSTリクエストを使用します:
curl "https://api.cloudflare.com/client/v4/zones/{zone_id}/content-upload-scan/payloads" \--header "X-Auth-Email: <EMAIL>" \--header "X-Auth-Key: <API_KEY>" \--header "Content-Type: application/json" \--data '[ { "payload": "lookup_json_string(http.request.body.raw, \"file\")" }]'上記のリクエストは、現在のカスタムスキャン式のリストに次の式を追加します:
lookup_json_string(http.request.body.raw, "file")カスタムスキャン式は、次のJSON文字列に見つかったHTTPボディ内の任意の文字列をスキャンします:
{ "file": "<BASE64_ENCODED_STRING>" }