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

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

Черный список — список IP‑адресов, которым вы не разрешаете доступ к приложениям, даже если в запросах нет признаков атак. Нода блокирует запросы с IP-адресов из черного списка в любом режиме фильтрации, если IP‑адреса не дублируются в белом списке.

В Консоли управления Вебмониторэкс → Списки IPЧерный список вы можете управлять заблокированными IP‑адресами:

  • Добавлять отдельные IP‑адреса и подсети

  • Добавлять группы IP‑адресов, зарегистрированные в определенной стране, регионе, дата-центре, узле и т.д.

  • Настраивать время и причину хранения IP‑адреса в списке

  • Удалять IP‑адрес из списка

  • Просматривать историю изменения списка

Черный список IP

Примеры использования черного списка IP‑адресов

  • Добавлять в черный список IP-адреса, с которых отправлено несколько атак подряд.

    Попытка атаки ваших приложений может состоять из нескольких запросов с векторами разных типов, отправленных с одного IP‑адреса. Один из способ блокировки подобных атак — блокировка IP‑адреса источника запросов. Чтобы блокировать IP‑адрес автоматически, вы можете использовать триггер. В триггере настраиваются время блокировки IP‑адреса и порог векторов атак для срабатывания триггера.

  • Блокировка поведенческих атак.

    WAF‑нода может блокировать большую часть вредоносного трафика на основе каждого запроса, в котором определяется вектор атаки. Однако для поведенческих атак, в которых каждый запрос является легитимным (например, попытки авторизоваться с парами имя пользователя и пароль), необходимо блокировать источник.

    По умолчанию автоматическая блокировка источника поведенческих атак выключена. Инструкция по настройке защиты от поведенческих атак →

Добавление IP‑адреса в список

Добавлять IP‑адреса в черный список можно автоматически, если с IP поступает подозрительный трафик, и вручную.

Добавление IP‑адреса в список на ноде с мультиарендной опцией

Если в вашей инфраструктуре установлена нода с мультиарендной опцией (партнерская), перед добавлением IP в список необходимо переключиться на аккаунт тенанта, для которого вы добавляете IP‑адрес в список.

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

Автоматическое добавление IP-адресов (рекомендуется)

Добавлять IP-адреса в черный список автоматически позволяют триггеры. Они задают условия для добавления IP в список:

  • Генерирует вредоносные запросы типа Brute force, Forced browsing, BOLA.

  • Генерирует вредоносные пэйлоады разных типов с определенной частотой.

На условия, перечисленные выше, в триггерах должна быть задана реакция Добавить 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 в черный список

Вы можете получать уведомления в мессенджеры или SIEM-системы, если в черный список добавится новая запись. Чтобы включить уведомления, настройте соответствующий триггер, например:

Example of trigger for denylisted IP

Анализ добавленных 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>"
CLIENT="<YOUR_CLIENT_ID>"
LIST="<TYPE_OF_IP_LIST>"
PATH_TO_CSV_FILE="<PATH_TO_CSV_FILE>" # путь до CSV-файла с IP или подсетями
APPLICATIONS="<APP_IDS_THROUGH_COMMA>"
REMOVE_DATE="TIMESTAMP_REMOVE_DATE"
REASON='<REASON>'
API="api.wallarm.ru"


index=0
while read line; do
    subnets[$index]="$line"
    index=$(($index+1))
done < "$PATH_TO_CSV_FILE"


for i in ${subnets[@]}; do
    currentDate=`date -u +%s`
    time=$REMOVE_DATE
    remove_date=$(($currentDate+$time))

curl -X POST \
https://$API/v4/ip_rules \
-H "Content-Type: application/json" \
-H "X-WallarmApi-Token: $TOKEN"  \
-d '{
"clientid": '$CLIENT',
"ip_rule": {
    "list": "'$LIST'",
    "rule_type": "ip_range",
    "subnet": "'$i'",
    "expired_at": '$remove_date',
    "pools": [
        '$APPLICATIONS'
    ],
    "reason": "'"$REASON"'"
},
"force": false
}'

done

Добавление одного 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 в формате массива.