Системный журнал — практичная база знаний по VPS и Linux
security • 10 минут

Cloudforce One в Cloudflare WAF: как превращать threat intelligence в правила блокировки

Для администратора VPS или специалиста по безопасности типичная проблема выглядит одинаково: в отчётах видно подозрительный IP, известно, что он связан с конкретной группой атак или недавно бил по нужной отрасли, но до реальной защиты ещё далеко. Нужно вручную переносить индикаторы в правила, поддерживать списки и постоянно проверять, не устарели ли они.

Cloudflare закрывает этот разрыв между наблюдением и блокировкой: данные Cloudforce One теперь можно использовать напрямую в Cloudflare WAF через поля cf.intel. Это не просто ещё один отчёт в панели управления, а способ строить правила, которые учитывают контекст угроз до того, как запрос дойдёт до приложения или origin-сервера.

Что именно изменилось в Cloudflare WAF

Раньше Threat Events в основном давал аналитикам обзор угроз: какие IP замечены в атаках, какие акторы активны, какие отрасли или страны чаще становятся целями. Теперь часть этих данных доступна WAF-движку как обычные поля для выражений. Это позволяет не копировать IP-адреса вручную, а описывать логику блокировки через признаки: имя атакующей группы, целевую отрасль, страну атакующего, тип набора данных и другие параметры IP-профиля.

Важно, что Cloudflare отделяет обнаружение от действия. Поля threat intelligence заполняются на раннем этапе обработки запроса, а WAF может использовать их в правилах custom rules и rate limiting. Если у вас есть активная подписка Cloudforce One, эти сигналы автоматически появляются в аналитике, а совпадения по ним затем видны в Security Analytics.

На практике это удобно для команд, которые управляют публичными сервисами за Cloudflare. Например, если за прокси стоит VPS с nginx, WAF-правило на уровне Cloudflare снижает нагрузку до nginx, firewall и самого приложения. Это не заменяет базовую защиту origin, но уменьшает количество вредоносных запросов, которые вообще доходят до вашей инфраструктуры.

Какие сигналы доступны через cf.intel

Новые поля описывают не один факт об IP, а набор признаков. Один адрес может одновременно относиться к нескольким угрозам, участвовать в разных типах атак и фигурировать в разных отраслевых сегментах. Поэтому значения представлены как массивы, а для проверки используется any() и wildcard [*].

  • cf.intel.ip.attacker_names — имена известных threat actors или групп, с которыми связан IP.
  • cf.intel.ip.target_industries — отрасли, по которым этот IP ранее наблюдался как цель атакующих.
  • cf.intel.ip.target_countries — страны, на которые были нацелены атаки с участием этого IP.
  • cf.intel.ip.attacker_countries — страны атакующих, связанные с IP.
  • cf.intel.ip.datasets — наборы данных, например категории вроде DDoS, WAF или cybercrime.

Такой подход отличается от простого списка IP. Вместо вопроса «заблокировать ли этот адрес?» вы задаёте более точные условия: «блокировать IP, если он связан с конкретным актором и ранее бил по финансовой отрасли» или «срабатывать только на IP из набора DDoS, нацеленных на конкретную страну».

Примеры выражений для WAF rules

Ниже приведены примеры логики, которую можно использовать в Cloudflare WAF. Они показывают принцип работы с массивами: правило срабатывает, если хотя бы одно значение внутри поля соответствует условию.

any(cf.intel.ip.target_countries[*] == "FR") and
any(cf.intel.ip.datasets[*] == "ddos")

any(cf.intel.ip.target_industries[*] == "Banking & Financial Services") and
any(cf.intel.ip.attacker_names[*] == "BLACKBASTA")

any(cf.intel.ip.attacker_countries[*] == "IR")

Первое выражение подходит для сценария, когда нужно реагировать на IP, связанные с DDoS-активностью и нацеленные на конкретный регион. Второе — более точное: оно связывает известного атакующего с отраслью, которая актуальна для бизнеса. Третье — самый широкий вариант, потому что блокировка только по стране атакующего может затронуть легитимный трафик. Такие правила лучше включать только после проверки аналитики и понимания последствий.

Если вы используете Infrastructure as Code, эти поля доступны как стандартные WAF-поля. Это значит, что выражения можно переносить в Cloudflare API и Terraform, а не собирать правила только через интерфейс. Для крупных проектов это удобно: одно и то же правило можно применять к выбранным доменам или ко всему аккаунту, а изменения хранить в репозитории вместе с остальной инфраструктурой.

Как встроить Threat Events в рабочий процесс

Самый безопасный путь — не начинать с массовой блокировки, а выстроить процесс проверки. В Threat Events можно искать индикаторы, смотреть активность акторов, фильтровать данные по отраслям, странам и периодам наблюдения. Для повторяющихся задач удобно использовать Saved Views: например, сохранить представление для IP, которые за последние семь дней атаковали финансовый сектор.

После этого Saved View можно превратить в WAF-правило без ручного переноса списков IP. Это снижает риск ошибок: вы работаете не с копией таблицы, а с логикой, которая уже соответствует выбранному фильтру. Если правило сработает, совпадение попадёт в Security Analytics, где видно, какое правило было задействовано и какой именно индикатор стал причиной срабатывания.

Для мониторинга это особенно ценно. После включения правила стоит смотреть не только количество блокировок, но и структуру совпадений: какие поля сработали, какие акторы встречаются чаще, нет ли неожиданных отраслей или стран. Такая аналитика помогает быстро разбирать инциденты и корректировать правила, если они оказались слишком широкими.

Почему это не должно заметно замедлять трафик

Главный технический нюанс — скорость. Threat intelligence бесполезна, если проверка каждого запроса добавляет заметную задержку. Cloudflare описывает механизм как always-on detection: данные обогащают запросы в фоне, а WAF обращается к локальным наборам индикаторов в дата-центрах сети.

По заявлению Cloudflare, наборы сжатого threat intelligence распределяются по дата-центрам, а проверка выполняется за O(1), то есть за постоянное время независимо от количества индикаторов. Движок также не останавливается на первом совпадении: он оценивает весь набор сигналов, связанных с IP, за один проход. Это важно для многовекторных атак, где один адрес может одновременно относиться к нескольким категориям.

Для владельца сервиса это означает, что добавление таких правил не должно превращать WAF в узкое место. Но важно помнить: речь идёт о проверке на уровне Cloudflare. Если origin-сервер перегружен, нет мониторинга или приложение само выполняет тяжёлые операции, WAF-правила не решат все проблемы производительности.

Как избежать ложных срабатываний

Threat intelligence повышает качество решений, но не делает их безошибочными. IP-адрес может быть связан с вредоносной активностью в одном контексте, а в другом использоваться легитимными пользователями, провайдерами, хостингами или сервисами мониторинга. Поэтому правила стоит строить по принципу минимально достаточного условия.

  • Не начинайте с широких блокировок по одной стране, если нет явной бизнес-причины.
  • Комбинируйте несколько признаков: актор плюс отрасль, тип набора данных плюс регион, конкретный сегмент трафика плюс временной период.
  • Сначала проверяйте совпадения в Security Analytics, а затем усиливайте действие правила.
  • Разделяйте правила для публичных форм входа, API, административных интерфейсов и обычного контента.
  • После включения блокировки наблюдайте за динамикой срабатываний и жалобами пользователей.

Особенно осторожно стоит относиться к правилам вида «блокировать все IP из страны X». Они могут быть эффективны против части шума, но часто создают бизнес-риск: клиенты, партнёры, подрядчики и системы мониторинга тоже могут приходить из неожиданных регионов.

Где такие правила особенно полезны

Такой подход хорошо подходит для сервисов, которые видят много автоматизированного трафика: API, панели входа, SaaS-продукты, интернет-магазины, финансовые и образовательные проекты. Он полезен командам, у которых нет отдельного SOC, но есть Cloudflare перед инфраструктурой и потребность быстро реагировать на актуальные угрозы.

Также это удобно для администраторов VPS, которые держат nginx за Cloudflare и хотят уменьшить количество мусорного трафика до уровня сервера. WAF-блокировка на границе сети снижает нагрузку на процессор, память, диски и канал, а также уменьшает шум в логах nginx и application logs.

Но это не замена базовой безопасности. Локальный firewall, обновления системы, корректные права, резервные копии, мониторинг доступности и анализ логов всё равно нужны. Threat intelligence в WAF — это дополнительный фильтр, который помогает быстрее отсекать уже известные опасные источники.

Ограничения и что учитывать

Функция доступна клиентам с активной подпиской Cloudforce One. В линейке Cloudforce One Essentials доступны базовые наборы данных Threat Events, поиск индикаторов и threat-hunting. Cloudforce One Advantage добавляет доступ к пользовательским инсайтам аналитиков через запросы на информацию. Cloudforce One Elite включает более полный набор возможностей, включая brand protection, большее количество запросов на информацию и доступ ко всем наборам данных Threat Events.

На момент описанного релиза основная работа идёт с IP-based matching. Cloudflare отдельно упоминает планы по расширению возможностей на JA3 fingerprints и domain-based matching, но это не следует воспринимать как уже доступную функцию в рамках текущей реализации.

Ещё одно ограничение — сама природа threat intelligence. Она показывает известные и наблюдаемые связи, но не гарантирует, что каждый новый вредоносный IP уже попадёт в наборы данных. Поэтому правила на основе Cloudforce One стоит использовать вместе с другими механизмами: managed WAF rules, rate limiting, поведенческими правилами, проверкой авторизации, captcha там, где это уместно, и мониторингом аномалий.

Короткий чек-лист внедрения

  1. Проверьте, есть ли у аккаунта активная подписка Cloudforce One.
  2. Откройте Threat Events и найдите актуальные индикаторы для вашего бизнеса, отрасли или региона.
  3. Создайте Saved View для повторяющегося фильтра, например по типу атаки, актору или целевой отрасли.
  4. Сначала изучите совпадения в Security Analytics и оцените риск ложных срабатываний.
  5. Создайте WAF custom rule через интерфейс, API или Terraform, используя поля cf.intel.
  6. После включения правила регулярно проверяйте Security Analytics и корректируйте условия.
  7. Не забывайте про локальный мониторинг origin-сервера, nginx, firewall и системных событий.

Главная ценность новой интеграции — в сокращении пути от разведданных к защите. Вместо ручного переноса IP из отчётов в блокировки можно строить правила на основе контекста угроз: кто атакует, кого атакует, из каких наборов данных известен адрес и какие признаки совпадают в конкретном запросе. Для команды безопасности это ускоряет реакцию, а для администратора инфраструктуры — снижает шум и нагрузку до того, как трафик достигнет сервера.