Логирование каждого пакета

Технически DosGate имеет возможность логирования каждого проходящего через него пакета. Для этого можно использовать быстрые таблицы данных (метки).

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

Данный режим понижает производительность платформы. Не рекомендуется к активации на платформах которые обрабатывают больше 20Mpps и процессором производительностью ниже Intel Xeon Gold 6230.

Подготовка платформы DosGate

  • Определите тип хранения данных (один из, или несколько): hmark (IP-отправителя), dmark (IP-получателя), sdhmark (IP-отправителя и получателя), connmark (IP-отправителя и получателя, протокол, порт получателя и отправителя).

  • Определите глубину хранения, например, 100 000 записей. Обновите максимальный размер таблицы в соответствии с документацией. По умолчанию каждая метка хранит до 1 000 000 записей.

Настройка профилей фильтрации

  • Для каждого правила потребуется установить уникальный счетчик, например, sdhmark (он сохраняет пару l3_src и l3_dst).
  • Счетчик должен быть установлен до терминального действия, например, до DROP или ACCEPT.
  • Для каждого правила, укажите уникальный value. ID может быть одинаковым.

  • Вы сможете определять сработавшее правило по value, а также пару l3_src и l3_dst к которым это правило было применено (при использовании sdhmark). По желанию, можно также указывать разный ID.

Интеграция с SIEM

С помощью API DosGate.

Шаг 1

Получение списка профилей выбранной арены.

curl --location 'http://<node_ip>/fapi' \
--header 'Content-Type: application/json' \
--data '{
    "url": "arena://<arena>",
    "cmd": "list"
}'

Шаг 2

Получение списка правил каждого профиля.

curl --location 'http://<node_ip>/fapi' \
--header 'Content-Type: application/json' \
--data '{
    "url": "profile://<arena>/<profile>",
    "cmd": "list"
}'

Шаг 3

Получение всего списка записей.

Все виды marktype: shost (hmark), dhost (dmark), sdhost (sdhmark), conn (connmark). Выберите в зависимости от используемых в профиле.

Обращаться к получению всего списка записей рекомендуется не чаще чем 1 раз в 3 секунды.

На получение 100 000 записей из метки уходит около 1100 мс., общий вес ответа около 4.8 Мбайт.

curl --location 'http://<node_ip>/fapi' \
--header 'User-Arena: first' \
--header 'Content-Type: application/json' \
--data '{
    "url": "mark://<arena>/<profile>",
    "type": "<marktype>",
    "cmd": "list"
}

Шаг 4

Размещение данных в SIEM.

Направьте полученные данные в SIEM вместе с временным отпечатком (когда вы получили эти данные) и названием ноды (произвольно, для удобства если ЦО состоит из нескольких DosGate). Можно исключить "lifetime", если не требуется или не используется.

Рекомендуется оставить название профиля и арены для удобства и дальнейшего разбора, так как профили могут быть разные, с разным набором правил и условий.

Также, направьте в SIEM набор правил. Правило можно сопоставить с записью из метки на основании value и/или ID.

Шаг 5

При повторном обращении через N-ое кол-во секунд повторите шаг 4.