Po roku prac 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:
- Początkowe wsparcie dla HTTP/2.
- Wsparcie dla protokołów RFB i MQTT, w tym możliwość identyfikacji protokołu i prowadzenia logów.
- Możliwość prowadzenia logów dla protokołu DCERPC.
- Znaczące zwiększenie wydajności prowadzenia logów przez podsystem EVE, który zapewnia wyjście zdarzeń w formacie JSON. Przyspieszenie osiągnięto dzięki użyciu nowego budowniczego strumieni JSON, napisanego w języku Rust.
- Zwiększona skalowalność systemu logów EVE oraz możliwość prowadzenia oddzielnego pliku logu dla każdego strumienia.
- Możliwość określania warunków do resetowania informacji w logu.
- Możliwość odzwierciedlenia adresów MAC w logu EVE oraz zwiększenie szczegółowości logu DNS.
- Zwiększenie wydajności silnika przetwarzania strumieni (flow engine).
- Wsparcie dla identyfikacji implementacji SSH ().
- Implementacja dekodera tuneli GENEVE.
- Kod do przetwarzania został przepisany w języku Rust , DCERPC i SSH. W Rust również wprowadzono wsparcie dla nowych protokołów.
- W języku definiowania reguł w kluczowym słowie byte_jump dodano wsparcie dla parametru from_end, a w byte_test — parametru bitmask. Wprowadzono kluczowe słowo pcrexform, które umożliwia stosowanie wyrażeń regularnych (pcre) do łapania podciągów. Dodano transformację urldecode. Dodano kluczowe słowo byte_math.
- Możliwość używania cbindgen do generowania powiązań w językach Rust i C.
- Dodano początkowe wsparcie dla wtyczek.
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
