INTEGRITY Документация

Обнаружение утёкших учётных данных

Утёкшие учётные данные: обнаружение трафика проверяет входящие запросы на наличие учётных данных (имён пользователей и паролей), ранее утёкших из утечек данных.

Как это работает

Когда вы включаете обнаружение утёкших учётных данных, Cloudflare сканирует входящие HTTP-запросы на имена пользователей и пароли. Сканирование проверяет паттерны аутентификации из распространённые веб-приложения и любые пользовательские расположения обнаружения которые вы настроите.

Обнаруженные учётные данные сравниваются с базой известных утёкших учётных данных. Эта база состоит из:

На основе результатов Cloudflare заполняет поля утёкших учётных данных для просканированных запросов. Эти поля можно использовать двумя способами:

Утёкшие учётные данные могут появляться в вашем трафике по разным причинам. Атакующий может проводить credential stuffing (атака), либо легитимный пользователь может повторно использовать ранее утёкший пароль.

Уведомление вашего сервера-источника

Обнаружение утёкших учётных данных предоставляет управляемое преобразование (managed transform), которое добавляет Exposed-Credential-Check к соответствующим запросам. Значение заголовка указывает, что именно утекло — например, 1 если имя пользователя и пароль составляли утёкшую пару, 2, если утекло имя пользователя, или 4, если утёк только пароль.

Вы можете использовать этот заголовок на исходном сервере, чтобы предупреждать пользователей и предлагать им сбросить пароль.

Доступность

Подробности о функциях, доступных в каждом плане, см. в Доступность на странице обнаружений трафика.

Стандартные расположения сканирования

Обнаружение утёкших учётных данных включает правила выявления учётных данных в HTTP-запросах для следующих известных веб-приложений:

Кроме того, сканирование включает общие правила для других распространённых схем веб-аутентификации.

Вы также можете настроить пользовательские расположения обнаружения чтобы учесть конкретный механизм аутентификации, используемый в ваших веб-приложениях. Пользовательское расположение обнаружения (custom detection location) сообщает Cloudflare WAF, где искать имена пользователей и пароли в HTTP-запросах вашего веб-приложения.

Пользовательские расположения обнаружения

Сканирование по умолчанию охватывает распространённые веб-приложения, но ваше приложение может передавать учётные данные в другом формате или с другими именами полей. Пользовательские расположения обнаружения позволяют указать Cloudflare, где именно искать имена пользователей и пароли в HTTP-запросах.

Например, если JSON-тело HTTP-запроса, аутентифицирующего пользователя, выглядит следующим образом:

{ "user": "<username>", "secret": "<password>" }

Вы могли бы настроить пользовательское расположение обнаружения со следующими настройками:

При указании пользовательского расположения обнаружения обязательно только расположение поля имени пользователя.

В следующей таблице приведены примеры расположений обнаружения для разных типов запросов:

Тип запроса Расположение имени пользователя / Расположение пароля
JSON-тело lookup_json_string(http.request.body.raw, "user")
lookup_json_string(http.request.body.raw, "secret")
Форма в кодировке URL url_decode(http.request.body.form["user"][0])
url_decode(http.request.body.form["secret"][0])
Multipart-форма url_decode(http.request.body.multipart["user"][0])
url_decode(http.request.body.multipart["secret"][0])

Выражения для задания пользовательских расположений обнаружения могут включать следующие поля и функции:

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

Поля утёкших учётных данных

Следующие поля указывают тип совпадения по утёкшим учётным данным, обнаруженного Cloudflare. Используйте эти поля в пользовательские правила или правила rate limiting , чтобы реагировать на запросы со скомпрометированными учётными данными.

Поле Описание
Password Leaked
cf.waf.credential_check.password_leaked
Boolean
Показывает, был ли пароль, обнаруженный в запросе, ранее скомпрометирован.
Доступно на всех тарифных планах.
User and Password Leaked
cf.waf.credential_check.username_and_password_leaked
Boolean
Показывает, была ли обнаруженная в запросе пара «имя пользователя — пароль» ранее скомпрометирована в утечке.
Требуется план Pro или выше.
Имя пользователя в утечках
cf.waf.credential_check.username_leaked
Boolean
Показывает, было ли обнаруженное в запросе имя пользователя ранее скомпрометировано в утечке.
Требуется план Enterprise.
Похожий пароль в утечках
cf.waf.credential_check.username_password_similar
Boolean
Указывает, встречалась ли ранее в утечках похожая версия обнаруженных в запросе имени пользователя и пароля.
Требуется план Enterprise.
Аутентификация обнаружена
cf.waf.auth_detected
Boolean
Указывает, обнаружил ли Cloudflare учётные данные аутентификации в запросе.
Требуется план Enterprise.