Firma Cisco o formowaniu kandydata do wydania całkowicie przebudowanego systemu zapobiegania atakom , znanego również jako projekt Snort++, prace nad którym prowadzone są z przerwami od 2005 roku. Stabilne wydanie planowane jest na publikację w ciągu miesiąca.
W gałęzi Snort 3 całkowicie przemyślano koncepcję produktu i przebudowano architekturę. Wśród kluczowych obszarów rozwoju Snort 3: uproszczenie konfiguracji i uruchamiania Snort, automatyzacja konfiguracji, uproszczenie języka definiowania reguł, automatyczne rozpoznawanie wszystkich protokołów, dostarczenie powłoki do zarządzania z linii poleceń, aktywne stosowanie wielowątkowości z równoczesnym dostępem różnych przetwarzaczy do jednej 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 . Dodano system inspekcji ruchu 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.
- Dodano wsparcie dla plików do szybkiego nadpisywania ustawień, względem domyślnej konfiguracji. W celu uproszczenia konfiguracji zaprzestano używania snort_config.lua i SNORT_LUA_PATH.
Dodano wsparcie dla dynamicznego przeładowania ustawień; - 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 ;
- Przyspieszono uruchamianie dzięki wykorzystaniu wielu wątków do kompilacji zestawów reguł;
- Dodano nowy mechanizm rejestrowania logów;
- Dodano system inspekcji RNA (Real-time Network Awareness), zbierający informacje o dostępnych w sieci zasobach, hostach, aplikacjach i usługach.
Źródło: opennet.ru
