Перейти к содержанию

Серый список IP‑адресов

Серый список предназначен для "подозрительных" 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‑адрес в список вручную:

  1. Перейдите в Консоль управления Вебмониторэкс → Списки IPСерый список и нажмите Добавить объект.

  2. В выпадающем списке выберите список, в который хотите добавить объект.

  3. Укажите IP‑адрес или группу IP‑адресов, используя один из способов:

    • Введите одиночный IP‑адрес или маску подсети

      Поддерживаемые маски подсетей

      Максимальная поддерживаемая маска подсети для IPv6 — /32, для IPv4 — /12.

    • Выберите страну или регион (геолокацию), чтобы добавить в список все IP‑адреса, которые зарегистрированы в ней

    • Выберите тип источника, чтобы добавить в список все IP‑адреса, которые ему принадлежат. Например:
      • Tor для IP‑адресов узлов Tor
      • Proxy для IP‑адресов публичных или веб-серверов
      • Search Engine Spiders для IP‑адресов роботов поисковых систем
      • VPN для IP‑адресов сетей VPN
      • AWS для IP‑адресов, зарегистрированных в Amazon
  4. Выберите приложения, к которым вы разрешаете или запрещаете доступ IP‑адресу или группе IP‑адресов.

  5. Выберите срок, на который необходимо добавить IP‑адрес или группу IP‑адресов в список. Минимальное значение — 5 минут, максимальное — навсегда.

  6. Укажите причину добавления IP‑адреса или группы IP‑адресов в список.

  7. Подтвердите добавление IP‑адреса или группы IP‑адресов в список.

Добавление IP в список (с приложением)

Автоматическое добавление вредоносных ботов

Модуль Антибот API также автоматически добавляет в черный или серый список IP вредоносных ботов.

В столбце Причина для IP-адресов вредоносных ботов указывается Bot. Каждый IP сопровождается подробной информацией о боте, включая показатель вероятности. Например:

Denylisted bot IPs

Анализ добавленных IP‑адресов

Для каждого объекта, добавленного в список, в Консоли управления отображаются следующие данные:

  • Объект — IP‑адрес, подсеть, страна/регион или источник IP‑адреса, добавленные в список.

  • Приложения — приложение, к которому настроен доступ для IP‑адреса или группы IP‑адресов.

  • Источник — источник одиночного IP‑адреса или подсети:

    • Страна/регион (геолокация), в которой зарегистрирован IP‑адрес или подсеть (если удалось найти данные в таких базах данных, как IP2Location)
    • Тип источника, например: Proxy, Tor, облачная платформа и так далее (если удалось найти данные в таких базах, как IP2Location)
  • Причина — причина добавления IP‑адреса или группы IP‑адресов в список. Указывается при добавлении объекта вручную или генерируется автоматически, если объект добавлен в список по триггеру.

  • Дата добавления — дата и время добавления IP‑адреса в список.

  • Удаление — временной период, после которого IP‑адрес удалится из списка.

Фильтрация списка

Вы можете отфильтровать список IP‑адресов по параметрам:

  • IP‑адрес или подсеть, введенные в поисковой строке

  • Период, за который необходимо получить состояние списка

  • Страна или регион, в котором зарегистрирован IP‑адрес или подсеть

  • Источник, к которому принадлежит IP‑адрес или подсеть

Изменение времени нахождения IP‑адреса в списке

Чтобы изменить время нахождения IP‑адреса в списке:

  1. Выберите необходимый IP‑адрес из списка.

  2. Откройте меню IP‑адреса и нажмите Изменить время.

  3. Выберите новую дату удаления IP‑адреса из списка и подтвердите действие.

Удаление IP‑адреса из списка

Чтобы удалить IP‑адрес из списка:

  1. Выберите необходимый IP‑адрес из списка.

  2. Откройте меню IP‑адреса и нажмите Удалить.

Также вы можете выбрать несколько IP‑адресов и удалить их одновременно.

Повторное добавление удаленного IP‑адреса

После ручного удаления IP‑адреса, который был добавлен в список по триггеру, повторное срабатывание триггера произойдет только по истечении половины предыдущего времени нахождения IP‑адреса в списке.

Пример с серым списком:

  1. IP‑адрес был автоматически добавлен в серый список на 1 час, так как с этого IP‑адреса было отправлено 4 разных вектора атаки за 1 час (согласно триггеру).
  2. Пользователь удалил IP‑адрес из серого списка через Консоль управления Вебмониторэкс.
  3. Если после удаления с 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_range для определенных IP-адресов или подсетей
  • country для стран или регионов
  • proxy_type для прокси-сервисов (VPN, SES, PUB, WEB, TOR)
  • datacenter для других типов источников (rackspace, tencent, plusserver, ovh, oracle, linode, ibm, huawei, hetzner, gce, azure, aws, alibaba)
ip_rule.subnet
(rule_type:"ip_range")
IP или подсеть, которую необходимо добавить в список, например: "1.1.1.1".
ip_rule.source_values
(для других значений rule_type)
Один из вариантов:
  • Если rule_type:"country", массив стран в формате ISO-3166, например: ["AX","AL"].
  • Если rule_type:"proxy_type", массив прокси-сервисов, например: ["VPN","PUB"].
  • Если rule_type:"datacenter", массив других типов источников, например: ["rackspace","huawei"].
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 в формате массива.