Мониторинг целостности файлов (FIM) помогает в аудите конфиденциальных файлов и соблюдении нормативных требований. Wazuh имеет встроенный модуль FIM, который отслеживает изменения файловой системы для обнаружения создания, изменения и удаления файлов.
Этот сценарий использует модуль Wazuh FIM для обнаружения изменений в контролируемых директориях на узле Ubuntu. Модуль обогащает данные оповещений, извлекая информацию о пользователе и процессе, которые внесли изменения.
Выполните следующие шаги, чтобы настроить агент Wazuh для мониторинга изменений в директории /root.
/var/ossec/etc/ossec.conf. Добавьте директории для мониторинга внутри блока <syscheck>.<directories check_all="yes" report_changes="yes" realtime="yes">/root</directories>
$ sudo systemctl restart wazuh-agent
$ sudo touch /root/testfile.txt
$ echo "anything" | sudo tee /root/testfile.txt
$ sudo rm /root/testfile.txt
Вы можете визуализировать данные алертов в панели управления Wazuh. Для этого перейдите в модуль File Integrity Monitoring и добавьте фильтры в строке поиска:
rule.id: is one of 550,553,554
Модуль Wazuh для Docker выявляет инциденты безопасности в контейнерах и оповещает о них в режиме реального времени. В этом упражнении вы настроите Wazuh для мониторинга событий Docker на узле Ubuntu.
Установите Docker и настройте Wazuh для мониторинга событий.
$ sudo apt install python3 python3-pip
$ pip3 install --upgrade pip
$ curl -sSL https://get.docker.com/ | sh
$ sudo pip3 install docker==7.1.0 urllib3==2.2.2 requests==2.32.2
/var/ossec/etc/ossec.conf и добавьте блок для включения модуля docker-listener в конец файла:<ossec_config>
<wodle name="docker-listener">
<interval>10m</interval>
<attempts>5</attempts>
<run_on_start>yes</run_on_start>
<disabled>no</disabled>
</wodle>
</ossec_config>
$ sudo systemctl restart wazuh-agent
Выполните несколько действий в Docker: загрузка образа, запуск контейнера, выполнение команд и удаление.
$ sudo docker pull nginx
$ sudo docker run -d -P --name nginx_container nginx
$ sudo docker exec -it nginx_container cat /etc/passwd
$ sudo docker exec -it nginx_container /bin/bash
$ exit
$ sudo docker stop nginx_container
$ sudo docker rm nginx_container
Проверьте вкладку Docker в панели Wazuh. Вы должны увидеть соответствующие алерты:
Wazuh интегрируется с сетевыми системами обнаружения вторжений (NIDS) для усиления защиты путем анализа сетевого трафика. В этом упражнении мы интегрируем Suricata.
$ sudo add-apt-repository ppa:oisf/suricata-stable
$ sudo apt-get update
$ sudo apt-get install suricata -y
$ cd /tmp/ && curl -LO https://rules.emergingthreats.net/open/suricata-6.0.8/emerging.rules.tar.gz
$ sudo tar -xvzf emerging.rules.tar.gz && sudo mkdir /etc/suricata/rules && sudo mv rules/*.rules /etc/suricata/rules/
$ sudo chmod 640 /etc/suricata/rules/*.rules
/etc/suricata/suricata.yaml (замените <UBUNTU_IP> на адрес 10.x.x.x):HOME_NET: "<UBUNTU_IP>"
EXTERNAL_NET: "any"
default-rule-path: /etc/suricata/rules
rule-files:
- "*.rules"
stats:
enabled: yes
af-packet:
- interface: enp0s3
interface на имя вашего сетевого интерфейса (например, enp0s3).
$ sudo systemctl restart suricata
/var/ossec/etc/ossec.conf):<ossec_config>
<localfile>
<log_format>json</log_format>
<location>/var/log/suricata/eve.json</location>
</localfile>
</ossec_config>
Пропингуйте IP-адрес Ubuntu с сервера Wazuh:
$ ping -c 20 "<UBUNTU_VIRTUAL_MACHINE_IP>"
Перейдите в модуль Threat Hunting и добавьте фильтр: rule.groups:suricata
В этом упражнении мы настроим Wazuh для автоматической блокировки IP-адресов, которые значатся в базах данных репутации (например, AlienVault). Это реализуется с помощью CDB-списков и модуля Active Response.
Сначала скачаем базу данных репутации и конвертируем её в формат CDB.
# Установка wget
sudo yum install -y wget
# Загрузка базы AlienVault
sudo wget https://iplists.firehol.org/files/alienvault_reputation.ipset -O /var/ossec/etc/lists/alienvault_reputation.ipset
# Добавление IP атакующего для теста (замените <ATTACKER_IP>)
sudo echo "<ATTACKER_IP>" >> /var/ossec/etc/lists/alienvault_reputation.ipset
# Конвертация в CDB
sudo wget https://wazuh.com/resources/iplist-to-cdblist.py -O /tmp/iplist-to-cdblist.py
sudo /var/ossec/framework/python/bin/python3 /tmp/iplist-to-cdblist.py \
/var/ossec/etc/lists/alienvault_reputation.ipset \
/var/ossec/etc/lists/blacklist-alienvault
# Права доступа
sudo chown wazuh:wazuh /var/ossec/etc/lists/blacklist-alienvault
Добавьте CDB-список в конфигурацию ossec.conf и создайте правило в local_rules.xml.
<ruleset>
<!-- Добавьте эту строку в блок <ruleset> -->
<list>etc/lists/blacklist-alienvault</list>
</ruleset>
<group name="attack,">
<rule id="100100" level="10">
<if_group>web|attack|attacks</if_group>
<list field="srcip" lookup="address_match_key">etc/lists/blacklist-alienvault</list>
<description>IP address found in AlienVault reputation database.</description>
</rule>
</group>
<ossec_config>
<active-response>
<disabled>no</disabled>
<command>firewall-drop</command>
<location>local</location>
<rules_id>100100</rules_id>
<timeout>60</timeout>
</active-response>
</ossec_config>
Перезапустите менеджер:
sudo systemctl restart wazuh-manager
Выполните запрос к веб-серверу с IP-адреса, который вы добавили в "черный список":
curl http://<WEBSERVER_IP>
После первого соединения Wazuh обнаружит совпадение с CDB-списком и заблокирует доступ для этого IP на 60 секунд.
Перебор паролей (Brute-force) — один из самых частых векторов атак. Wazuh обнаруживает такие атаки, коррелируя множественные события неудачной аутентификации. В этом упражнении мы будем использовать инструмент Hydra для атаки на SSH (Linux) и RDP (Windows).
Установите Hydra на вашу атакующую машину (например, Kali Linux или любой дистрибутив с пакетным менеджером):
# Для RHEL/CentOS
sudo yum install -y hydra
# Для Debian/Ubuntu
sudo apt update && sudo apt install -y hydra
Замените <RHEL_IP> на IP-адрес жертвы и выполните:
sudo hydra -l baduser -P /usr/share/wordlists/rockyou.txt ssh://<RHEL_IP>
Замените <WINDOWS_IP> на IP-адрес жертвы:
sudo hydra -l Administrator -P /usr/share/wordlists/rockyou.txt rdp://<WINDOWS_IP>
Перейдите в модуль Threat Hunting и используйте следующие фильтры для поиска событий brute-force:
rule.id:5712 (SSHD brute force trying to get access)rule.id:60122 (Multiple logon failures)
Интеграция Wazuh с VirusTotal позволяет автоматически проверять файлы на наличие вредоносного кода и мгновенно реагировать на угрозы. В этом упражнении мы настроим сканирование файлов в реальном времени и автоматическое удаление угроз.
Включите интеграцию с VirusTotal и настройте автоматическое реагирование (Active Response) в файле /var/ossec/etc/ossec.conf.
<ossec_config>
<integration>
<name>virustotal</name>
<api_key><YOUR_VIRUS_TOTAL_API_KEY></api_key>
<group>syscheck</group>
<alert_format>json</alert_format>
</integration>
</ossec_config>
<ossec_config>
<command>
<name>remove-threat</name>
<executable>remove-threat.exe</executable>
<timeout_allowed>no</timeout_allowed>
</command>
<active-response>
<disabled>no</disabled>
<command>remove-threat</command>
<location>local</location>
<rules_id>87105</rules_id>
</active-response>
</ossec_config>
Настройте модуль FIM для мониторинга директории в реальном времени.
ossec.conf агента:<directories check_all="yes" report_changes="yes" realtime="yes">C:\Users\Admin\Downloads</directories>
# Windows (PowerShell)
Restart-Service -Name wazuh
# Linux
sudo systemctl restart wazuh-agent
Загрузите тестовый файл EICAR, чтобы проверить работу системы.
# PowerShell
Invoke-WebRequest -Uri https://secure.eicar.org/eicar.com.txt -OutFile C:\Users\Admin\Downloads\eicar.txt
После загрузки Wazuh отправит хэш файла в VirusTotal. Если файл признан вредоносным, сработает правило 87105, и файл будет автоматически удален.