
Движок корреляции событий безопасности для стека ELK
Dsiem — это механизм корреляции событий безопасности для ELK stack, позволяющий использовать платформу в качестве выделенной и полнофункциональной системы SIEM.
Dsiem обеспечивает корреляцию в стиле OSSIM для нормализованных логов/событий, выполняет поиск/запросы к источникам данных об угрозах и уязвимостях и генерирует тревоги с учетом рисков.

flowchart TB
l1 --> |Normalized Logs/Events| e1
l1 --> |Alarms|e1
l1 --> |Normalized Logs/Events| d1
f1 --> |Logs| l1
s1 --> |Logs| f1
s2 --> |Logs| f1
s3 --> |Logs| f1
d1 --> |Alarms| d2
d2 --> |Alarms| l1
d1 --> |Query| d3
subgraph Elasticsearch
e1[Elasticsearch]
end
subgraph Logstash
l1[Logstash]
end
subgraph Filebeat
f1[Syslog/Filebeat]
end
subgraph Log Sources
s1[IDS]
s2[Firewall]
s3[OS]
end
subgraph Dsiem
d1[Dsiem]
d2[Dsiem-filebeat]
d3[Threat-Intel/Vulnerability-Info-Sources]
end
На диаграмме выше:
Источники логов отправляют свои логи в Syslog/Filebeat, который затем отправляет их в Logstash с уникальным идентифицирующим полем. Logstash парсит логи с помощью различных фильтров в зависимости от типа источника и отправляет результаты в Elasticsearch, как правило, создавая единый шаблон индекса для каждого типа логов (например, suricata-* для логов от Suricata IDS, ssh-* для логов SSH и т. д.).
Dsiem использует специальный конфигурационный файл Logstash для клонирования входящего события от источников логов сразу после того, как Logstash завершил его парсинг. Через тот же конфигурационный файл новое клонированное событие используется (независимо от исходного события) для сбора необходимых Dsiem полей, таких как Title, Source IP, Destination IP и т. д.
Результат описанного выше шага называется Normalized Event, поскольку он представляет логи из нескольких различных источников в едином формате с набором общих полей. Эти события затем отправляются в Dsiem через плагин вывода HTTP Logstash и в Elasticsearch с шаблоном имени индекса siem_events-*.
Dsiem коррелирует входящие нормализованные события на основе настроенных директивных правил, выполняет поиск по разведданным об угрозах и уязвимостям, а затем генерирует тревогу, если условия правил выполнены. Тревога затем записывается в локальный файл лога, который собирается локальным Filebeat, настроенным на отправку его содержимого в Logstash.
На стороне Logstash есть еще один специальный конфигурационный файл Dsiem, который читает эти отправленные тревоги и отправляет их в финальный индекс тревог SIEM в Elasticsearch.
Конечный результат описанных выше процессов заключается в том, что теперь мы можем отслеживать новые тревоги и обновления существующих, просто мониторя один индекс Elasticsearch.
Вы можете использовать Docker Compose или бинарные релизы для установки Dsiem. Подробности см. в Руководстве по установке.
Кроме того, есть демонстрационная среда на основе Docker Compose или виртуальной машины, которую можно использовать для оценки всей интеграции Dsiem из одного простого веб-интерфейса.
Текущие доступные документы находятся здесь.
Пожалуйста, отправляйте отчеты об ошибках и проблемах, открывая новый issue на Github. Информация, чувствительная с точки зрения безопасности, например подробности о потенциальной уязвимости, также может быть отправлена на [email protected]. Открытый ключ GPG для этого адреса можно найти здесь.
Вклад очень приветствуется! Присылайте PR для исправления ошибок и дополнительных тестов, gist для файлов конфигурации Logstash для парсинга событий устройств, правил директив SIEM или новых плагинов поиска угроз/уязвимостей.
Если вы не уверены, что делать по какому-либо вопросу, не стесняйтесь открыть issue и сначала обсудить.
Проект лицензирован под GPLv3. Участникам не требуется подписывать какие-либо формы CAA/CLA или подобные: Мы считаем достаточным их согласие с этим пунктом условий обслуживания Github.