Серый список IP‑адресов¶
Серый список предназначен для "подозрительных" IP-адресов. В отличие от черного списка, нода блокирует только вредоносные запросы с IP-адресов из серого списка, а легитимные пропускает. Это позволяет снижать ложные срабатывания. Нода проверяет серый список только в режиме мягкой блокировки.
Вредоносными считаются запросы с признаками следующих атак:
Поведение ноды может отличаться, если IP‑адреса дублируются в других списках, подробнее о приоритетах списков.
В Консоли управления Вебмониторэкс → Списки IP → Серый список вы можете управлять IP‑адресами из серого списка:
-
Добавлять отдельные IP‑адреса и подсети
-
Добавлять группы IP‑адресов, зарегистрированные в определенной стране, регионе, дата-центре, узле и т.д.
-
Настраивать время и причину хранения IP‑адреса в списке
-
Удалять IP‑адрес из списка
-
Просматривать историю изменения списка
Примеры использования серого списка IP‑адресов¶
-
Добавлять в серый список IP-адреса, с которых отправлено несколько атак подряд.
Попытка атаки ваших приложений может состоять из нескольких запросов с векторами разных типов, отправленных с одного IP‑адреса. Чтобы заблокировать большую часть вредоносных запросов и разрешить легитимные запросы, вы можете добавить IP‑адрес источника запросов в серый список. Для этого вы можете использовать триггер, который автоматически добавит в серый список IP‑адрес, с которого за определенное время отправлены несколько векторов атак. Время и порог векторов атак настраиваются в триггере.
Использование данного подхода позволяет значительно снизить количество ложных срабатываний на атаки.
-
Добавлять в серый список IP‑адреса, страны, дата-центры, узлы (например: узлы Tor), которые часто являются источниками атак. WAF‑нода будет пропускать легитимные запросы, отправленные с указанных IP‑адресов, и блокировать запросы только с признаками атак.
Добавление IP‑адреса в список¶
Добавлять IP‑адреса в серый список можно автоматически, если с IP поступает подозрительный трафик, и вручную.
Добавление IP‑адреса в список на ноде с мультиарендной опцией
Если в вашей инфраструктуре установлена нода с мультиарендной опцией (партнерская), перед добавлением IP в список необходимо переключиться на аккаунт тенанта, для которого вы добавляете IP‑адрес в список.
Триггеры для автоматического добавления IP в серый список также необходимо настраивать на уровне тенантов.
Автоматическое добавление IP-адресов (рекомендуется)¶
Добавлять IP-адреса в серый список автоматически позволяют триггеры. Они задают условия для добавления IP в список:
-
Генерирует вредоносные запросы типа
Brute force
,Forced browsing
,BOLA
. -
Генерирует вредоносные пэйлоады разных типов с определенной частотой.
-
В новых аккаунтах компаний есть преднастроенный триггер для добавления в серый список IP, которые генерируют 3 и более вредоносных пэйлоадов в течение 1 часа.
На условия, перечисленные выше, в триггерах должна быть задана реакция Добавить IP в серый список
.
Добавление IP-адресов вручную¶
Чтобы добавить IP‑адрес в список вручную:
-
Перейдите в Консоль управления Вебмониторэкс → Списки IP → Серый список и нажмите Добавить объект.
-
В выпадающем списке выберите список, в который хотите добавить объект.
-
Укажите IP‑адрес или группу IP‑адресов, используя один из способов:
-
Введите одиночный IP‑адрес или маску подсети
Поддерживаемые маски подсетей
Максимальная поддерживаемая маска подсети для IPv6 —
/32
, для IPv4 —/12
. -
Выберите страну или регион (геолокацию), чтобы добавить в список все IP‑адреса, которые зарегистрированы в ней
- Выберите тип источника, чтобы добавить в список все IP‑адреса, которые ему принадлежат. Например:
- Tor для IP‑адресов узлов Tor
- Proxy для IP‑адресов публичных или веб-серверов
- Search Engine Spiders для IP‑адресов роботов поисковых систем
- VPN для IP‑адресов сетей VPN
- AWS для IP‑адресов, зарегистрированных в Amazon
-
-
Выберите приложения, к которым вы разрешаете или запрещаете доступ IP‑адресу или группе IP‑адресов.
-
Выберите срок, на который необходимо добавить IP‑адрес или группу IP‑адресов в список. Минимальное значение — 5 минут, максимальное — навсегда.
-
Укажите причину добавления IP‑адреса или группы IP‑адресов в список.
-
Подтвердите добавление IP‑адреса или группы IP‑адресов в список.
Автоматическое добавление вредоносных ботов¶
Модуль Антибот API также автоматически добавляет в черный или серый список IP вредоносных ботов.
В столбце Причина для IP-адресов вредоносных ботов указывается Bot
. Каждый IP сопровождается подробной информацией о боте, включая показатель вероятности. Например:
Анализ добавленных IP‑адресов¶
Для каждого объекта, добавленного в список, в Консоли управления отображаются следующие данные:
-
Объект — IP‑адрес, подсеть, страна/регион или источник IP‑адреса, добавленные в список.
-
Приложения — приложение, к которому настроен доступ для IP‑адреса или группы IP‑адресов.
-
Источник — источник одиночного IP‑адреса или подсети:
- Страна/регион (геолокация), в которой зарегистрирован IP‑адрес или подсеть (если удалось найти данные в таких базах данных, как IP2Location)
- Тип источника, например: Proxy, Tor, облачная платформа и так далее (если удалось найти данные в таких базах, как IP2Location)
-
Причина — причина добавления IP‑адреса или группы IP‑адресов в список. Указывается при добавлении объекта вручную или генерируется автоматически, если объект добавлен в список по триггеру.
-
Дата добавления — дата и время добавления IP‑адреса в список.
-
Удаление — временной период, после которого IP‑адрес удалится из списка.
Фильтрация списка¶
Вы можете отфильтровать список IP‑адресов по параметрам:
-
IP‑адрес или подсеть, введенные в поисковой строке
-
Период, за который необходимо получить состояние списка
-
Страна или регион, в котором зарегистрирован IP‑адрес или подсеть
-
Источник, к которому принадлежит IP‑адрес или подсеть
Изменение времени нахождения IP‑адреса в списке¶
Чтобы изменить время нахождения IP‑адреса в списке:
-
Выберите необходимый IP‑адрес из списка.
-
Откройте меню IP‑адреса и нажмите Изменить время.
-
Выберите новую дату удаления IP‑адреса из списка и подтвердите действие.
Удаление IP‑адреса из списка¶
Чтобы удалить IP‑адрес из списка:
-
Выберите необходимый IP‑адрес из списка.
-
Откройте меню IP‑адреса и нажмите Удалить.
Также вы можете выбрать несколько IP‑адресов и удалить их одновременно.
Повторное добавление удаленного IP‑адреса
После ручного удаления IP‑адреса, который был добавлен в список по триггеру, повторное срабатывание триггера произойдет только по истечении половины предыдущего времени нахождения IP‑адреса в списке.
Пример с серым списком:
- IP‑адрес был автоматически добавлен в серый список на 1 час, так как с этого IP‑адреса было отправлено 4 разных вектора атаки за 1 час (согласно триггеру).
- Пользователь удалил IP‑адрес из серого списка через Консоль управления Вебмониторэкс.
- Если после удаления с IP‑адреса будут отправлены еще 4 разных вектора атаки менее чем за 30 минут, IP‑адрес не добавится в серый список.
Запросы к API на чтение и изменение списков IP¶
Чтобы получить, добавить или удалить объекты из списков IP, вы можете отправить запросы к Вебмониторэкс API напрямую, вместо использования интерфейса Консоли управления. Примеры запросов приведены ниже.
Параметры запросов к API¶
В запросах на чтение и изменение списков IP передаются следующие параметры:
Параметр | Описание |
---|---|
X-WallarmApi-Token | Ключ для получения доступа к API, скопируйте значение из Консоли управления Вебмониторэкс: Настройки → API Токены. |
clientid | ID аккаунта, в котором нужно изменить список IP-адресов / прочитать список. |
ip_rule.list | Тип списка IP-адресов: black (для черного списка), white (для белого списка), gray (для серого списка). |
ip_rule.rule_type | Тип объектов для добавления в список:
|
ip_rule.subnet ( rule_type:"ip_range" ) | IP или подсеть, которую необходимо добавить в список, например: "1.1.1.1" . |
ip_rule.source_values (для других значений rule_type ) | Один из вариантов:
|
ip_rule.pools | Массив ID приложений, к которым необходимо разрешить или запретить доступ для IP, например: [3,4] для приложений с ID 3 и 4, или [0] для всех приложений. |
ip_rule.expired_at | Дата для удаления IP из списка в формате Unix Timestamp. Максимальное значение – 33223139044 (добавить в список навсегда). |
reason | Причина для добавления IP в список. |
force | Если true и объекты уже есть в списке IP, перезапишет существующие объекты. |
Добавление в список IP записей из файла .csv
¶
Чтобы добавить в список IP записи из файла .csv
, используйте следующий bash-скрипт:
#!/bin/bash
TOKEN="<YOUR_TOKEN>"
readarray myarray < ip
for ((a=0; a < ${#myarray[*]}; a++))
do
curl -X POST "https://api.wallarm.ru/v5/ip_rules" -H "X-WallarmApi-Token: $TOKEN" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"ip_rules\": [ { \"expired_at\": 9999999999, \"pools\": [0], \"rule_type\": \"ip_range\", \"subnet\": \"$(echo "${myarray[$a]}")\", \"reason\": \"Причина\", \"additional_info\": {} } ], \"client_id\": id_клиента_без_кавычек, \"list\": \"white\", \"force\": true}"
done
Параметры¶
Параметр | Описание |
---|---|
X-WallarmApi-Token | Ключ для получения доступа к API, скопируйте значение из Консоли управления Вебмониторэкс: Настройки → API Токены. |
expired_at | Дата удаления из списка в формате timestamp. По умолчанию установлено на постоянное прибывание в списке. |
pools | ID приложений. По умолчанию установлено на все приложения. |
reason | Причина для добавления IP в список. |
clientid | ID аккаунта, в котором нужно изменить список IP-адресов / прочитать список. |
list | Тип листа (white, black или gray). По умолчанию установлен white. |
force | Указание необходимости перезаписи существующих адресов. Полезно, если надо изменить дату удаления уже добавленных адресов. По умолчанию установлено true – перезапись. |
Добавление одного IP или подсети в список IP¶
Чтобы добавить определенные IP или подсети в список IP, отправьте следующий запрос отдельно для каждого объекта:
curl 'https://api.wallarm.ru/v4/ip_rules' \
-H "X-WallarmApi-Token: <YOUR_TOKEN> \
-H "accept: application/json" \
-H "Content-Type: application/json" \
-d '{"clientid":<YOUR_CLIENT_ID>,"force":false,"ip_rule":{"list":"<TYPE_OF_IP_LIST>","reason":"<REASON_TO_ADD_ENTRIES_TO_LIST>","pools":[<ARRAY_OF_APP_IDS>],"expired_at":<TIMESTAMP_REMOVE_DATE>,"rule_type":"ip_range","subnet":"<IP_OR_SUBNET>"}}'
Добавление нескольких стран в список IP¶
curl 'https://api.wallarm.ru/v4/ip_rules' \
-H "X-WallarmApi-Token: <YOUR_TOKEN> \
-H "accept: application/json" \
-H "Content-Type: application/json" \
-d '{"clientid":<YOUR_CLIENT_ID>,"ip_rule":{"list":"<TYPE_OF_IP_LIST>","rule_type":"country","source_values":[<ARRAY_OF_COUNTRIES_REGIONS>],"pools":[<ARRAY_OF_APP_IDS>],"expired_at":"<TIMESTAMP_REMOVE_DATE>","reason":"<REASON_TO_ADD_ENTRIES_TO_LIST>"},"force":false}'
Добавление нескольких прокси-сервисов в список IP¶
curl 'https://api.wallarm.ru/v4/ip_rules' \
-H "X-WallarmApi-Token: <YOUR_TOKEN> \
-H "accept: application/json" \
-H "Content-Type: application/json" \
-d '{"clientid":<YOUR_CLIENT_ID>,"ip_rule":{"list":"<TYPE_OF_IP_LIST>","rule_type":"proxy_type","source_values":[<ARRAY_OF_PROXY_SERVICES>],"pools":[<ARRAY_OF_APP_IDS>],"expired_at":"<TIMESTAMP_REMOVE_DATE>","reason":"<REASON_TO_ADD_ENTRIES_TO_LIST>"},"force":false}'
Удаление объекта из списка IP¶
Объекты удаляются из списков IP по ID.
Чтобы получить ID объекта, запросите все объекты списка и скопируйте objects.id
объекта из ответа:
curl 'https://api.wallarm.ru/v4/ip_rules?filter%5Bclientid%5D=<YOUR_CLIENT_ID>&filter%5Blist%5D=<TYPE_OF_IP_LIST>&offset=0&limit=50' \
-H "X-WallarmApi-Token: <YOUR_TOKEN> '
Отправьте запрос на удаление объекта по ID:
curl 'https://api.wallarm.ru/v4/ip_rules' \
-X 'DELETE' \
-H "X-WallarmApi-Token: <YOUR_TOKEN>'
-H 'accept: application/json' \
-H 'content-type: application/json' \
-d '{"filter":{"clientid":<YOUR_CLIENT_ID>,"id":[<OBJECT_ID_TO_DELETE>]}}'
Вы можете удалить несколько объектов одновременно, передав их ID в формате массива.