← Документация WAF / detections
Обнаружение утечек учётных данных
Скомпрометированные учётные данные обнаружение трафика проверяет входящие запросы на наличие учётных данных (имён пользователей и паролей), ранее утёкших из утечки данных ↗.
Как это работает
Когда вы включаете обнаружение утёкших учётных данных, Cloudflare сканирует входящие HTTP-запросы на наличие имён пользователей и паролей. Проверка сопоставляет шаблоны аутентификации из распространённые веб-приложения и любой пользовательские места обнаружения которое вы настраиваете.
Обнаруженные учётные данные сравниваются с базой данных известных утекших учётных данных. Эта база данных включает:
- Have I Been Pwned (HIBP) ↗ набор данных совпавших паролей (только пароли)
- Учётные данные, собранные Cloudflare (имена пользователей)
- Пары утёкших учётных данных (имя пользователя и пароль)
На основе полученных результатов Cloudflare заполняет поля утёкших учётных данных для просканированных запросов. Эти поля можно использовать двумя способами:
- Анализ трафика: Просмотрите результаты обнаружения в Security Analytics панели управления, чтобы узнать, как часто в вашем трафике встречаются утекшие учётные данные.
- Создание правил: Используйте поля в пользовательские правила или правила ограничения частоты запросов чтобы запрашивать проверку или блокировать запросы, содержащие скомпрометированные учётные данные.
Утёкшие учётные данные могут появляться в вашем трафике по разным причинам. Злоумышленник может выполнять подстановка учётных данных ↗ атака, либо легитимный пользователь повторно использует ранее скомпрометированный пароль.
Уведомите свой исходный сервер
Обнаружение утёкших учётных данных предоставляет управляемое преобразование который добавляет Exposed-Credential-Check заголовок запроса к совпадающим запросам. Значение заголовка указывает, что именно было раскрыто, например 1 если имя пользователя и пароль оказались скомпрометированной парой, 2 если было скомпрометировано имя пользователя, или 4 если был скомпрометирован только пароль.
Этот заголовок можно использовать на исходном сервере, чтобы предупредить пользователей и предложить им сбросить пароль.
Доступность
Сведения о доступных функциях по тарифным планам см. в Доступность на странице обнаружений трафика.
Места сканирования по умолчанию
Обнаружение утёкших учётных данных включает правила для выявления учётных данных в HTTP-запросах для следующих известных веб-приложений:
- Drupal
- Joomla
- Ghost
- Magento
- Plone
- WordPress
- Microsoft Exchange OWA
Кроме того, сканирование включает общие правила для других распространённых паттернов веб-аутентификации.
Также можно настроить пользовательские места обнаружения для конкретного механизма аутентификации, используемого в ваших веб-приложениях. Пользовательское расположение обнаружения указывает Cloudflare WAF, где искать имена пользователей и пароли в HTTP-запросах вашего веб-приложения.
Пользовательские места обнаружения
Сканирование по умолчанию охватывает распространённые веб-приложения, но ваше приложение может отправлять учётные данные в другом формате или с другим именем поля. Custom detection locations позволяют указать Cloudflare, где именно искать имена пользователей и пароли в HTTP-запросах.
Например, если тело JSON HTTP-запроса, выполняющего аутентификацию пользователя, выглядит следующим образом:
{ "user": "<username>", "secret": "<password>" }Пользовательское место обнаружения можно настроить со следующими параметрами:
- Пользовательское место для имени пользователя:
lookup_json_string(http.request.body.raw, "user") - Пользовательское место для пароля:
lookup_json_string(http.request.body.raw, "secret")
При указании пользовательского места обнаружения достаточно указать только расположение поля имени пользователя.
Следующая таблица содержит примеры мест обнаружения для разных типов запросов:
| Тип запроса | Расположение имени пользователя / Расположение пароля |
|---|---|
| JSON body | lookup_json_string(http.request.body.raw, "user")lookup_json_string(http.request.body.raw, "secret") |
| URL-encoded form | url_decode(http.request.body.form["user"][0])url_decode(http.request.body.form["secret"][0]) |
| Multipart form | url_decode(http.request.body.multipart["user"][0])url_decode(http.request.body.multipart["secret"][0]) |
Выражения, используемые для указания пользовательских мест обнаружения, могут включать следующие поля и функции:
- Поля:
- Функции:
Инструкции по настройке пользовательского места обнаружения см. в Начало работы.
Поля утёкших учётных данных
Следующие поля указывают тип совпадения утёкших учётных данных, обнаруженного Cloudflare. Используйте эти поля в пользовательские правила или правила ограничения частоты запросов чтобы применять действие к запросам, содержащим скомпрометированные учётные данные.
| Поле | Описание |
|---|---|
Утечка пароля cf.waf.credential_check.password_leaked Boolean |
Показывает, был ли ранее скомпрометирован пароль, обнаруженный в запросе. Доступно на всех тарифных планах. |
User and Password Leaked cf.waf.credential_check.username_and_password_leaked Boolean |
Показывает, была ли ранее скомпрометирована пара имени пользователя и пароля, обнаруженная в запросе. Требуется тарифный план Pro или выше. |
Username Leaked cf.waf.credential_check.username_leaked Boolean |
Показывает, было ли ранее скомпрометировано имя пользователя, обнаруженное в запросе. Требуется тарифный план Enterprise. |
Утечка похожего пароля cf.waf.credential_check.username_password_similar Boolean |
Показывает, были ли ранее скомпрометированы похожие имя пользователя и пароль, обнаруженные в запросе. Требуется тарифный план Enterprise. |
Обнаружена аутентификация cf.waf.auth_detected Boolean |
Показывает, обнаружил ли Cloudflare учётные данные для аутентификации в запросе. Требуется тарифный план Enterprise. |