Powrót do strony głównej

Wazuh Syscheck: monitorowanie plików Linux

Poradnik konfiguracji Syscheck w Wazuh do monitorowania kluczowych plików Linux z whodata. Centralna konfiguracja, zasady krytyczności 12, testowanie zmian. Integracja auditd zapewnia atrybucję.

Ochrona plików Linux Wazuh: whodata i alerty
Advertisement 728x90

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:

Google AdInline article slot
  • 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:

Google AdInline article slot
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:

Google AdInline article slot
<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

Advertisement 728x90

Czytaj dalej