Wazuh SIEM, Suricata IDS, OpenWRT
Suricata to popularny system wykrywania intruzów (IDS), który monitoruje ruch sieciowy pod kątem podejrzanych działań. Z kolei Wazuh XDR (Extended Detection and Response) jest to narzędzie, które umożliwia gromadzenie, analizowanie i korelowanie danych z różnych źródeł, takich jak systemy operacyjne, urządzenia sieciowe, aplikacje, bazy danych i inne.. Integracja tych dwóch systemów działających na oddzielnych maszynach wirtualnych umożliwia stworzenie rozwiązania do monitorowania bezpieczeństwa. W tym artykule omówię, jak połączyć Wazuh SIEM z Suricata IDS, uruchomionych na osobnej maszynie wirtualnej, która otrzymuje ruch sieciowy przekierowany z routera OpenWRT za pomocą iptables i modułu 'TEE' który służy do klonowania pakietów sieciowych i przesyłania ich do innego hosta lub interfejsu sieciowego.
Osobiście korzystam z Proxmox jako platformy do zarządzania wirtualizacją, która umożliwia uruchamianie i zarządzanie maszynami wirtualnymi (VM) oraz kontenerami (LXC) na serwerze fizycznym. Dzięki gotowym obrazom OVA (Open Virtual Appliance), instalacja Wazuh może być znacznie uproszczona. Musimy tylko przekonwertować plik OVA do formatu zgodnego z Proxmox.
Kolejnym krokiem jest konfiguracja VM (Debian) dla Suricata IDS z dodatkowym interfejsem sieciowym używanym wyłącznie do nasłuchiwania pakietów przekazywanych przez OpenWRT (iptables-mod-tee). Konfiguracje dodatkowego mostka sieciowego w Proxmox, który zachowuje się jak HUB uzyskujemy poprzez parametr 'bridge_ageing 0'
Do maszyny wirtualnej podpinam dodatkowy interfejs sieciowy 'vmbr1' oraz uruchamiam Suricata w kontenerze Docker, co umożliwia łatwą instalację oraz zarządzanie.
Potrzebujemy jeszcze zainstalować agenta Wazuh czyli lekki program kliencki, który jest instalowany na systemach końcowych (serwerach, komputerach stacjonarnych, maszynach wirtualnych, kontenerach itp.) w celu monitorowania, zbierania danych oraz zapewnienia ochrony przed zagrożeniami na naszej maszynie gdzie uruchomiony jest IDS.
Podstawowa konfiguracja agenta Wazuh jak wskazanie pliku 'eve.json' czyli głównego pliku dziennika używanego przez Suricata do zapisywania zdarzeń związanych z analizą ruchu sieciowego oraz Suricata gdzie musimy wskazać odpowiedni interfejs sieciowy jest opisana tutaj.
Ostatnim krokiem jest konfiguracja naszego routera czyli w tym przypadku OpenWRT aby duplikował pakiety sieciowe i przekazywał do maszyny wirtualnej gdzie uruchomiona jest Suricata za pomocą modułu 'TEE' w iptables.
Teraz możemy sprawdzić czy pakiety są poprawnie duplikowane na docelowej maszynie za pomocą 'tcpdump' czyli narzędziu służącym do przechwytywania i analizowania pakietów sieciowych.
Zdarzenie widzimy również w logach Suricata w pliku 'fast.log' czyli dzienniku używanym do zapisywania alertów wykrywanych przez silnik IDS.
Incydenty przekazywane są również do interfejsu użytkownika w platformie Wazuh w celu wizualizacji danych.
Integracja Suricata IDS z Wazuh przynosi wiele korzyści, takich jak centralizacja zarządzania bezpieczeństwem, zaawansowana analiza zagrożeń oraz automatyzacja reakcji na incydenty. Dzięki połączeniu tych narzędzi możliwa jest konsolidacja danych z różnych źródeł, co ułatwia identyfikację i korelację zdarzeń, wspomagając wykrywanie bardziej złożonych ataków. Wazuh umożliwia również automatyczne działania naprawcze, powiadomienia o incydentach i monitorowanie zgodności z przepisami, co pomaga w spełnieniu wymogów audytowych.
Jeśli na interfejsie sieciowym, który służy do przechwytywania pakietów nie widzicie żadnego ruchu to problem może występować z trasowaniem ruchu oraz z dwoma domyślnymi bramami - rozwiązanie problem jest tutaj