📱 Подписаться
IT и цифровая трансформация

SIEM Wazuh: полезные API для диагностики

📰 Habr 👁️ 0 просмотров

Mr_Hartman21 час назад

SIEM Wazuh: полезные API для диагностики

Уровень сложностиПростойВремя на прочтение3 минОхват и читатели7.2K*nix*ТуториалWazuh - это бесплатная платформа класса XDR (Extended Detection and Response), которая сочетает в себе функции SIEM (Security Information and Event Management) и защиты конечных точек. Решение предназначено для мониторинга безопасности инфраструктуры: от локальных серверов до облачных сред.

Задача № 0

Шум в логах и тысячи false positive'ных алертов - это то, с чем сталкивается каждый SoC-инженер при работе с Wazuh в начале пути. Вендор и коммьюнити рекомендует решать проблему разработкой своих localrules или переопределением родительских правил (при условии твердого и четкого понимания того, что вы делаете).

Но как определить источники шума? Лучше всего использовать API-запросы

Как работать с API?

Есть два способа: через CLI на сервере, либо через Wazuh Dashboard. В первом случае вам понадобится api-token, api-user и api-password (о том, где это найти можно прочитать здесь). Во втором случае: переходим в контекстное меню -> вкладка "Indexer management -> "Dev Tools"

Что делать дальше?

Я не буду останавливаться на подробном рассмотрении синтаксиса (ссылка на документацию в конце статьи). Вместо этого предлагаю вам попробовать мои API-запросы, которые я разработал для себя и использую в повседневной работе. Их основная задача - поиск и диагностика шума на сервере и на стороне агентов.

Общая логика запроса следующая:

POST /wazuh-alerts*/_search
{
"size": 0,
"query": {
"bool": {
"must": [
{"term": {"агент_поле": "значение"}},
{"term": {"правило_поле": "значение"}},
{"range": {
"timestamp": {
"gte": "now-1h"
}
}}
],
"must_not": [
{"term": {"data.win.eventdata.поле": "исключение"}}
]
}
},
"aggs": {
"top_field": {
"terms": {
"field": "data.win.eventdata.поле_для_агрегации",
"size": 20,
"order": { "_count": "desc" }
}
}
}
}Примечание:некоторые запросы могут возвращать 500-ю ошибку. Обычно это связано с версией SIEM. В этой ситуации рекомендуется обновиться или их скорректировать, обратившись к документации

• Топ самых шумных правил (глобально)POST /wazuh-alerts*/_search
{
"size": 0,
"aggs": {
"noisy_rules": {
"terms": {
"field": "rule.id",
"size": 20,
"order": { "_count": "desc" }
}
}
}
}Отлично помогает когда ты только-только запустил мониторинг, потому что на старте события генерируются в промышленных масштабах2. Топ шумных правил для конкретного агента

POST /wazuh-alerts*/_search
{
"size": 0,
"query": {
"term": {
"agent.name": "BC-DC-01"
}
},
"aggs": {
"noisy_rules": {
"terms": {
"field": "rule.id",
"size": 20,
"order": { "_count": "desc" }
}
}
}
}Помогает когда агент часто получает статус "Agent flooded. Check configuration" (rule.id 204)3. Топ шумных пользователей

POST /wazuh-alerts*/_search
{
"size": 0,
"aggs": {
"noisy_users": {
"terms": {
"field": "data.win.eventdata.targetUserName",
"size": 20,
"order": { "_count": "desc" }
}
}
}
}В данном случае фолспозитивные алерты генерирует служебная учетка, которой забыли прописать SPN. Ниже - юзерская активность4. Топ шумных IP-адресов

POST /wazuh-alerts*/_search
{
"size": 0,
"aggs": {
"noisy_ips": {
"terms": {
"field": "data.win.eventdata.ipAddress",
"size": 20,
"order": { "_count": "desc" }
}
}
}
}Выручает, когда сисадмины жалуются на высокий сетевой трафик и нагрузку, но не всегда могут найти источник

5. Анализ конкретного правила (на примере rule.id = "60229" (изменения AD))

POST /wazuh-alerts*/_search
{
"size": 0,
"query": {
"bool": {
"must": [
{"term": {"rule.id": 60229}},
{"term": {"agent.name": "BC-DC-01"}}
]
}
},
"aggs": {
"top_objects": {
"terms": {
"field": "data.win.eventdata.objectDN",
"size": 10
}
},
"top_attributes": {
"terms": {
"field": "data.win.eventdata.attributeLDAPDisplayName",
"size": 10
}
},
"top_users": {
"terms": {
"field": "data.win.eventdata.subjectUserName",
"size": 10
}
}
}
}В данном случае пусто, потому что я намеренно снизил уровень этих оповещений. Искать можно по любому rule.id6. Анализ неудачных входов

POST /wazuh-alerts*/_search
{
"size": 0,
"query": {
"term": {
"rule.id": 60122
}
},
"aggs": {
"top_users": {
"terms": {
"field": "data.win.eventdata.targetUserName",
"size": 10
}
},
"top_ips": {
"terms": {
"field": "data.win.eventdata.ipAddress",
"size": 10
}
},
"by_status": {
"terms": {
"field": "data.win.eventdata.status",
"size": 10
}
}
}
}В практике реальный брутфорс - редко, а вот забытые службы или скрипты на старых паролях - чаще всего7. Топ шумных правил с уровнем >= 5

POST /wazuh-alerts*/_search
{
"size": 0,
"query": {
"range": {
"rule.level": {
"gte": 5
}
}
},
"aggs": {
"noisy_rules": {
"terms": {
"field": "rule.id",
"size": 20,
"order": { "_count": "desc" }
}
}
}
}Базовая аналитикаЭто только самые ходовые запросы. Изучив синтаксис API, вы можете кастомизировать их под конкретную задачу. Надеюсь, статья будет дял вас полезной и позволит сэкономить время на этапах работы с SIEM

Источники: Ф

• Официальный сайт вендора - https://wazuh.com/
• Документация по Syntax Rule - https://documentation.wazuh.com/current/user-manual/ruleset/ruleset-xml-syntax/rules.html
• Документация по API - https://documentation.wazuh.com/current/user-manual/api/reference.htmlТеги:• wazuh
• siem
• infosec
• managementХабы:• *nix

Получайте больше инсайтов о систематизации бизнеса

Подписывайтесь на Telegram-канал Business Operations — ежедневные материалы о бизнес-процессах, операционном управлении и повышении эффективности

💬 Подписаться на канал