Monitorowanie integralności kluczowych plików Linux za pomocą Wazuh Syscheck z whodata
Syscheck w Wazuh śledzi zmiany w krytycznych plikach Linux, takich jak /etc/passwd, /etc/shadow, /etc/sudoers i /etc/ssh/sshd_config. W trybie whodata rejestruje użytkownika i proces dokonujący zmian za pośrednictwem auditd. Konfiguracja jest wdrażana centralnie dla grupy agentów linux, a alerty generowane są z poziomem 12.
Architektura Wazuh i rola Syscheck
Wazuh składa się z managera do przetwarzania zdarzeń, agentów na hostach oraz pulpitu opartego na Kibana. Syscheck skanuje pliki według harmonogramu lub w czasie rzeczywistym, weryfikując hashe, uprawnienia i właścicieli. W trybie whodata integruje się z auditd, by przypisać zmiany konkretnym podmiotom.
Kluczowe możliwości:
- Okresowe skanowanie co 300 sekund.
- Wysyłanie diff zmian.
- Wykrywanie nowych plików w katalogach.
- Wykluczanie plików tymczasowych, by zmniejszyć szum.
Przygotowanie agentów
Zainstaluj auditd na wszystkich agentach Linux z grupy linux.
Dla dystrybucji RHEL:
sudo dnf install audit audispd-plugins -y
sudo systemctl enable --now auditd
Dla Debian/Ubuntu:
sudo apt install auditd audispd-plugins -y
sudo systemctl enable --now auditd
Sprawdź status: sudo auditctl -l.
Sprawdź istnienie grupy linux: ls -la /var/ossec/etc/shared/. Utwórz grupę w interfejsie, jeśli jej brak.
Centralna konfiguracja agent.conf
Edytuj plik /var/ossec/etc/shared/linux/agent.conf na managerze:
<agent_config>
<syscheck>
<frequency>300</frequency>
<whodata>yes</whodata>
<diff>yes</diff>
<directories check_all="yes" whodata="yes" report_changes="yes">/etc/passwd</directories>
<directories check_all="yes" whodata="yes" report_changes="yes">/etc/shadow</directories>
<directories check_all="yes" whodata="yes" report_changes="yes">/etc/sudoers</directories>
<directories check_all="yes" whodata="yes" report_changes="yes">/etc/ssh/sshd_config</directories>
<ignore>/etc/passwd-</ignore>
<ignore>/etc/shadow-</ignore>
<ignore>/etc/sudoers.tmp</ignore>
<ignore>/etc/.pwd.lock</ignore>
<alert_new_files>yes</alert_new_files>
<scan_on_start>yes</scan_on_start>
<auto_ignore>no</auto_ignore>
</syscheck>
</agent_config>
Uruchom ponownie: sudo systemctl restart wazuh-manager.
Parametry:
check_all="yes"— pełna weryfikacja atrybutów.whodata="yes"— atrybucja przez auditd.report_changes="yes"— diff w alertach.alert_new_files="yes"— powiadomienia o nowych plikach.
Reguły alertów o podwyższonej krytyczności
W pliku /var/ossec/etc/rules/local_rules.xml dodaj:
<group name="syscheck,">
<rule id="100100" level="12">
<if_sid>550</if_sid>
<field name="file">/etc/passwd</field>
<description>KRYTYCZNA ZMIANA: Zmodyfikowano plik /etc/passwd</description>
<mitre>
<id>T1078</id>
<id>T1136</id>
</mitre>
</rule>
<rule id="100101" level="12">
<if_sid>550</if_sid>
<field name="file">/etc/shadow</field>
<description>KRYTYCZNA ZMIANA: Zmodyfikowano plik /etc/shadow (hasła)</description>
<mitre>
<id>T1003</id>
<id>T1078</id>
</mitre>
</rule>
<rule id="100102" level="12">
<if_sid>550</if_sid>
<field name="file">/etc/sudoers</field>
<description>KRYTYCZNA ZMIANA: Zmodyfikowano plik /etc/sudoers</description>
<mitre>
<id>T1078</id>
<id>T1548</id>
</mitre>
</rule>
<rule id="100104" level="12">
<if_sid>550</if_sid>
<field name="file">/etc/ssh/sshd_config</field>
<description>KRYTYCZNA ZMIANA: Zmodyfikowano plik /etc/ssh/sshd_config</description>
<mitre>
<id>T1078</id>
<id>T1548</id>
</mitre>
</rule>
<rule id="100103" level="10">
<if_sid>554</if_sid>
<field name="file">/etc/passwd</field>
<field name="file">/etc/shadow</field>
<field name="file">/etc/sudoers</field>
<options>alert_by_email</options>
<description>Wykryto użytkownika, który zmienił krytyczny plik: $(file) - $(audit.user.name)</description>
<mitre>
<id>T1078</id>
</mitre>
</rule>
</group>
Uruchom ponownie managera. Reguły aktywują się na if_sid 550 (zmiana pliku), poziom 12 zapewnia priorytet.
Testowanie konfiguracji
Na agencie sprawdź zastosowanie: sudo cat /var/ossec/etc/shared/agent.conf | grep -A5 "syscheck".
Symuluj zmianę:
sudo cp /etc/passwd /etc/passwd.backup.test
echo "testuser:x:9999:9999:Test User:/home/testuser:/bin/bash" | sudo tee -a /etc/passwd
W alertach pojawi się JSON z rule.level=12, syscheck.path, audit.user.name (root), process.name (tee) oraz diff.
Cofnij zmiany: sudo cp /etc/passwd.backup.test /etc/passwd && sudo rm /etc/passwd.backup.test.
Co najważniejsze
- Syscheck z whodata rejestruje autora zmian dzięki auditd.
- Centralna konfiguracja dla grupy linux minimalizuje pracę ręczną.
- Reguły poziomu 12 z tagami MITRE dla /etc/passwd, /etc/shadow itp.
- Diff i atrybucja w alertach ułatwiają analizę kryminalistyczną.
- Wykluczenia plików tymczasowych zmniejszają fałszywe alarmy.
Skalowanie monitoringu
Rozszerz na /etc/hosts.allow, konfiguracje nginx/apache, klucze SSH. Dodaj active response do blokad oraz integracje z zewnętrznymi systemami powiadomień.
— Editorial Team
Brak komentarzy.