Wazuh System Inventory - инвентаризация системы
Модуль Syscollector в Wazuh выполняет инвентаризацию конечных точек - собирает данные об оборудовании, операционной системе, установленных пакетах, сетевых интерфейсах, открытых портах, запущенных процессах и учетных записях. Эти данные используются модулем Vulnerability Detector для сопоставления установленного ПО с базами известных уязвимостей, а также для формирования отчетов о состоянии IT-инфраструктуры. Syscollector работает на всех поддерживаемых платформах: Linux, Windows и macOS.
Конфигурация Syscollector
Модуль настраивается через блок <wodle name="syscollector"> в файле ossec.conf на агенте:
<wodle name="syscollector">
<disabled>no</disabled>
<interval>1h</interval>
<scan_on_start>yes</scan_on_start>
<hardware>yes</hardware>
<os>yes</os>
<network>yes</network>
<packages>yes</packages>
<ports all="no">yes</ports>
<processes>yes</processes>
<hotfixes>yes</hotfixes>
</wodle>Параметры конфигурации
| Параметр | По умолчанию | Описание |
|---|---|---|
disabled | no | Включение или отключение модуля (yes/no) |
interval | 1h | Интервал между сканированиями (s/m/h/d) |
scan_on_start | yes | Выполнять сканирование при запуске службы (yes/no) |
hardware | yes | Сбор данных об оборудовании (yes/no) |
os | yes | Сбор данных об операционной системе (yes/no) |
network | yes | Сбор сетевой конфигурации (yes/no) |
packages | yes | Сбор данных об установленных пакетах (yes/no) |
ports | yes | Мониторинг открытых портов (yes/no) |
processes | yes | Инвентаризация процессов (yes/no) |
hotfixes | yes | Проверка установленных обновлений Windows (yes/no) |
users | yes | Сбор информации об учетных записях (yes/no) |
groups | yes | Сбор информации о группах (yes/no) |
services | yes | Сбор данных о службах (yes/no) |
browser_extensions | yes | Сбор данных о расширениях браузеров (yes/no) |
Атрибут ports all
Параметр <ports all="no">yes</ports> определяет, какие порты включать в отчет:
all="no"- только слушающие (LISTEN) портыall="yes"- все порты, включая установленные соединения
Синхронизация данных
Syscollector синхронизирует инвентарные данные с менеджером Wazuh. Параметр max_eps контролирует скорость передачи:
<wodle name="syscollector">
<disabled>no</disabled>
<interval>1h</interval>
<synchronization>
<max_eps>10</max_eps>
</synchronization>
</wodle>Значение max_eps (events per second) ограничивает нагрузку на канал связи между агентом и менеджером. Допустимый диапазон: 0 - 1000000.
Типы собираемых данных
Оборудование (hardware)
- Модель и производитель процессора
- Количество ядер CPU
- Объем оперативной памяти (общий и свободный)
- Серийный номер системной платы
- Тактовая частота процессора
Операционная система (os)
- Название и версия ОС
- Версия ядра
- Архитектура (x86_64, ARM)
- Имя хоста
- Время работы (uptime)
- Версия сборки
Установленные пакеты (packages)
- Имя пакета и версия
- Архитектура пакета
- Поставщик (vendor)
- Описание
- Дата установки
- Менеджер пакетов (apt, yum, pacman, MSI)
На Windows дополнительно собираются данные из реестра об установленных приложениях.
Сетевые интерфейсы (network)
- Имя интерфейса
- IP-адреса (IPv4 и IPv6)
- MAC-адрес
- Маска подсети
- Шлюз по умолчанию
- MTU
- Состояние интерфейса (up/down)
Открытые порты (ports)
- Номер порта
- Протокол (TCP/UDP)
- Локальный и удаленный адрес
- Состояние соединения
- PID связанного процесса
Запущенные процессы (processes)
- PID и PPID
- Имя процесса
- Командная строка
- Пользователь
- Потребление CPU и памяти
- Приоритет (nice)
Службы (services)
- Имя службы
- Статус (running, stopped)
- Тип запуска (automatic, manual, disabled)
- PID процесса службы
Пользователи и группы
- Имя пользователя и UID
- Домашняя директория
- Оболочка входа
- Группы пользователя
Обновления Windows (hotfixes)
- KB-номер обновления
- Дата установки
Расширения браузеров
- Название расширения
- Версия
- Браузер (Chrome, Firefox, Edge)
- Описание
Дашборд инвентаризации
Wazuh Dashboard предоставляет интерфейс для просмотра инвентарных данных каждого агента. Данные организованы по вкладкам:
- Overview - сводная информация о системе
- Hardware - характеристики оборудования
- Packages - список установленных пакетов
- Processes - запущенные процессы
- Ports - открытые порты
- Network - сетевые интерфейсы
Для доступа: Wazuh Dashboard - Agents - (выберите агента) - Inventory data.
Инвентаризация и сопоставление уязвимостей
Данные Syscollector являются входными для модуля Vulnerability Detector. Процесс сопоставления:
- Syscollector собирает список установленных пакетов и их версий
- Vulnerability Detector загружает базы уязвимостей (NVD, RHEL, Ubuntu, Debian)
- Каждый пакет сопоставляется с записями CVE
- При обнаружении уязвимого пакета генерируется алерт с CVSS-оценкой
Для корректной работы детектора уязвимостей необходимо включить сбор пакетов и информации о ОС:
<wodle name="syscollector">
<disabled>no</disabled>
<interval>1h</interval>
<packages>yes</packages>
<os>yes</os>
<hotfixes>yes</hotfixes>
</wodle>API-запросы к данным инвентаризации
Wazuh REST API предоставляет эндпоинты для программного доступа к инвентарным данным.
Получение информации об ОС
TOKEN=$(curl -sk -u wazuh-wui:password \
-X POST "https://localhost:55000/security/user/authenticate?raw=true")
curl -sk -H "Authorization: Bearer $TOKEN" \
"https://localhost:55000/syscollector/001/os" | jq '.data.affected_items[0]'Получение списка пакетов
curl -sk -H "Authorization: Bearer $TOKEN" \
"https://localhost:55000/syscollector/001/packages?limit=10" \
| jq '.data.affected_items[] | {name, version, architecture}'Получение открытых портов
curl -sk -H "Authorization: Bearer $TOKEN" \
"https://localhost:55000/syscollector/001/ports?state=listening" \
| jq '.data.affected_items[] | {local_port: .local.port, protocol, pid}'Получение запущенных процессов
curl -sk -H "Authorization: Bearer $TOKEN" \
"https://localhost:55000/syscollector/001/processes?limit=20&sort=-resident_size" \
| jq '.data.affected_items[] | {pid, name, cmd, resident_size}'Получение сетевых интерфейсов
curl -sk -H "Authorization: Bearer $TOKEN" \
"https://localhost:55000/syscollector/001/netiface" \
| jq '.data.affected_items[] | {name, mac, state, mtu}'Получение оборудования
curl -sk -H "Authorization: Bearer $TOKEN" \
"https://localhost:55000/syscollector/001/hardware" \
| jq '.data.affected_items[0] | {cpu_name: .cpu.name, cpu_cores: .cpu.cores, ram_total: .ram.total}'Отчеты IT Hygiene
Wazuh формирует два типа отчетов на основе инвентарных данных:
- IT Hygiene Report - комплексный отчет о состоянии инфраструктуры, включающий все типы собранных данных
- Property-Specific Report - отчет по конкретному типу данных (например, только пакеты или только порты)
Отчеты доступны через Wazuh Dashboard и могут быть экспортированы в формате CSV.
Подробнее об обнаружении уязвимостей: Обнаружение уязвимостей
Устранение неполадок
Инвентарные данные не обновляются
- Проверьте, что
<disabled>установлено вno - Убедитесь, что
<interval>не слишком велик для ваших требований - Проверьте
/var/ossec/logs/ossec.logна наличие ошибок Syscollector - Убедитесь, что агент подключен к менеджеру: статус
activeв списке агентов
Пакеты не отображаются
- Проверьте, что
<packages>yes</packages>включено в конфигурации - На Linux убедитесь, что менеджер пакетов (dpkg, rpm) доступен
- Дождитесь завершения полного цикла сканирования (проверьте
<interval>)
Высокая нагрузка при сканировании
- Увеличьте
<interval>для снижения частоты сканирования - Отключите ненужные типы данных (например,
<browser_extensions>no</browser_extensions>) - Уменьшите
<max_eps>в блоке синхронизации - Установите
<scan_on_start>no</scan_on_start>для предотвращения нагрузки при запуске
API возвращает пустые данные
- Убедитесь, что агент выполнил хотя бы одно сканирование
- Проверьте ID агента в запросе
- Убедитесь, что JWT-токен не истек
- Проверьте, что запрашиваемый тип данных включен в конфигурации агента
Подробнее о компонентах: Компоненты Wazuh
Подробнее о сценариях: Сценарии использования Wazuh