← Документация WAF / managed-rules
Проверка скомпрометированных учётных данных
Многие веб-приложения пострадали от credential stuffing (атаки) в недавнем прошлом. В таких атаках выполняется массовое количество попыток входа с парами логин/пароль из баз скомпрометированные учётные данные.
Cloudflare предлагает автоматизированные проверки скомпрометированных учётных данных с помощью Cloudflare Web Application Firewall (WAF).
WAF предоставляет два механизма для этой проверки:
-
Exposed Credentials Check Managed Ruleset, который содержит предопределённые правила для популярных CMS-приложений. Включив этот набор правил для зоны, вы сразу включаете проверки скомпрометированных учётных данных для этих широко известных приложений. Управляемый набор правил доступен на всех платных планах.
-
Возможность писать пользовательские правила на уровне аккаунта, которые проверяют скомпрометированные учётные данные по вашим критериям. Эта возможность настройки доступна клиентам Enterprise с платным дополнением.
Cloudflare регулярно обновляет базы данных скомпрометированных учётных данных, на которых основана функция проверки скомпрометированных учётных данных.
Имя пользователя и пароль в открытом виде никогда не покидают сеть Cloudflare. При определении того, фигурировали ли учётные данные в утечках ранее, WAF использует только анонимизированную версию имени пользователя и пароля. Cloudflare следует подходу на основе k-анонимности, описанное в следующей записи блога: Validating Leaked Passwords with k-Anonymity ↗.
Доступные действия
При обнаружении скомпрометированных учётных данных WAF может выполнить одно из следующих действий:
-
Заголовок Exposed-Credential-Check: добавляет новый HTTP-заголовок к HTTP-запросам со скомпрометированными учётными данными. Ваше приложение на исходном сервере может затем принудительно сбросить пароль, запустить процесс двухфакторной аутентификации или выполнить любое другое действие. Имя добавляемого HTTP-заголовка —
Exposed-Credential-Check, а его значение —1. Имя действия —Rewriteв Security Events. -
Non-Interactive Challenge: предъявляет неинтерактивный челлендж клиентам, выполняющим HTTP-запросы со скомпрометированными учётными данными.
-
Managed Challenge: Помогает сократить время, которое люди тратят на решение CAPTCHA в интернете. В зависимости от характеристик запроса Cloudflare динамически выбирает подходящий тип челленджа по определённым критериям.
-
Block: блокирует HTTP-запросы, содержащие скомпрометированные учётные данные.
-
Log: Доступно только на тарифах Enterprise. Логирует запросы со скомпрометированными учётными данными в логах Cloudflare. Рекомендуется для проверки правила перед переходом к более строгому действию.
-
Interactive Challenge: предъявляет интерактивный челлендж клиентам, выполняющим HTTP-запросы со скомпрометированными учётными данными.
Действие по умолчанию для правил в Exposed Credentials Check Managed Ruleset — Заголовок Exposed-Credential-Check (с именем rewrite в API).
Cloudflare рекомендует использовать только следующие действия: Заголовок Exposed-Credential-Check (с именем rewrite в API) и Log (log).
Проверки скомпрометированных учётных данных в пользовательских правилах
Помимо включения Exposed Credentials Check Managed Ruleset, вы также можете проверять скомпрометированные учётные данные в пользовательские правила. Один из типичных сценариев — создать пользовательские правила на эндпоинтах аутентификации конечных пользователей вашего приложения для проверки скомпрометированных учётных данных. Правила, проверяющие скомпрометированные учётные данные, выполняются раньше правил rate limiting.
Чтобы проверять скомпрометированные учётные данные в пользовательском правиле, включите проверку скомпрометированных учётных данных в определение правила на уровне аккаунта и укажите, как получать значения имени пользователя и пароля из HTTP-запроса. Дополнительную информацию см. в Создание пользовательского правила с проверкой скомпрометированных учётных данных.