← Решения Cloudflare по борьбе с ботами / bots / concepts
Bot Feedback Loop
Bot Feedback Loop позволяет вам сообщать о запросах, которые Bot Management оценено неверно. Когда вы отправляете отчёт о ложноотрицательном или ложноположительном результате, Cloudflare анализирует эти данные и использует их для обучения следующей модели машинного обучения.
Доступность
Bot Feedback Loop доступен клиентам Enterprise с Bot Management. Перейдите Планы, где это описано подробнее.
Ложноположительный результат
Ложное срабатывание может произойти, если Cloudflare присваивает оценку запросу от человека, который использует браузер, мобильное или настольное приложение, в автоматический или вероятно автоматизированный диапазон.
Ложноотрицательный результат
Если Cloudflare не может обнаружить часть автоматизированного трафика на вашем сайте, отправка отчёта о ложноотрицательном результате поможет нам выявлять его в будущем.
Подтипы
| Подтип | Определение |
|---|---|
| Злоупотребление при создании аккаунтов | Автоматизированное создание большого количества новых учётных записей для получения доступа к ресурсам сайта. |
| Мошенничество с рекламой | Мошенническое увеличение количества кликов по рекламе или её показов. |
| Злоупотребление кредитными картами | Многократные попытки проверить множество номеров банковских карт или один и тот же номер карты с разными проверочными данными. |
| Обналичивание | Злоупотребление целевым интернет-приложением для получения ценных товаров. |
| Login Abuse | Попытки получить доступ к защищённой паролем части интернет-приложения путём перебора множества комбинаций имён пользователей и паролей. |
| Inventory Abuse | Автоматизированные злоупотребления, связанные со скупкой ограниченного товарного запаса или с удержанием товара в корзине, чтобы помешать другим совершить покупку. |
| Отказ в обслуживании | Автоматизированные запросы, направленные на исчерпание ресурсов сервера, чтобы нарушить работу интернет-приложения. |
| Ускорение | Автоматизация работы с интернет-приложением для совершения транзакций быстрее, чем это может сделать человек, с целью получить нечестное преимущество. |
| Фаззинг | Поиск ошибок реализации с помощью автоматической инъекции некорректных данных. |
| Скрапинг | Автоматизированное извлечение ценной или конфиденциальной информации из интернет-приложения. |
| Спам | Злоупотребление формами для отправки спама. |
| Token Cracking | Определение действительных кодов токенов, предоставляющих пользователю какую-либо выгоду в приложении. |
| Сканирование уязвимостей | Систематический перебор и анализ известных, предполагаемых и неизвестных расположений контента, путей, имён файлов и параметров для поиска слабых мест и точек, где может существовать уязвимость. |
Отправить отчёт
-
На панели управления Cloudflare перейдите к разделу Security Analytics страницу.
Перейдите в Аналитика ↗ -
Примените один или несколько фильтров.
-
В разделе Активность запросов, фильтровать по Анализ ботов.
-
Выберите Сообщить о неверных данных и заполните форму.
-
Выберите Отправить.
Через API
Создание отчета с обратной связью
curl 'https://api.cloudflare.com/client/v4/zones/{zone_id}/bot_management/feedback' \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>" \
--header "Content-Type: application/json" \
--data '{
"type": "false_positive",
"description": "Legitimate customers having low score",
"expression": "(cf.bot_management.score le 46 and ip.src.asnum eq 132892 and http.host eq \"api-discovery.theburritobot.com\" and cf.bot_management.ja3_hash eq \"3fed133de60c35724739b913924b6c24\")",
"first_request_seen_at": "2022-08-01T00:00:00Z",
"last_request_seen_at": "2022-08-10T00:00:00Z",
"requests": 100,
"requests_by_score": {
"1": 50,
"10": 50
},
"requests_by_score_src": {
"heuristics": 25,
"machine_learning": 75
},
"requests_by_attribute": {
"topIPs": [
{
"metric": "10.75.34.1",
"requests": 100
}
],
"topUserAgents": [
{
"metric": "curl/7.68.0",
"requests": 100
}
]
}
}'Список отчётов обратной связи
curl 'https://api.cloudflare.com/client/v4/zones/{zone_id}/bot_management/feedback' \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>"[
{
"created_at": "2022-08-19T00:05:24.749712Z",
"type": "false_positive",
"description": "Legitimate customers having low score",
"expression": "(cf.bot_management.score le 46 and ip.src.asnum eq 132892 and http.host eq \"api-discovery.theburritobot.com\" and cf.bot_management.ja3_hash eq \"3fed133de60c35724739b913924b6c24\")",
"first_request_seen_at": "2022-08-01T00:00:00Z",
"last_request_seen_at": "2022-08-10T00:00:00Z",
"requests": 100,
"requests_by_score": {
"1": 50,
"10": 50
},
"requests_by_score_src": {
"heuristics": 25,
"machine_learning": 75
},
"requests_by_attribute": {
"topIPs": [
{
"metric": "10.75.34.1",
"requests": 100
}
],
"topUserAgents": [
{
"metric": "curl/7.68.0",
"requests": 100
}
]
}
}
]Поля API
| Поле | Тип | Описание | Пример значения |
|---|---|---|---|
type |
string | Тип отчёта. | false_positive |
description |
string | Описание отчёта с дополнительными сведениями о проблеме. | Легитимные клиенты с низкими показателями. |
expression |
string | Выражение wirefilter, соответствующее запросам, о которых сообщено. | (cf.bot_management.score le 46 and ip.src.asnum eq 132892 and http.host eq "app.example.com" and cf.bot_management.ja3_hash eq "3fed133de60c35724739b913924b6c24") |
first_request_seen_at |
string | Начало временного диапазона, когда был замечен первый запрос, в формате RFC 3339. | 2022-08-01T00:00:00Z |
last_request_seen_at |
string | Окончание временного диапазона, когда был замечен последний запрос, в формате RFC 3339. | 2022-08-10T00:00:00Z |
requests |
целое число | Общее количество запросов, о которых сообщено. | 100 |
requests_by_score |
объект | Разбивка запросов по оценке. | См. пример ниже. |
requests_by_score_src |
объект | Разбивка запросов по источнику оценки. | См. пример ниже. |
requests_by_attribute |
объект | Разбивка запросов по атрибуту (необязательно). | См. пример ниже. |
requests_by_score
{
"1": 50,
"10": 50
}requests_by_score_src
{
"machine_learning": 75,
"heuristics": 25
}requests_by_attribute
{
"topIPs": [
{
"metric": "10.75.34.1"
"requests": 100
}
],
"topUserAgents": [
{
"metric": "curl/7.68.0",
"requests": 100
}
]
}Поля выражений
| Поле | Тип | Описание |
|---|---|---|
cf.bot_management.ja3_hash |
string | Это предоставляет отпечаток SSL/TLS, который помогает выявлять потенциальные запросы от ботов. |
cf.bot_management.score |
целое число | Это вероятность того, что запрос исходит от бота, выраженная оценкой от 1 до 99. |
http.host |
string | Это имя хоста, используемое в полном URI запроса. |
http.request.uri.path |
string | Это URI-путь запроса. |
http.user_agent |
string | Это HTTP user agent, заголовок запроса, содержащий характерную строку, по которой можно определить операционную систему и веб-браузер клиента. |
ip.src.asnum |
целое число | Это 16- или 32-битное целое число, представляющее номер автономной системы (AS), связанный с IP-адресом клиента. |
ip.src.country |
string | Это двухбуквенный код страны в формате ISO 3166-1 Alpha 2. |
ip.src |
string | Исходный адрес IP. |
Рекомендации при отправке отчёта
При отправке отчёта используйте фильтры на панели Bot Analytics, чтобы в отчёт попал только трафик с некорректной оценкой. Помимо фильтрации по оценке (обязательна), вы можете дополнительно отфильтровать данные по user-agent, IP, ASN или JA3: это поможет точнее выделить участок трафика, который был оценён неверно.
Если вы не уверены, что часть трафика получила неверную оценку, оставьте этот трафик в отчёте.
Мы будем признательны за любые комментарии в поле описания: они помогут нашей команде лучше понять эти запросы в контексте типичного трафика вашего домена.
Рекомендации после отправки сообщения о ложноположительном результате
После отправки отчёта о ложноположительном срабатывании вы можете явно разрешить трафик, если уверены, что этот источник трафика не будет использован для злоупотреблений в будущем. Чтобы разрешить трафик, можно создать пользовательское правило WAF с Пропустить остальные настраиваемые правила действие, которое соответствует характеристикам вашего отчёта о ложном срабатывании. Рекомендуем, чтобы любое создаваемое вами правило Skip имело максимально узкую область действия, в том числе ограничивало методы запросов и URI, к которым имеет доступ ожидаемый трафик, чтобы снизить риск злоупотреблений.
- Разрешение отпечаток JA3/JA4: Если нужно разрешить доступ стабильному программному клиенту, у которого нет выделенного IP-адреса, можно найти отпечаток (или отпечатки) JA3 этого клиента на панели Bot Analytics и создать пользовательское правило WAF, разрешающее трафик по этому отпечатку JA3. Отпечатки JA3 совпадают только с TLS-библиотекой клиента, поэтому учитывайте возможные совпадения с другими клиентами и различия, связанные с операционной системой.
Cloudflare не рекомендует полагаться на правила JA3 для мобильных приложений, которые могут быть подвержены злоупотреблениям. Если у вас есть вопросы о том, как безопасно разрешить трафик от вашего мобильного приложения, обратитесь в свою команду по работе с клиентами.
- Разрешение IP-адрес: Разрешайте трафик по IP-адресу только в том случае, если этот IP является выделенным ресурсом, который принадлежит исключительно тому источнику трафика, для которого вы хотите открыть доступ.
Если трафик, который вы хотите разрешить, использует один IP-адрес с другими источниками трафика, или если IP-адрес часто меняется, рассмотрите альтернативу разрешению по IP-адресу.
Рекомендации после отправки сообщения о ложноотрицательном результате
После отправки отчёта о ложноотрицательном срабатывании вы можете явно заблокировать или ограничить по частоте некорректно оценённый трафик, используя сочетание таких характеристик, как IP-адрес, отпечаток JA3, ASN и user-agent. Прежде чем блокировать или ограничивать трафик по отпечатку JA3, используйте Bot Analytics, чтобы убедиться, что этот отпечаток не используется легитимными источниками трафика.