Organizacja OISF (Open Information Security Foundation) wydanie systemu wykrywania i zapobiegania włamaniom sieciowym , który zapewnia środki do inspekcji różnych rodzajów ruchu. W konfiguracjach Suricata dopuszcza się wykorzystanie , rozwijanej przez projekt Snort, a także zestawów reguł i . Kody źródłowe projektu na licencji GPLv2.
Główne zmiany:
- Przedstawione zostały nowe moduły analizy i rejestrowania dla protokołów
RDP, SNMP i SIP, napisane w języku Rust. Do modułu analizy FTP dodano możliwość rejestrowania przez podsystem EVE, zapewniający wyjście zdarzeń w formacie JSON; - Oprócz wprowadzonego w poprzednim wydaniu wsparcia dla metody identyfikacji klientów TLS JA3 dodano wsparcie dla metody , Na podstawie cech protokołów i ustawionych parametrów określa, jakie oprogramowanie jest używane do ustanawiania połączeń (na przykład, pozwala określić użycie Tora oraz innych typowych aplikacji). JA3 umożliwia identyfikację klientów, a JA3S — serwerów. Wyniki identyfikacji można wykorzystać w języku reguł i w logach;
- Dodano eksperymentalną możliwość dopasowania do próbek z dużych zestawów danych, realizowaną przy pomocy nowych operacji . Na przykład, możliwość ta ma zastosowanie do wyszukiwania masek w dużych czarnych listach, liczących miliony rekordów;
- W trybie inspekcji HTTP zapewniono pełne pokrycie wszystkich sytuacji opisanych w zbiorze testowym (na przykład obejmuje metody stosowane do ukrywania w ruchu złośliwej aktywności);
- Narzędzia do tworzenia modułów w języku Rust zostały przeniesione z opcji do kategorii obowiązkowych funkcji. W dalszej perspektywie planowane jest rozszerzenie zastosowania Rust w bazie kodu projektu oraz stopniowa wymiana modułów na odpowiedniki, opracowane w Rust;
- Silnik wykrywania protokołów został ulepszony w zakresie zwiększenia dokładności i przetwarzania asynchronicznych strumieni ruchu;
- W logu EVE dodano wsparcie dla nowego typu wpisów "anomaly", w których rejestrowane są nietypowe zdarzenia wykrywane podczas dekodowania pakietów. W EVE rozszerzono także informacje o VLAN oraz interfejsach przechwytywania ruchu. Dodano opcję zapisywania wszystkich nagłówków HTTP w zapisach http logów EVE;
- W obsługiwaczach opartych na eBPF wprowadzono wsparcie dla sprzętowych mechanizmów przyspieszających przechwytywanie pakietów. Sprzętowe przyspieszenie jest obecnie ograniczone do kart sieciowych Netronome, ale wkrótce będzie dostępne również dla innego sprzętu;
- Przepisano kod do przechwytywania ruchu przy użyciu frameworka Netmap. Dodano możliwość korzystania z rozszerzonych możliwości Netmap, takich jak wirtualny switch ;
- Wsparcie dla nowego schematu identyfikacji słów kluczowych dla „lipnych buforów” (Sticky Buffers). Nowy schemat określono w formacie „protokół.bufor”, na przykład, dla inspekcji URI słowo kluczowe przyjmie formę „http.uri” zamiast „http_uri”;
- Cały używany kod Pythona został sprawdzony pod kątem zgodności z
Python 3; - Zakończono wsparcie dla architektury Tilera, pliku dziennika dns.log oraz starego pliku dziennika files-json.log.
Cechy Suricata:
- Użycie do wyjścia wyników testów ujednoliconego formatu , również używanego przez projekt Snort, co pozwala na korzystanie ze standardowych narzędzi do analizy, takich jak . Możliwość integracji z produktami BASE, Snorby, Sguil i SQueRT. Wsparcie dla wyjścia w formacie PCAP;
- Wsparcie automatycznego wykrywania protokołów (IP, TCP, UDP, ICMP, HTTP, TLS, FTP, SMB itp.), pozwalające na operowanie w regułach wyłącznie typem protokołu, bez powiązania z numerem portu (na przykład blokowanie ruchu HTTP na niestandardowym porcie). Obecność dekoderów dla protokołów HTTP, SSL, TLS, SMB, SMB2, DCERPC, SMTP, FTP i SSH;
- Potężny system analizy ruchu HTTP, wykorzystujący specjalną bibliotekę HTP stworzoną przez autora projektu Mod_Security do analizy i normalizacji ruchu HTTP. Dostępny jest moduł do prowadzenia szczegółowego dziennika przesyłek HTTP, dziennik jest zapisywany w standardowym formacie
Apache. Obsługuje wydobywanie i sprawdzanie plików przesyłanych protokołem HTTP. Wsparcie dla analizy skompresowanej zawartości. Możliwość identyfikacji po URI, Cookie, nagłówkach, user-agent, treści żądania/odpowiedzi; - Wsparcie różnych interfejsów do przechwytywania ruchu, w tym NFQueue, IPFRing, LibPcap, IPFW, AF_PACKET, PF_RING. Możliwa analiza już zapisanych plików w formacie PCAP;
- Wysoka wydajność, zdolność do przetwarzania na zwykłym sprzęcie strumieni do 10 gigabitów/sek.
- Wydajny mechanizm dopasowywania na podstawie maski z dużymi zestawami adresów IP. Wsparcie dla wydobywania treści na podstawie maski oraz wyrażeń regularnych. Wydobywanie plików z ruchu, w tym ich identyfikacja na podstawie nazwy, typu lub sumy kontrolnej MD5.
- Możliwość wykorzystania zmiennych w regułach: można zapisać informacje ze strumienia i później wykorzystać je w innych regułach;
- Użycie formatu YAML w plikach konfiguracyjnych, co pozwala zachować czytelność przy łatwości przetwarzania przez maszyny;
- Pełne wsparcie dla IPv6;
- Wbudowany silnik do automatycznej defragmentacji i rekonstrukcji pakietów, umożliwiający poprawne przetwarzanie strumieni, niezależnie od kolejności przybywania pakietów;
- Wsparcie dla protokołów tunelowania: Teredo, IP-IP, IP6-IP4, IP4-IP6, GRE;
- Wsparcie dla dekodowania pakietów: IPv4, IPv6, TCP, UDP, SCTP, ICMPv4, ICMPv6, GRE, Ethernet, PPP, PPPoE, Raw, SLL, VLAN;
- Tryb rejestrowania kluczy i certyfikatów pojawiających się w ramach połączeń TLS/SSL;
- Możliwość pisania skryptów w języku Lua w celu zapewnienia rozszerzonej analizy i wdrożenia dodatkowych funkcji potrzebnych do określenia rodzajów ruchu, dla których standardowe reguły są niewystarczające.
Źródło: opennet.ru
