Firma Cisco ostateczną wersję beta całkowicie przebudowanego systemu zapobiegania atakom , znany również jako projekt Snort++, nad którym prace prowadzone są od 2005 roku z przerwami. W tym roku planowane jest wydanie kandydatów do wersji.
W nowej gałęzi całkowicie przemyślano koncepcję produktu i przebudowano architekturę. Do priorytetowych obszarów podczas przygotowywania nowej gałęzi należy uproszczenie konfiguracji i uruchamiania Snort, automatyzacja konfiguracji, uproszczenie języka budowy reguł, automatyczne rozpoznawanie wszystkich protokołów, zapewnienie interfejsu do zarządzania z linii komend oraz aktywne wykorzystanie wielowątkowości z współdzielonym dostępem różnych przetwarzaczy do pojedynczej konfiguracji.
Wdrożono następujące znaczne innowacje:
- Wprowadzono nowy system konfiguracji, oferujący uproszczoną składnię i umożliwiający korzystanie ze skryptów do dynamicznego generowania ustawień. Do przetwarzania plików konfiguracyjnych wykorzystuje się LuaJIT. Oferowane są wtyczki oparte na LuaJIT z realizacją dodatkowych opcji dla reguł i systemu logowania;
- Zmodernizowano silnik wykrywania ataków, zaktualizowano reguły, dodano możliwość wiązania buforów w regułach (sticky buffers). Wykorzystano silnik wyszukiwania Hyperscan, co pozwoliło na stosowanie w regułach szybkich i dokładniejszych wzorców opartych na wyrażeniach regularnych;
- Dodano tryb introspekcji dla HTTP, uwzględniający stan sesji i obejmujący 99% sytuacji wspieranych zestawem testowym . Trwa prace nad kodem do wsparcia HTTP/2;
- Zasadniczo zwiększono wydajność trybu głębokiej inspekcji pakietów. Dodano możliwość przetwarzania pakietów w wielowątkowości, umożliwiając jednoczesne wykonywanie kilku wątków z przetwarzaczami pakietów i zapewniając liniową skalowalność w zależności od liczby rdzeni CPU;
- Wdrożono ogólne magazynowanie konfiguracji i tabele atrybutów, które są używane wspólnie w różnych podsystemach, co pozwoliło na znaczące zmniejszenie zużycia pamięci dzięki wyeliminowaniu duplikacji informacji;
- Nowy system rejestrowania zdarzeń z wykorzystaniem formatu JSON, łatwo integrowany z zewnętrznymi platformami, takimi jak Elastic Stack;
- Przejście na modułową architekturę, z możliwością rozszerzenia funkcjonalności poprzez dodawanie wtyczek oraz realizacja kluczowych subsystemów jako wymiennych wtyczek. Obecnie dla Snort 3 dostępnych jest już kilka setek wtyczek, które obejmują różne dziedziny zastosowań, na przykład pozwalające na dodanie własnych kodeków, trybów introspekcji, metod rejestrowania, akcji i opcji w regułach;
- Automatyczne wykrywanie działających usług, eliminując konieczność ręcznego wskazywania aktywnych portów sieciowych.
Zmiany w porównaniu z poprzednią wersją testową, opublikowaną w 2018 roku:
- Dodano wsparcie dla plików umożliwiających szybkie nadpisanie ustawień w stosunku do domyślnej konfiguracji;
- W kodzie zapewniono możliwość używania konstrukcji C++ zdefiniowanych w standardzie C++14 (do kompilacji wymagany jest kompilator obsługujący C++14);
- Dodano nowy obsługiwacz VXLAN;
- Udoskonalono wyszukiwanie typów zawartości na podstawie zawartości przy użyciu zaktualizowanych alternatywnych realizacji algorytmów i ;
- System inspekcji ruchu HTTP/2 jest prawie gotowy do użycia;
- Przyspieszono uruchamianie dzięki wykorzystaniu wielu wątków do kompilacji zestawów reguł;
- Dodano nowy mechanizm rejestrowania logów;
- Udoskonalone wykrywanie błędów Lua oraz zoptymalizowana praca whitelist;
- Wprowadzono zmiany umożliwiające dynamiczne przeładowanie ustawień;
- Dodano system inspekcji RNA (Real-time Network Awareness), zbierający informacje o dostępnych w sieci zasobach, hostach, aplikacjach i usługach;
- W celu uproszczenia ustawień zaprzestano używania snort_config.lua oraz SNORT_LUA_PATH.
Źródło: opennet.ru
