Белый список IP-адресов¶
Белый список — список доверенных IP-адресов, которым вы разрешаете доступ к приложениям вне зависимости от наличия в запросах признаков атак. Белый список имеет наиболее высокий приоритет среди других списков, поэтому при любом режиме фильтрации WAF‑нода не заблокирует запросы с IP-адресов из белого списка.
В Консоли управления Вебмониторэкс → Списки IP → Белый список вы можете управлять IP‑адресами из белого списка:
-
Добавлять отдельные IP‑адреса и подсети
-
Добавлять группы IP‑адресов, зарегистрированные в определенной стране, регионе, дата-центре, узле и т.д.
-
Настраивать время и причину хранения IP‑адреса в списке
-
Удалять IP‑адрес из списка
-
Просматривать историю изменения списка
Примеры использования белого списка¶
-
Для обнаружения уязвимостей в системе, вы можете использовать Сканер уязвимостей Вебмониторэкс. Сканер отправляет на адреса ваших приложений запросы с признаками атак и анализирует ответы приложений. Если IP-адреса Сканера Вебмониторэкс не добавлены в белый список, WAF‑нода будет блокировать запросы Сканера. Для корректной работы Сканера Вебмониторэкс, необходимо добавить IP-адреса Сканера в белый список.
Начиная с WAF‑ноды версии 3.0, Вебмониторэкс добавляет IP-адреса Сканера в белый список автоматически.
-
Если вы используете другие доверенные инструменты, которые могут быть заблокированы WAF‑нодой, необходимо добавить IP-адеса инструментов в белый список вручную.
Добавление IP‑адреса в список¶
Добавление 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‑адрес, подсеть, страна/регион или источник 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 в формате массива.