Po dwóch latach rozwoju, Open Information Security Foundation (OISF) wydała wersję 8.0 systemu wykrywania i zapobiegania włamaniom do sieci Suricata, który udostępnia narzędzia do inspekcji różnych rodzajów ruchu. Konfiguracje Suricata obsługują bazę sygnatur opracowaną w ramach projektu Snort, a także zestawy reguł Emerging Threats i Emerging Threats Pro. Kod źródłowy projektu jest rozpowszechniany na licencji GPLv2.
Główne zmiany:
- Dodano eksperymentalną możliwość wykorzystania Suricaty jako zapory sieciowej. Tryb zapory sieciowej pozwala na użycie dialektu języka reguł inspekcji ruchu do filtrowania pakietów sieciowych.
- Możliwość pisania skryptów w Lua została przeprojektowana. Interpreter Lua 5.4 jest zintegrowany z bazą kodu i działa w środowisku sandbox, które ogranicza reguły Lua (na przykład reguły nie mogą zapisywać do plików ani tworzyć gniazd sieciowych).
- Dostępna jest możliwość dynamicznego (w czasie wykonywania) rejestrowania wtyczek przy użyciu parserów protokołów, detektorów i komponentów rejestrujących.
- Wprowadzono znaczące optymalizacje wydajności, przyspieszając różne aspekty działania silnika, w tym wykrywanie protokołów, ładowanie reguł i inicjalizację. Ulepszenia te osiągnięto dzięki predykcji rozgałęzień, optymalizacji funkcji skrótu, zwiększeniu rozmiarów buforów ładowania danych PCAP oraz przeprojektowaniu synchronizacji strumieni. Czas uruchamiania Suricata został również skrócony dzięki buforowaniu, rozszerzonemu grupowaniu portów i ulepszonemu algorytmowi podstawiania adresów IP.
- Obsługę LibHTP, FTP i ENIP, a także kod do analizy typów MIME, operacji byte_extract i dekodowania base64 przepisano w języku Rust.
- Dodano obsługę protokołów DoH (DNS przez HTTPS), LDAP, mDNS (Multicast DNS) i Websocket.
- Dodano nowe moduły dekodowania i rejestrowania dla protokołów ARP i POP3.
- Zapewniono analizę ruchu SDP przez SIP i SIP przez TCP.
- Rozszerzono mechanizm wykrywania i budowania reguł protokołów. Obsługiwane są teraz następujące słowa kluczowe: LDAP, MIME/EMAIL, vlan.id, DNS, SMTP, FTP, TLS, tcp.wscale, pgsql.query, from_base64, entropy, luaxform i mDNS. Dodano reguły transakcyjne, umożliwiające opisanie obu kierunków transakcji w jednej regule.
Cechy Suricaty:
- Format Unified2, również używany w projekcie Snort, jest używany do generowania wyników skanowania, co pozwala na wykorzystanie standardowych narzędzi analitycznych, takich jak Barnyard2. Obsługiwana jest integracja z produktami BASE, Snorby, Sguil i SQueRT. Obsługiwany jest również format wyjściowy PCAP.
- Obsługa automatycznego wykrywania protokołów (IP, TCP, UDP, ICMP, HTTP, TLS, FTP, SMB itp.), umożliwiająca regułom działanie wyłącznie na typie protokołu, bez odniesienia do numeru portu (np. blokowanie ruchu HTTP na porcie niestandardowym). Dostępność dekoderów dla protokołów HTTP. SSL, TLS, SMB, SMB2, DCERPC, SMTP, FTP, LDAP i SSH;
- System analizy ruchu HTTP wykorzystujący bibliotekę HTP, stworzoną przez autora projektu Mod_Security, do parsowania i normalizacji ruchu HTTP. Dostępny jest moduł do szczegółowego rejestrowania transferów HTTP (logi są zapisywane w standardowym formacie Apache). Obsługiwana jest ekstrakcja i weryfikacja plików przesyłanych przez HTTP, a także parsowanie skompresowanej zawartości. Możliwa jest identyfikacja na podstawie URI, pliku cookie, nagłówków, agenta użytkownika oraz treści żądania/odpowiedzi.
- Obsługa różnych interfejsów do przechwytywania ruchu, w tym NFQueue, IPFRing, LibPcap, IPFW, AF_PACKET, PF_RING. Istnieje możliwość analizy już zapisanych plików w formacie PCAP;
- Wysoka wydajność, możliwość przetwarzania przepływów rzędu dziesiątek gigabitów na sekundę na konwencjonalnym sprzęcie.
- Wydajny mechanizm dopasowywania masek dla dużych zestawów adresów IP. Obsługa ekstrakcji treści według maski i wyrażeń regularnych. Ekstrakcja plików z ruchu, w tym ich identyfikacja według nazwy, typu lub skrótu.
- Możliwość używania zmiennych w regułach: możesz zapisać informacje ze strumienia i później używać ich w innych regułach;
- Zastosowanie formatu YAML w plikach konfiguracyjnych, który łączy przejrzystość z łatwością przetwarzania maszynowego;
- Pełne wsparcie IPv6;
- Wbudowany silnik automatycznej defragmentacji i ponownego składania pakietów, pozwalający na prawidłowe przetwarzanie strumieni, niezależnie od kolejności nadejścia pakietów;
- Obsługa protokołów tunelowania: Teredo, IP-IP, IP6-IP4, IP4-IP6, GRE;
- Obsługa dekodowania pakietów: IPv4, IPv6, TCP, UDP, SCTP, ICMPv4, ICMPv6, GRE, Ethernet, PPP, ARP, PPPoE, Raw, SLL, VLAN;
- Tryb rejestrowania kluczy i certyfikatów używanych w połączeniach opartych o protokół TLS;
- Możliwość pisania skryptów w Lua do zaawansowanej analizy ruchu i implementacji dodatkowych funkcji, dla których standardowe reguły są niewystarczające.
Źródło: opennet.ru
