Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.


26.10.2020

Nowa wersja nVision

Można już pobierać nową wersję nVision
26.10.2020

Monitorowanie infrastruktury

Vertiv Environet Alert
23.10.2020

Telefonia w chmurze

NFON Cloudya
23.10.2020

Nowości w EDR

Bitdefender GravityZone
23.10.2020

Wykrywanie anomalii

Flowmon ADS11
23.10.2020

Mobilny monitor

AOC 16T2
22.10.2020

HP Pavilion

HP zaprezentowało nowe laptopy z linii Pavilion.
22.10.2020

Inteligentny monitoring

WD Purple SC QD101
22.10.2020

Przełącznik 2,5GbE

QNAP QSW-1105-5T

Suricata – IDS, IPS i NSM za darmo

Data publikacji: 26-03-2020 Autor: Marcin Jurczyk
EveBox to jeden z projektów...

Systemy wykrywania i zapobiegania atakom sieciowym stanowią jedną z warstw w wielowarstwowej architekturze bezpieczeństwa. Obecnie bardzo często funkcjonalność ta jest zintegrowana w ramach pojedynczego urządzenia klasy NGFW, ale w dalszym ciągu istnieje możliwość separacji różnych funkcji ochronnych, a co najważniejsze, można wybierać spośród wielu rozwiązań open source, takich jak Suricata.

 

Gdyby przeprowadzić ankietę na temat popularności darmowych rozwiązań typu Intrusion Detection System/Intrusion Prevention System (IDS/IPS) to najczęściej wymieniany w niej byłby z pewnością Snort. Nie powinno wzbudzać to zdziwienia, bowiem pozostaje on jednym z najstarszych dostępnych na rynku rozwiązań tego typu, a jego początki sięgają jeszcze 1998 roku. O powodzeniu, jakim się cieszy, świadczy także to, że w 2013 roku komercyjna część projektu pod nazwą Sourcefire została wchłonięta przez firmę Cisco, a więc lidera rynku szeroko rozumianych rozwiązań sieciowych. Na temat Snorta znaleźć można mnóstwo materiałów, w tym dokumentów typu HOWTO i filmów instruktażowych w serwisie YouTube. W sieci nie brakuje również towarzyszących mu projektów, które uzupełniają jego podstawową funkcjonalność. Śladami Snorta podąża prawdopodobnie drugie najpopularniejsze rozwiązanie tej klasy, a mianowicie testowana w tym numerze Suricata. Premiera pierwszego stabilnego wydania tego oprogramowania miała miejsce względnie niedawno, bo w 2010 roku. Za jego rozwój odpowiada organizacja non profit Open Information Security Foundation (OISF). Dwanaście lat różnicy pomiędzy premierą Snorta a Suricaty stanowi w świecie IT prawdziwą przepaść. Nie stawia to jednak nowszego programu na przegranej pozycji. Jego twórcy mieli bowiem solidne podstawy, aby podczas pracy nad projektem wyeliminować przy okazji najpoważniejsze wady Snorta, pozostając w zgodzie z przyjętymi przez lata standardami. Sprawdźmy zatem, jak dobrą alternatywą dla Snorta będzie Suricata.


> ARCHITEKTURA


Suricata to oprogramowanie mogące realizować funkcje IDS/IPS oraz NSM (Network Security Monitoring). Ponadto umożliwia analizę ruchu historycznego, zapisanego w formacie PCAP. Sama również potrafi logować ruch do tego formatu, który de facto jest standardem wśród wszelkiego rodzaju snifferów sieciowych, jak chociażby Wireshark. Suricata integruje się także z linuksowym mechanizmem filtrowania ruchu sieciowego netfilter. Dzięki temu może działać w trybie inline IPS, a więc niepasywnej detekcji zagrożeń, a także w trybie natychmiastowego reagowania. Podobnie jak w przypadku Snorta silnik Suricaty został napisany w języku C, co zazwyczaj jest wyznacznikiem wydajności.


Suricata oferuje pełne wsparcie dla wielowątkowości, co w przypadku jej największego konkurenta dostępne jest dopiero od wersji 3.0, pozostającej w dalszym ciągu w stadium testów beta. Multi-threading jest sporym atutem, szczególnie w przypadku wymagających implementacji, w pełni wykorzystujących wszystkie rdzenie procesora. Przepustowość współczes­nych sieci rośnie w dość wyraźny sposób, a zatem wydajność podzespołów komputerowych potrzebnych do analizy ruchu to jeden z podstawowych czynników branych pod uwagę przy doborze odpowiedniego rozwiązania sprzętowego. W przypadku Suricaty ten sam pakiet może być przetwarzany na poziomie pojedynczego wątku, ale w tym samym czasie możliwe jest też przetwarzanie większej liczby różnych pakietów na poziomie wielu wątków. Każdy z modułów Suricaty to oddzielny wątek przetwarzania, tak więc przejście jednego pakietu przez kilka modułów przetwarzania odbywa się za pośrednictwem kolejkowania. Przykładowe przetwarzanie może polegać na przejściu przez moduły dekodowania, detekcji czy w końcu moduł wyjścia.


Sposób organizacji wątków, modułów oraz kolejki nazywany jest trybem pracy (runmode). Dostępne są trzy tryby – single, workers oraz autofp. Najprostszy z nich to single. Jak sama nazwa wskazuje, to tryb jednowątkowego przetwarzania pakietów. Tryb workers z kolei umożliwia równoległe przetwarzanie pakietów, a więc typowy multi-threading. Jest to również najbardziej wydajna metoda pracy, wykorzystująca przy okazji możliwości sterownika kontrolera sieciowego. Hybrydowym rozwiązaniem jest z kolei tryb autofp, wykorzystywany głównie przy przetwarzaniu plików PCAP czy przy implementacji Suricaty jako inline IPS. W trybie tym istnieje jeden lub więcej wątków przechwytywania i dekodowania pakietów, które w dalszym kroku przekazywane są do wielu wątków przetwarzania pakietów (więcej na temat organizacji wielowątkowości i trybów pracy znajdziemy w dokumentacji projektu – suricata.readthedocs.io). Jest to istotne zagadnienie, bowiem pozostaje ono bezpośrednio związane z wydajnością całego oprogramowania. Warto więc zainteresować się dostępnymi sposobami przechwytywania pakietów, jak chociażby AF_PACKET czy PF_RING, oraz dokładnie sprawdzić możliwości adaptera sieciowego i jego sterownika, gdyż nie wszystkie opcje sprzętowego wspomagania przetwarzania pakietów będą działać z wybranymi trybami pracy Suricaty, co będzie kluczowe przy tuningu.


Kolejną cechą Suricaty jest analiza ruchu na poziomie aplikacyjnym, a więc 7 warstwy modelu OSI. Oznacza to, że wybrane aplikacje rozpoznawane są nie na podstawie portu warstwy 4, ale cech charakterystycznych danego protokołu, dzięki czemu można dopasować odpowiednie reguły lub osobne ustawienia logowania dla wybranego protokołu. Łatwo też wychwycić ewentualne próby tunelowania ruchu poprzez popularne protokoły, jak chociażby DNS tunneling. Oczywiście od wersji 2.9.7 konkurencyjny Snort został również wyposażony w podobną funkcjonalność o nazwie OpenAppID. Zasada jego działania jest tu jednak nieco inna. Suricata na chwilę obecną rozpoznaje następujące protokoły: HTTP, SSL, TLS, SMB, DCERPC, SMTP, FTP, SSH, DNS, Modbus, ENIP/CIP, DNP3, NFS, NTP, DHCP, TFTP, KRB5, IKEv2, SIP, SNMP oraz RDP. Lista ta zawiera zarówno najpopularniejsze usługi wykorzystywane zarówno w sieciach LAN, jak również w sieciach przemysłowych. Obok rozpoznawania ruchu warstwy 7 Suricata identyfikuje również całą grupę protokołów warstw niższych, od IPv4 i IPv6, poprzez TCP, UDP, ICMPv4 i v6, Ethernet, PPP, PPPoE, RAW, SLL, VLAN, QinQ, MPLS czy RSPAN. Ponadto Suricata pozwala na rozbudowaną analizę ruchu TCP/IP, jak chociażby rozpoznawanie ruchu tunelowanego za pośrednictwem najpopularniejszych protokołów, jak: Toredo, IP-IP, IP6-IP4, IP4-IP6, GRE czy VXLAN. Możliwa jest także defragmentacja pakietów IP oraz składanie strumieni TCP wraz ze śledzeniem sesji.


Inną, równie ciekawą opcją Suricaty jest możliwość ekstrakcji plików transmitowanych za pośrednictwem wybranych protokołów. Przechwytywanie odbywa się z wykorzystaniem parserów warstwy aplikacyjnej, silnika streamowania oraz silnika składającego pakiety w ciąg logiczny. O tym, jakie pliki mają być zapisywane na dysku, decydują zdefiniowane reguły. Lista wspieranych protokołów, dla których jest to możliwe, obejmuje HTTP, SMTP, FTP, NFS oraz SMB. Zapisane pliki można poddać dalszej analizie, na przykład antywirusowej.

 

[...]

 

Autor jest architektem w międzynarodowej firmie z branży IT. Zajmuje się infrastrukturą sieciowo-serwerową, wirtualizacją infrastruktury i pamięcią masową.

Artykuł pochodzi z miesięcznika: IT Professional

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.

.

Transmisje online zapewnia: StreamOnline

All rights reserved © 2019 Presscom / Miesięcznik "IT Professional"