Suricata to otwartoźródłowy, wielowątkowy silnik do monitorowania bezpieczeństwa sieci (NSM), wykrywania intruzów (IDS) i zapobiegania włamaniom (IPS). Analizuje ruch sieciowy w czasie rzeczywistym, dopasowując go do reguł sygnaturowych w celu wykrywania ataków, malware i prób skanowania. Jest główną alternatywą dla Snorta, z lepszą wydajnością na wielu rdzeniach.

Jak działa Suricata?

Suricata działa na kilku poziomach:

  1. Przechwytywanie pakietów: Używa nowoczesnych mechanizmów jak AF_PACKET (Linux) czy PF_RING, aby efektywnie zbierać pakiety z interfejsu sieciowego.
  2. Dekodowanie i analiza: Rozumie i dekoduje protokoły sieciowe (TCP/IP, UDP, ICMP) oraz warstwy aplikacji (HTTP, DNS, TLS, SMB i wiele innych).
  3. Dopasowywanie sygnatur: Porównuje przeanalizowany ruch z bazą reguł (sygnatur). Jeśli pakiet pasuje do reguły (np. “wykryto próbę logowania SSH z podejrzanego IP”), Suricata podejmuje akcję.
  4. Logowanie (EVE JSON): To jedna z największych zalet Suricaty. Wszystkie zdarzenia – alerty, metadane przepływów, informacje o plikach – są zapisywane w jednym, ustandaryzowanym formacie JSON (plik eve.json). Ułatwia to integrację z systemami SIEM, takimi jak ELK Stack (Elasticsearch, Logstash, Kibana).

IDS vs. IPS: Dwa tryby pracy

  • IDS (Intrusion Detection System): Suricata działa pasywnie. Kopiuje ruch z sieci (np. przez port mirroring), analizuje go i generuje alerty, gdy wykryje coś podejrzanego. Nie blokuje ruchu, tylko ostrzega.
  • IPS (Intrusion Prevention System): Suricata działa “w linii” (inline), pomiędzy internetem a Twoją siecią. Analizuje każdy pakiet zanim go przepuści. Jeśli wykryje atak, może go aktywnie zablokować (odrzucić pakiet).

Instalacja i pierwsze kroki (Ubuntu/Debian)

Suricata jest dostępna w większości repozytoriów, ale warto używać oficjalnego PPA dla najnowszej wersji.

  1. Instalacja:

    sudo add-apt-repository ppa:oisf/suricata-stable
    sudo apt update
    sudo apt install suricata
    
  2. Aktualizacja reguł: Suricata potrzebuje reguł, aby wiedzieć, czego szukać. Narzędzie suricata-update pobiera darmowy zestaw reguł (ET Open).

    sudo suricata-update
    
  3. Konfiguracja: Główny plik to /etc/suricata/suricata.yaml. Należy tam zdefiniować nasłuchiwany interfejs sieciowy oraz zakresy adresów IP naszej sieci domowej (HOME_NET).

  4. Uruchomienie:

    sudo systemctl enable suricata
    sudo systemctl start suricata
    

Wyjście EVE JSON integruje się bezpośrednio z ELK Stack i innymi platformami SIEM, co czyni Suricatę solidną podstawą widoczności sieciowej w każdym środowisku.