Документация Запланировать пилот

Начало работы

1. Включите обнаружение

  1. В панели управления Cloudflare перейдите в раздел Security Настройки страницу.

    Перейдите в Настройки ↗
  2. (Необязательно) Отфильтруйте по Инструменты обнаружения.

  3. Включите Обнаружение вредоносных загрузок.

Используйте POST запрос, подобный следующему:

Необходимые разрешения API-токена

Хотя бы одно из следующих права доступа токена требуется:
  • Zone WAF Write
  • Account WAF Write
Включите Content Scanning для зоны.
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
}

2. Проверьте поведение сканирования содержимого

Используйте Security Analytics и HTTP-логи, чтобы убедиться, что вредоносные объекты содержимого обнаруживаются корректно.

Вы можете использовать Тестовый файл EICAR для защиты от вредоносного ПО ↗ чтобы протестировать сканирование содержимого (выберите формат ZIP).

Либо создайте пользовательское правило, как описано в следующем шаге, используя Log действие вместо действия по устранению угроз, такого как Block. Это правило сгенерирует события безопасности который позволит вам проверить вашу конфигурацию.

3. Создайте пользовательское правило

Создание пользовательского правила который блокирует обнаруженные вредоносные объекты содержимого, загруженные в ваше приложение.

Например, создайте пользовательское правило с Block действие и следующее выражение:

Поле Оператор Значение
Наличие вредоносного объекта содержимого равно True

Если вы используете Expression Editor, введите следующее выражение:

(cf.waf.content_scan.has_malicious_obj)

Действие правила: Block

Это правило срабатывает на запросы, в которых Cloudflare обнаруживает подозрительный или вредоносный объект содержимого. Список полей, предоставляемых сканированием содержимого WAF, см. в Поля сканирования содержимого.

Необязательно: комбинируйте с другими полями языка Rules

Предыдущее выражение можно объединить с другими поля и функции языка Rules. Это позволяет настроить область действия правила или объединить content scanning с другими функциями безопасности. Например:

Дополнительные примеры см. в Примеры правил.

4. (Необязательно) Настройте пользовательское выражение сканирования

Чтобы проверять загруженный контент способом, не предусмотренным конфигурацией по умолчанию, добавьте пользовательское выражение сканирования.

  1. В панели управления Cloudflare перейдите в раздел Security Настройки страницу.

    Перейдите в Настройки ↗
  2. (Необязательно) Отфильтруйте по Инструменты обнаружения.

  3. В разделе Обнаружение вредоносных загрузок > Конфигурации, выберите значок редактирования.

  4. Выберите Добавьте место содержимого.

  5. В Расположение содержимого, введите собственное выражение сканирования. Например:

    lookup_json_string(http.request.body.raw, "file")
  6. Выберите Save.

Используйте POST запрос, подобный следующему:

Необходимые разрешения API-токена

Хотя бы одно из следующих права доступа токена требуется:
  • Zone WAF Write
  • Account WAF Write
Создание пользовательских выражений Content Scanning для зоны.
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\")"
}

Подробнее см. в Пользовательские выражения сканирования.

Запросите бесплатный пилот

Запланировать пилот