惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The GitHub Blog
The GitHub Blog
Engineering at Meta
Engineering at Meta
博客园 - 聂微东
博客园 - Franky
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
雷峰网
雷峰网
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
L
LangChain Blog
WordPress大学
WordPress大学
H
Help Net Security
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Y
Y Combinator Blog
Blog — PlanetScale
Blog — PlanetScale
MyScale Blog
MyScale Blog
IT之家
IT之家
酷 壳 – CoolShell
酷 壳 – CoolShell
罗磊的独立博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
有赞技术团队
有赞技术团队
Apple Machine Learning Research
Apple Machine Learning Research
云风的 BLOG
云风的 BLOG
博客园 - 【当耐特】
P
Proofpoint News Feed
D
DataBreaches.Net

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания
SIEM Wazuh: полезные API для диагностики
Mr_Hartman · 2026-06-27 · via Все публикации подряд на Хабре

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. В этой ситуации рекомендуется обновиться или их скорректировать, обратившись к документации

  1. Топ самых шумных правил (глобально)

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)

Помогает когда агент часто получает статус "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. Ниже - юзерская активность

В данном случае фолспозитивные алерты генерирует служебная учетка, которой забыли прописать 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.id

В данном случае пусто, потому что я намеренно снизил уровень этих оповещений. Искать можно по любому rule.id

6. Анализ неудачных входов

 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

Источники: Ф

  1. Официальный сайт вендора - https://wazuh.com/

  2. Документация по Syntax Rule - https://documentation.wazuh.com/current/user-manual/ruleset/ruleset-xml-syntax/rules.html

  3. Документация по API - https://documentation.wazuh.com/current/user-manual/api/reference.html