Kiedyś do ochrony lokalnej sieci wystarczał zwykły zapora sieciowa i programy antywirusowe, jednakże przeciwko atakom nowoczesnych hakerów i ostatnio rozprzestrzeniającemu się złośliwemu oprogramowaniu taki zestaw już nie jest wystarczająco skuteczny. Stara, dobra zapora analizuje tylko nagłówki pakietów, przepuszczając lub blokując je zgodnie z zestawem formalnych reguł. O zawartości pakietów nic nie wie, przez co nie może rozpoznać z pozoru legalnych działań przestępców. Programy antywirusowe nie zawsze chwytają złośliwe oprogramowanie, dlatego przed administratorem staje zadanie monitorowania nietypowej aktywności i terminowego izolowania zainfekowanych hostów.
Istnieje wiele zaawansowanych narzędzi pozwalających chronić infrastrukturę IT firmy. Dziś porozmawiamy o systemach wykrywania i zapobiegania włamaniom z otwartym kodem źródłowym, które można wdrożyć bez zakupu kosztownego sprzętu i licencji oprogramowania.
Klasyfikacja IDS/IPS
IDS (System Wykrywania Włamaniami) — to system przeznaczony do rejestrowania podejrzanych działań w sieci lub na poszczególnym komputerze. Prowadzi dzienniki zdarzeń i powiadamia odpowiedzialnego za bezpieczeństwo informacji pracownika o tych zdarzeniach. W skład IDS można wyróżnić następujące elementy:
- czujniki do monitorowania ruchu sieciowego, różnych dzienników itp.
- podsystem analizy, wykrywający w otrzymanych danych oznaki złośliwego wpływu;
- magazyn do gromadzenia pierwotnych zdarzeń i wyników analizy;
- konsolę zarządzania.
Początkowo IDS klasyfikowano według miejsca lokalizacji: mogły być skoncentrowane na ochronie pojedynczych węzłów (oparte na hoście, czyli Host Intrusion Detection System — HIDS) lub chronić całą sieć korporacyjną (oparte na sieci, czyli Network Intrusion Detection System — NIDS). Należy wspomnieć o tzw. APIDS (Application protocol-based IDS): śledzą one ograniczony zestaw protokołów warstwy aplikacji w celu wykrywania specyficznych ataków i nie zajmują się głęboką analizą pakietów sieciowych. Takie produkty zazwyczaj przypominają proxy i są używane do ochrony konkretnych usług: serwera WWW i aplikacji internetowych (np. napisanych w PHP), serwerów baz danych itp. Typowym przedstawicielem tej klasy jest mod_security dla serwera WWW Apache.
Interesują nas przede wszystkim uniwersalne NIDS, które obsługują szeroki zestaw protokołów komunikacyjnych oraz technologie głębokiej analizy pakietów DPI (Deep Packet Inspection). Monitorują cały przechodzący ruch, począwszy od poziomu łącza, i identyfikują szeroki wachlarz ataków sieciowych oraz próby nieautoryzowanego dostępu do informacji. Często takie systemy wyróżniają się rozproszoną architekturą i mogą współdziałać z różnym aktywnym sprzętem sieciowym. Warto zauważyć, że wiele nowoczesnych NIDS jest hybrydowych i łączy kilka podejść. W zależności od konfiguracji i ustawień mogą rozwiązywać różne zadania — na przykład ochrony jednego węzła lub całej sieci. Ponadto funkcje IDS dla stacji roboczych przejęły pakiety antywirusowe, które w wyniku rozpowszechnienia trojanów ukierunkowanych na kradzież informacji przekształciły się w wielofunkcyjne zapory ogniowe, które rozwiązują również zadania rozpoznawania i blokowania podejrzanego ruchu.
Na początku IDS mogły jedynie wykrywać działania złośliwego oprogramowania, pracę skanerów portów lub, powiedzmy, naruszenia polityki bezpieczeństwa przez użytkowników. W przypadku wystąpienia określonego zdarzenia informowały administratora, ale dość szybko stało się jasne, że samo rozpoznanie ataku to za mało — należy go zablokować. W ten sposób IDS przekształciły się w IPS (Intrusion Prevention Systems) — systemy zapobiegania włamaniom, które potrafią współdziałać z zaporami sieciowymi.
Metody wykrywania
Nowoczesne rozwiązania do wykrywania i zapobiegania włamaniom wykorzystują różne metody określania złośliwej aktywności, które można podzielić na trzy kategorie. Daje to kolejną możliwość klasyfikacji systemów:
- IDS/IPS sygnaturowe identyfikują w ruchu pewne wzorce lub śledzą zmiany stanu systemów w celu określenia ataku sieciowego lub próby infekcji. Praktycznie nie dają fałszywych alarmów i błędnych wyzwalaczy, ale nie potrafią wykryć nieznanych zagrożeń.
- Systemy IDS do wykrywania anomalii nie wykorzystują sygnatur ataków. Rozpoznają one zachowania różniące się od normalnych w systemach informacyjnych (w tym anomalii w ruchu sieciowym) i mogą zidentyfikować nawet nieznane ataki. Takie systemy generują wiele fałszywych alertów i w przypadku nieumiejętnego użycia mogą sparaliżować działanie lokalnej sieci.
- Systemy IDS oparte na regułach działają według zasady: if FAKT then DZIAŁANIE. W praktyce są to systemy ekspertowe z bazami wiedzy — zbiorami faktów i reguł logicznego wnioskowania. Takie rozwiązania są pracochłonne w konfiguracji i wymagają od administratora szczegółowego zrozumienia działania sieci.
Historia rozwoju IDS
Era dynamicznego rozwoju Internetu i sieci korporacyjnych rozpoczęła się w latach 90. XX wieku, jednak specjaliści zaczęli zajmować się zaawansowanymi technologiami bezpieczeństwa sieci nieco wcześniej. W 1986 roku Dorothy Denning i Peter Neumann opublikowali model IDES (Intrusion Detection Expert System), który stał się podstawą większości współczesnych systemów wykrywania intruzów. Wykorzystywał system ekspertowy do identyfikacji znanych rodzajów ataków, a także metody statystyczne i profile użytkowników/systemów. IDES działała na stacjach roboczych Sun, analizując ruch sieciowy i dane aplikacji. W 1993 roku wydano NIDES (Next-generation Intrusion Detection Expert System) — system ekspertowy nowej generacji do wykrywania intruzów.
Na podstawie prac Denninga i Neimana w 1988 roku powstał system ekspercki MIDAS (Multics intrusion detection and alerting system), wykorzystujący P-BEST i LISP. W tym samym czasie stworzono system oparty na metodach statystycznych Haystack. Rok później w Laboratorium Narodowym Los Alamos opracowano kolejny statystyczny detektor anomalii W&S (Wisdom & Sense). Rozwój branży postępował w szybkim tempie. Na przykład w 1990 roku w systemie TIM (Time-based inductive machine) już zaimplementowano wykrywanie anomalii z wykorzystaniem uczenia indukcyjnego na sekwencyjnych wzorcach użytkownika (język Common LISP). NSM (Network Security Monitor) w celu wykrywania anomalii porównywał macierze dostępu, a ISOA (Information Security Officer’s Assistant) wspierał różne strategie wykrywania: metody statystyczne, kontrolę profilu i system ekspercki. Stworzony w AT&T Bell Labs system ComputerWatch wykorzystywał zarówno metody statystyczne, jak i reguły, a pierwszy prototyp rozproszonego IDS, DIDS (Distributed intrusion detection system), został opracowany przez twórców Uniwersytetu Kalifornijskiego w 1991 roku jako system ekspercki.
Początkowo IDS były własnościowe, ale już w 1998 roku Narodowa Laboratoria im. Lawrence'a w Berkeley wydało Bro (w 2018 roku zmienione na Zeek) — system z otwartym kodem źródłowym, wykorzystujący własny język reguł do analizy danych libpcap. W listopadzie tego samego roku pojawił się sniffer pakietów APE, korzystający z libpcap, który po miesiącu został przemianowany na Snort, a później stał się pełnoprawnym IDS/IPS. Wtedy zaczęły się również pojawiać liczne rozwiązania własnościowe.
Snort i Suricata
W wielu firmach preferują darmowe IDS/IPS z otwartym kodem źródłowym. Przez długi czas standardowym rozwiązaniem była już wspomniana Snort, ale obecnie wyprzedził ją system Suricata. Przyjrzyjmy się ich zaletom i wadom nieco bliżej. Snort łączy zalety metody sygnaturowej z możliwością wykrywania anomalii w czasie rzeczywistym. Suricata pozwala również na stosowanie innych metod poza rozpoznawaniem ataków na podstawie sygnatur. System został stworzony przez grupę deweloperów, którzy odłączyli się od projektu Snort i od wersji 1.4 wspiera funkcje IPS, podczas gdy w Snort możliwość zapobiegania włamaniom pojawiła się później.
Główna różnica między dwoma popularnymi produktami polega na tym, że Suricata ma możliwość wykorzystania GPU do obliczeń w trybie IDS, a także bardziej zaawansowaną IPS. System ten jest początkowo zaprojektowany dla pracy wielowątkowej, podczas gdy Snort jest produktem jednowątkowym. Z powodu swojej długiej historii i odziedziczonego kodu, nie optymalnie wykorzystuje wieloprocesorowe/wielordzeniowe platformy sprzętowe, podczas gdy Suricata na standardowych komputerach ogólnego przeznaczenia może przetwarzać ruch do 10 Gbit/s. O podobieństwach i różnicach między tymi systemami można rozmawiać długo, ale chociaż silnik Suricata działa szybciej, dla nieco węższych pasm nie ma to zasadniczego znaczenia.
Opcje wdrożenia
IPS należy umieścić w taki sposób, aby system mógł obserwować segmenty sieci, które kontroluje. Najczęściej jest to dedykowany komputer, którego jeden interfejs jest podłączony za urządzeniami brzegowymi i "spogląda" na niezabezpieczone sieci publiczne (Internet). Drugi interfejs IPS jest podłączany na wejściu chronionego segmentu, tak aby cały ruch przepływał przez system i był analizowany. W bardziej złożonych przypadkach może być kilka chronionych segmentów: na przykład w sieciach korporacyjnych często tworzy się strefę zdemilitaryzowaną (DMZ) z usługami dostępnymi z Internetu.

Taki IPS może zapobiegać próbom skanowania portów lub włamań poprzez łamanie haseł, wykorzystaniu luk w serwerze pocztowym, serwerze WWW lub w skryptach, a także innym rodzajom zewnętrznych ataków. W przypadku infekcji komputerów w sieci lokalnej złośliwym oprogramowaniem, IDS zablokuje im możliwość kontaktu z zewnętrznymi serwerami botnetu. Dla bardziej zaawansowanej ochrony sieci wewnętrznej najprawdopodobniej wymagana będzie skomplikowana konfiguracja z rozproszonym systemem oraz drogimi przełącznikami zarządzanymi, które mogą odbijać ruch na podłączonych do jednego z portów interfejsie IDS.
Często sieci korporacyjne są narażone na rozproszone ataki typu DDoS (Distributed Denial of Service). Chociaż nowoczesne IDS potrafią z nimi walczyć, przedstawiona wyżej konfiguracja tu niewiele pomoże. System rozpoznaje złośliwą aktywność i blokuje niepożądany ruch, ale dane muszą przejść przez zewnętrzne połączenie internetowe i dotrzeć do jego interfejsu sieciowego. W zależności od intensywności ataku, kanał przesyłowy może nie wytrzymać obciążenia, a cele atakujących zostaną osiągnięte. W takich przypadkach zalecamy uruchomienie IDS na wirtualnym serwerze z wyraźnie lepszym połączeniem internetowym. Można podłączyć VPS do lokalnej sieci przez VPN, a następnie skonfigurować routowanie całego ruchu zewnętrznego. Wtedy w przypadku ataku DDoS nie będzie potrzeby przesyłania danych przez połączenie z dostawcą, zostaną one zablokowane na zewnętrznym węźle.

Problem wyboru
Bardzo trudno jest wyłonić lidera wśród darmowych systemów. Wybór IDS/IPS zależy od topologii sieci, wymaganych funkcji ochrony oraz osobistych preferencji administratora i jego chęci do zabawy z konfiguracją. Snort ma dłuższą historię i lepiej udokumentowany, chociaż informacje na temat Suricaty także można łatwo znaleźć w sieci. Tak czy inaczej, aby opanować system, trzeba będzie włożyć w to pewien wysiłek, który ostatecznie się opłaci - komercyjne sprzętowe i sprzętowo-programowe IDS/IPS są dość drogie i nie zawsze mieszczą się w budżecie. Nie warto żałować straconego czasu, ponieważ dobry administrator zawsze rozwija swoje umiejętności na koszt pracodawcy. W tej sytuacji wszyscy zyskują. W następnym artykule przyjrzymy się kilku opcjom uruchomienia Suricaty i praktycznie porównamy nowocześniejszy system z klasycznym IDS/IPS Snort.
Źródło: habr.com
