Wprowadzenie
Pomimo że wczesne typy sieciowych systemów wykrywania włamań sięgają wczesnych lat 80-tych, koncepcja IDS nabrała rozpędu, gdy Martin Roesch stworzył swój wolny i otwarty system IDS SNORT. Ze względu na jego lekką konstrukcję i elastyczne opcje wdrażania, baza użytkowników Snorta szybko rosła w kolejnych latach (obecnie sięga 400 000).
W 2001 roku Martin Roesch założył firmę Sourcefire (przejętą przez Cisco w 2013 roku) dla komercyjnego produktu IDS opartego na SNORT. Oryginalna darmowa i open-source’owa wersja SNORT pozostała jednak dostępna i nadal jest szeroko stosowana w sieciach na całym świecie. W międzyczasie niektórzy konkurenci zyskali przewagę w dziedzinie open source IDS, w szczególności Suricata IDS.
Jakie są główne różnice między nimi i czego możemy się spodziewać w przyszłości od SNORTa?
Reguły
Rozwiązanie IDS jest tylko tak dobre, jak dostępne reguły, które może zastosować do monitorowanego ruchu. Snort zawsze miał duże wsparcie społeczności, co zaowocowało pokaźnym zbiorem reguł, regularnie aktualizowanym. Składnia reguł jest dość prosta, a struktura programu pozwala każdemu wdrożyć własne reguły do swojego IDS lub podzielić się nimi ze społecznością.
Niektóre komercyjne firmy rozwijają również reguły SNORT, które można zakupić za miesięczną lub roczną opłatą. Niektóre przykłady to reguły SO/VRT firmy Talos (udostępniane za darmo po miesiącu) i CrowdStrikes Threat Intelligence Services.
Suricata może używać tych samych reguł co SNORT. Wiele reguł VRT, ale nie wszystkie, nadal działa. Suricata ma swój własny zestaw reguł, początkowo udostępniany płacącym abonentom, ale po 30-60 dniach dostępny za darmo: Emerging Threats. Reguły Suricaty w większym stopniu wykorzystują dodatkowe funkcje, które Suricata ma do zaoferowania, takie jak wykrywanie portów, automatyczne wykrywanie i ekstrakcja plików.
Detekcja aplikacji
Od wczesnych dni istnienia Snorta mówi się, że Snort nie jest „application-aware”. Po prostu patrzy na ruch pasujący do jego reguł i podejmuje działanie (alert, drop i tak dalej), gdy występuje dopasowanie. Preprocesory pomagają poprzez kształtowanie ruchu do formatu użytecznego dla reguł do zastosowania: na przykład, wykonując dekompresję i dekodowanie, ale nie było potrzeby, aby Snort rozumiał, jaka aplikacja wygenerowała dane.
Wymagania biznesowe zmieniły się jednak w czasie i aby dostosować się do rynku, Snort wprowadził OpenAppID w wersji 2.9.7 w 2014 roku. OpenAppID umożliwia wykrywanie aplikacji poprzez tak zwane Layer 7 Detectors. Chociaż istnienie znanej aplikacji nie zawsze jest bezpośrednim incydentem bezpieczeństwa (na przykład korzystanie z Dropbox), to pozwala na lepsze zrozumienie tego, co istnieje w sieci. Nie tylko można znaleźć wcześniej nieznane aplikacje, ale także zrzucić ich ruch lub ostrzec o nich poprzez powiązanie AppID z tradycyjną regułą SNORT IDS/IPS.
Suricata działa nieco inaczej w tej przestrzeni. Obsługuje reguły wykrywania warstwy aplikacji i może, na przykład, zidentyfikować ruch HTTP lub SSH na niestandardowych portach w oparciu o protokoły. Następnie zastosuje specyficzne dla protokołu ustawienia dziennika do tych detekcji.
Nie ma tak naprawdę lepszego lub gorszego produktu w tej przestrzeni, to naprawdę zależy od tego, czego firma szuka i który system najlepiej wypełnia luki w wykrywaniu. Ponieważ oba są w pełni open-source, utworzenie środowiska testowego jest stosunkowo szybkie i niedrogie.
Wielowątkowość
Jedną z głównych zalet Suricaty jest to, że została opracowana znacznie później niż Snort. Oznacza to, że ma na pokładzie o wiele więcej funkcji, które w dzisiejszych czasach są praktycznie nie do pominięcia. Jedną z tych cech jest wsparcie dla wielowątkowości.
Wraz ze wzrostem ruchu w sieci na przestrzeni lat, wzrosły również wymagania dotyczące przetwarzania danych przez urządzenia IDS (mierzone w pakietach na sekundę). Na szczęście Suricata obsługuje wielowątkowość od razu po wyjęciu z pudełka. Snort natomiast nie obsługuje wielowątkowości. Bez względu na to, ile rdzeni zawiera procesor, tylko jeden rdzeń lub wątek będzie używany przez Snorta.
Istnieje dość skomplikowane obejście: uruchomienie wielu pojedynczych instancji SNORT, wszystkie zasilające ten sam dziennik. Jednak dodatkowe koszty zarządzania tym procesem (AutoFP) i wysoki koszt sprzętu sprawiają, że takie rozwiązanie jest rzadko spotykane w środowiskach produkcyjnych. SNORT3 będzie obsługiwał wielowątkowość, ale wciąż jest w fazie Alpha, działając jako Snort++. Oczywiście, nie jest zalecane używanie produktu w fazie Alpha w środowisku produkcyjnym. Wielowątkowość jest niewątpliwie silnym argumentem, aby rozważyć Suricatę zamiast Snorta.
Wyciąganie plików
Suricata obsługuje wyciąganie plików. Jest to niezwykle przydatna funkcja, która pozwala na automatyczne wyodrębnienie wybranych plików po uruchomieniu reguły zawierającej opcję „filestore”. Możliwe jest, na przykład, wyodrębnienie wszystkich plików .pdf lub wszystkich jednopikselowych plików .png i przechowywanie ich we wstępnie skonfigurowanym folderze do dalszej ręcznej analizy, sprawdzenia w VirusTotal lub nawet automatycznego sandboxingu.
Alternatywy
Pomimo, że Snort i Suricata są z pewnością najpopularniejszymi systemami wykrywania włamań typu open-source, istnieją pewne alternatywy. Wspomniane wcześniej zaktualizowane wydanie SNORT3 wygląda bardzo obiecująco, z jego wsparciem dla wielowątkowości, identyfikacją usług i bardziej prostym językiem reguł. Prace nad tym systemem trwają już od wielu lat. Jednak faza Alpha sięga roku 2014, a data wydania wersji produkcyjnej nie została jeszcze ustalona.
Istnieją również alternatywy dla tradycyjnych rozwiązań IDS/IPS, ale mogą one czasami działać nieco inaczej. Bro Network Security Monitor (obecnie znany jako Zeek), na przykład, jest bardziej systemem wykrywania anomalii. Podczas gdy Snort i Suricata działają w oparciu o tradycyjne sygnatury IDS, Bro/Zeek wykorzystuje skrypty do analizowania ruchu sieciowego.
Istotną zaletą Bro/Zeek jest to, że skrypty te pozwalają również na wysoce zautomatyzowane przepływy pracy pomiędzy różnymi systemami, co jest podejściem pozwalającym na podejmowanie decyzji znacznie bardziej granularnych niż stare działania typu pass or drop. Jego konfiguracja może jednak stać się dość skomplikowana.
Wnioski
Istnieje kilka dobrych rozwiązań IDS opartych na otwartych źródłach. Jednak ze względu na różnice między nimi, nie wszystkie rozwiązania sprawdzą się w każdym środowisku. Wybór najlepszych produktów powinien być oparty na tym, jakie inne, potencjalnie nakładające się produkty bezpieczeństwa są już stosowane, jaki rodzaj ruchu przechodzi przez sieć, ilość ruchu i zestaw umiejętności dostępnego personelu IT.
.