Пока мы говорим про организационные требования к DE и упоминаем правила обнаружения, давайте вспомним как они работают. На самом деле правила обнаружения - это правила корреляции ⚠️
С правилами корреляции работает SIEM – это класс решений, предназначенный для сбора сырых событий информационной безопасности (далее – СИБ) от их источников (приложений, операционных систем, сетевого оборудования и т.п.), нормализации событий, агрегации, обогащения и их корреляции. Простыми словами - СИБ попадают в SIEM и обрабатываются, затем по заданным правилам формируются алерты. Алерт может стать инцидентом, если аналитик его подтвердит.
Как правило жизненный цикл СИБ в SIEM выглядит так:
🔤 Нормализация – приведение сырого события (raw) к виду принятом в SIEM (таксономия – набор полей, которые используются в SIEM).
Например, сырое событие имеет вид:
<10> 2024-10-22T10:22 host1 auditd: user1 create new process /bin/bash
Нормализованное событие:
{
date: 2024-10-22T10:22;
host: host1;
service: auditd;
username: user;
processname: /bin/bash
}
Теперь каждое значение расположено в соответствующем поле и мы можем осуществлять поиск и работу с полями. 🔤 Агрегация – обобщение однотипных нормализованных событий с указанием общего количества.
Например:
Нормализованное событие Event 1:
{
date: 2024-10-22T10:22;
src.host: host1;
dst.host: host2;
app_protocol: tcp;
duration: 120
}
Нормализованное событие Event 2:
{
date: 2024-10-22T10:23;
src.host: host1;
dst.host: host2;
app_protocol: tcp;
duration: 120
}
Нормализованное событие Event 3: {
date: 2024-10-22T10:24;
src.host: host1;
dst.host: host2;
app_protocol: tcp;
duration: 120
}
Для агрегации может понадобиться определить поля, которые должны быть одинаковые.
Определим поля:
src.host, dst.host, app_protocol. Установим время агрегации 5 секунд.
Агрегированное событие будет выглядеть следующим образом:
{
date: 2024-10-22T10:24;
src.host: host1;
dst.host: host2;
app_protocol: tcp;
count: 3
}
🔤 Обогащение – процесс добавления недостающей (отсутствующей) информации в событии.
Например, в нашем агрегированном событие есть поля src.host и dst.host в которых хранится имя хоста отправителя и получателя. Этого не достаточно для полного понимания картины сетевого взаимодействия. Как ты считаешь какой информации не хватает 😱? Все верно - ip-адреса.
Обогащение позволяет дополнить событие любой информацией. Наше событие приобрело новый вид:
{
date: 2024-10-22T10:24;
src.host: host1;
src.ip: 10.10.1.1
dst.host: host2;
dst.ip: 10.10.20.200
app_protocol: tcp;
count: 3
}
Теперь аналитику может стать проще проводить последующий анализ или расследование инцидента.
🔤 Корреляция – финальный этап в жизненном цикле события. Корреляция формирует новое событие или алерт, основываясь на правилах, которые написали аналитики.
Давайте рассмотрим пример:
Подсеть
10.10.1.0/24 – подсеть сетевого оборудования, а ip_net_DC – это сеть контроллеров домена Active Directory. Мы знаем, что в нашей инфраструктуре из подсети 10.10.1.0/24 не должны открываться соединения к контроллерам домена. Для обнаружения такого поведения мы можем написать правило на псевдоалгоритмическом языке:
Имя алерта: подключение к контроллеру домена с сетевого оборудования
Критичность: высокая
Если
src.ip входит в [10.10.1.0/24]
И
dst.ip входит в [ip_net_DC]
то регистрируй АЛЕРТ
#detection@detectioneasy
#note@detectioneasy
