Zapory ogniowe pomagają w ochronie „przejść granicznych”, ale z reguły nie są wystarczające do obrony przed hakerami. Uzupełnieniem zapór ogniowych są metody wykrywania prób nielegalnego naruszania granic sieci i przeciwdziałania takim praktykom. Wykrywanie włamań jest procesem identyfikowania i reagowania na nieuprawnioną działalność skierowaną przeciwko zasobom informatycznym. Od dobrych kilku lat dostępne są zaawansowane techniki wykrywania nieautoryzowanych prób penetracji sieci. Pierwsze tego typu oprogramowanie pojawiło się w zastosowaniach militarnych w połowie lat dziewięćdziesiątych. Od tego czasu na rynku zaczęły pojawiać się produkty komercyjne zdolne do wykrywania akcji hakerów.
Systemy wykrywania włamań (IDS – Intrusion Detection System) wykorzystuje się głównie jako uzupełnienie ochrony realizowanej przez zapory ogniowe. Zapory ogniowe stanowią pierwszą linię obrony sieci, a systemy wykrywania włamań drugą, gdzie stosuje się metody wykrywania prób nielegalnej penetracji sieci i reaguje na takie działania.
Identyfikacja włamania może nastąpić przed, podczas lub po wystąpieniu działalności nieuprawnionej z punktu widzenia polityki ochrony systemu. Jeśli identyfikacja zostanie dokonana przed zaistnieniem nieuprawnionej działalności, to wówczas reakcją może być zapobieżenie jej wystąpieniu. Identyfikacja dokonana w trakcie działalności nieuprawnionej pociąga za sobą konieczność podjęcia decyzji o jej przerwaniu lub kontynuowaniu w celu uzyskania szczegółowych danych o napastniku. Jeżeli identyfikacja włamania nastąpi post factum, potrzebna jest ocena zakresu wyrządzonych szkód – jeśli takie zaistniały.
Reakcja na włamanie następuje na ogół po jego zidentyfikowaniu, chociaż są systemy, w których stosowana jest analiza predykcyjna, służąca do przewidywania zdarzeń i zapobiegania skutkom ich wystąpienia. W procesie reagowania można zablokować usługę, dokładnie zidentyfikować agresora, a także wyprowadzić kontratak, eliminujący możliwość dalszego działania napastnika.
Podstawą wykrywania włamań jest monitorowanie. Systemy wykrywania włamań opierają się na informacjach dotyczących aktywności chronionego systemu. Z monitorowaniem wiąże się wiele kwestii technicznych i operacyjnych. Do najistotniejszych należą między innymi dostatecznie wczesne wykrywanie i wydajność systemu – wystarczająca do monitorowania aktywności i realizacji normalnych zadań. Stopień spełnienia tych kryteriów przesądza zazwyczaj o powodzeniu wykrycia faktycznych włamań.
Systemy wykrywania włamań generują raporty kierowane do infrastruktury zabezpieczeń i ochrony systemu. Infrastruktura ta może być wbudowana w jednostkę monitorowania włamań lub stanowić element samodzielny. W obu przypadkach sposób przetwarzania uzyskanych informacji, ich zapisu, udostępniania i wykorzystania w celu obniżenia ryzyka jest jednym z trudniejszych aspektów praktycznej implementacji systemu wykrywania włamań.
Podstawą analiz aktywności systemu są sygnatury zachowań odbiegających od normy. Użycie sygnatur nienormalnego zachowania, zwanych także sygnaturami lub wzorcami ataków, jest szczególnie częste w systemach wykrywania włamań na bieżąco. Sygnatury zazwyczaj występują w jednej z dwóch wersji:
Jedną z metod monitorowania jest też pełna analiza protokołów wszystkich warstw, zamiast prostego porównywania wzorców ataków. Chociaż wydawać by się mogło, że analiza protokołów w każdym pakiecie może być mało efektywna w zestawieniu z relatywnie prostym porównywaniem wzorców w pojedynczym pakiecie, to jednak trzeba mieć na uwadze fakt, że liczba sygnatur ataków stale rośnie, a problem ten rozwiązuje się często instalowaniem wielu sensorów IDS, z których każdy obsługuje pewien podzbiór sygnatur. Przewaga tej metody polega głównie na tym, że protokoły i systemy operacyjne są budowane na podstawie standardów – stosunkowo łatwo więc zidentyfikować pakiet odbiegający od normy. Ponadto algorytm analizy protokołu może dynamicznie identyfikować wszystkie niepoprawne oraz nadmiarowe pakiety i zatrzymywać je, zanim osiągną stos TCP/IP. Nowe rodzaje ataków wymagają co prawda uaktualniania algorytmów analizy, ale zazwyczaj wykonuje się je metodą uzupełniania zmiennych algorytmu. Ujemną stroną takiego podejścia jest to, że zmiana algorytmu może trwać znacznie dłużej niż dodanie nowego wzorca.
Spis treści |
Skuteczność wykrywania intruzów zależy od architektury rozwiązania i swobody konfigurowania przez użytkownika. Większość rozwiązań oparta jest na technice agentów (sensorów), których moduły rozmieszczane są w newralgicznych punktach sieci. Zadaniem tych agentów jest zbieranie informacji o możliwych atakach. Agenci wykrywają naruszenia ustalonych reguł polityki ochrony i wysyłają powiadomienia o takich naruszeniach na konsolę zarządzania. Systemy oparte na sensorach są skuteczniejsze w sieciach przełączanych, w których nie istnieje pojedynczy punkt przejścia dla całego ruchu. Zamiast strzec pojedynczego połączenia agent monitoruje cały ruch wychodzący i przychodzący do urządzenia, na którym rezyduje, tak więc intruz nie może ukryć się wewnątrz przełącznika. Natomiast rozwiązania scentralizowane monitorują ruch w segmencie, w którym są zlokalizowane.
Systemy wykrywania włamań można podzielić na trzy kategorie:
Rozwiązania te opierają się na modułach agentów (sensorów) rezydujących na wszystkich monitorowanych hostach. Moduły te analizują logi zdarzeń, krytyczne pliki systemu i inne sprawdzalne zasoby, poszukując nieautoryzowanych zmian lub podejrzanej aktywności.
Monitorowane są m.in. próby logowania do systemu i odnotowywane używanie niewłaściwego hasła – jeżeli próby takie powtarzają się wielokrotnie, w krótkich odcinkach czasu, można założyć, że ktoś próbuje dostać się do systemu nielegalnie. Innym sposobem jest monitorowanie stanu plików systemowych i aplikacyjnych oraz rejestrów Windows. Wykonuje się to metodą „fotografii stanów”, rejestrując na początku stany istotnych plików. Jeżeli napastnikowi lub niektórym postaciom konia trojańskiego uda się uzyskać dostęp do sytemu i wykonać w nim zmiany, zostanie to zauważone (na ogół jednak nie w czasie rzeczywistym).
Większość systemów hostowych to systemy reaktywne – oczekujące na pojawienie się jakichś zdarzeń przed podniesieniem alarmu. Są jednak wśród nich także systemy działające z wyprzedzeniem (proaktywnie), monitorujące i przechwytujące odwołania do jądra systemu operacyjnego lub API, w celu zapobiegania atakom, jak również zarejestrowania tych faktów w dzienniku zdarzeń. Działania proaktywne mogą polegać także na monitorowaniu strumieni danych i środowisk specyficznych dla poszczególnych aplikacji (na przykład lokalizacji plików i ustawień rejestrów dla serwerów webowych), w celu ochrony tych aplikacji przed nowymi atakami, dla których nie istnieją jeszcze odpowiednie sygnatury w bazach danych IDS. Rozwiązania takie noszą czasem nazwę systemów zapobiegania włamaniom (IPS – Intrusion Prevention System), ponieważ ukierunkowane są na powstrzymywanie ataków, a nie tylko na proste informowanie o nich.
Rozwiązania te monitorują ruch sieciowy w czasie rzeczywistym, sprawdzając szczegółowo pakiety w celu namierzenia ataków typu DoS czy też niebezpiecznej zawartości przez nie przenoszonej, zanim osiągną one miejsce przeznaczenia. W swoim działaniu opierają się na porównywaniu pakietów z wzorcami (sygnaturami) ataków (attack signatures), przechowywanymi w bazie danych IDS, lub na analizie protokołów mającej na celu wykrywanie anomalii w ich wykonywaniu. Bazy danych sygnatur uaktualniane są regularnie przez dostawców pakietów IDS w miarę pojawiania się nowych form ataków.
Po wykryciu podejrzanej aktywności monitor sieciowy może zaalarmować obsługę sieci, a także zamknąć natychmiast podejrzane połączenie. Wiele tego typu rozwiązań integruje się z zaporami ogniowymi w celu ustalania dla nich nowych reguł blokowania ruchu, umożliwiających zablokowanie hakera już na zaporze ogniowej przy próbie kolejnego ataku.
Rozwiązania oparte na metodzie sieciowej funkcjonują w tzw. Trybie rozrzutnym (promiscous mode), polegającym na przeglądaniu każdego pakietu w kontrolowanym segmencie sieci, niezależnie od adresu przeznaczenia pakietu. Z uwagi na duże obciążenie, jakie niesie z sobą przeglądanie każdego pakietu, rozwiązania te wymagają zazwyczaj dedykowanego hosta.
Większość ataków budowanych jest na ciągu pakietów, wysłanych nierzadko w dużych odstępach czasu. Oznacza to konieczność przechowywania przez IDS pewnej liczby pakietów w jego wewnętrznym buforze w celu możliwości śledzenia całej sesji i porównania grupy pakietów z zawartością bazy danych sygnatur. Metoda ta, znana jako technika kontekstu stanów (maintaining state), pozwala na porównanie ostatnio otrzymanego pakietu z bazą danych w kontekście tego, co wydarzyło się już wcześniej podczas tej sesji.
Typ hybrydowego agenta IDS, wolny od niektórych ograniczeń sieciowych IDS. Agent taki pracuje w sposób podobny do sieciowych IDS – pakiety przechwytywane w sieci są porównywane z sygnaturami ataków z bazy danych – interesuje się jednak tylko pakietami adresowanymi do węzła, na którym rezyduje (stąd nazwa IDS węzła sieci, czasami też Stack-based IDS). Systemy takie są niekiedy określane jako „hostowe”, jednak termin ten dotyczy systemów skupiających się na monitorowaniu plików logu i analizie zachowań, natomiast sieciowe i węzłowe IDS skupiają się na analizie ruchu TCP – z tą jedynie różnicą, że NIDS pracuje w trybie „rozrzutnym”, podczas gdy NNIDS skupiają się na wybranych pakietach w sieci.
Fakt, że systemy NNIDS nie zajmują się wszystkimi pakietami krążącymi w sieci powoduje, iż pracują one znacznie szybciej i wydajniej, co pozwala na instalowanie ich na istniejących serwerach bez obawy przeciążenia go.
W tym przypadku trzeba zainstalować cały szereg agentów – jeden na każdym chronionym serwerze – a każdy z tych agentów musi przekazywać raporty do centralnej konsoli.
Systemy oparte na monitorowaniu sieci skupiają się na ochronie jej obszaru, a wykrywanie wtargnięć metodą hostową opiera się na specjalnym oprogramowaniu pracującym na serwerach i innych platformach typu „host”. Przyszłością IDS są jednak rozwiązania hybrydowe.
Systemy oparte na hostach mają przewagę w połączeniach szyfrowanych, takich jak sesje webowe SSL (Secure Socket Layer) czy połączeniach VPN (Virtual Private Network), ponieważ mają dostęp do danych niezaszyfrowanych. Systemy sieciowe wykrywania włamań nie mogą deszyfrować danych, muszą więc przepuszczać pakiety zaszyfrowane i niektóre typy ataków wykorzystują właśnie ten fakt. Natomiast IDS węzłów sieci, umieszczane w krytycznych punktach sieci i na wejściach do niej, mogą zapewnić dodatkowy poziom ochrony w ramach hybrydowego podejścia do wykrywania włamań łączącego różne typy produktów IDS.
Warstwowe rozwiązania systemów wykrywania wtargnięć w modelu sieciowym i hostowym podlegają ciągłej ewolucji. Systemy sieciowe zapewniają pokrycie szersze, bardziej wszechobecne, zwłaszcza wtedy, gdy są ściśle powiązane ze strukturą sieci. Równolegle rozwinięta na serwerach sieci korporacyjnej ochrona w modelu hostowym obsługuje kluczowe zasoby biznesowe.
IDS są często kombinacją różnych technik, obejmujących podejścia sieciowe, hostowe i hybrydowe. Ich zadaniem jest uzyskanie wglądu w to, co dzieje się w obrębie całej infrastruktury informatycznej: na ruterach, przełącznikach i serwerach, i przekazywanie takich informacji do systemów, które mogą podejmować odpowiednie decyzje na podstawie zebranych i skorelowanych powiadomień o zdarzeniach, nadchodzących ze wszystkich punktów infrastruktury.
Istotnym zagadnieniem w różnych rozwiązaniach IDS jest filtrowanie fałszywych alarmów. Alarmy takie stanowią poważny problem z powodu obciążania systemu nadmierną analizą zdarzeń, a z drugiej strony duży procent fałszywych alarmów – dochodzący niekiedy do dziewięćdziesięciu – powoduje spadek czujności personelu (nierzadko spotyka się sytuacje wyłączania alarmów z powodu natarczywości alarmów fałszywych i analizowania zdarzeń post factum).
Szereg pakietów zawiera obecnie możliwości filtrowania alarmów pod kątem alarmów fałszywych. Do tego celu używane są aplety Javy w połączeniu z regułami statystycznymi. Innym stosowanym mechanizmem jest tzw. Concern index przypisujący każdej komunikacji hosta z siecią „poziom podejrzenia”. Alarmy są generowane jedynie wtedy, gdy poziom podejrzenia osiągnie zadany próg. W pozostałych przypadkach zdarzenia są rejestrowane, ale alarmy nie są uruchamiane. Cała rzecz sprowadza się właściwie do odpowiedniego strojenia środków IDS opartego na bazie danych wzorców ataków.
Kolejną kwestią jest odpowiedź na atak bezpośrednio po jego wykryciu. Szereg rozwiązań IDS zawiera mechanizmy pozwalające na uniknięcie ataku lub zapobieżenie mu – są one zazwyczaj włączane na żądanie, tzn. decyzja musi być podjęta w sposób świadomy przez użytkownika. Jednak automatyczne odpieranie ataków wnosi wiele nowych problemów – otwiera hakerowi drogę do poszukiwania nowych form ataku, a także może prowadzić do nieprzewidzianych zachowań systemu wobec użytkownika końcowego. IDS, reagujący automatycznie może zablokować klientowi dostęp do całej sieci na dłuższy czas (zanim obsługa techniczna uświadomi sobie ten fakt).
Napastnik może sfałszować adres IP i wysłać atak strumienia SYN do serwera webowego celem zablokowania legalnego dostępu właściciela tego adresu. Inny przykład: IDS może zinterpretować omyłkę – użycie niepoprawnego adresu w dostępie do serwera – jako próbę skanowania przed atakiem. W tym wypadku klienci zewnętrzni zostaną odcięci od dostępu do zasobów sieci na czas, aż uświadomi to sobie obsługa sieci.
Problemy takie są rozwiązywane między innymi przez udostępnienie możliwości automatycznego usuwania blokad prewencyjnych – po upływie określonego czasu. Oferowane są także inne akcje prewencyjne: powiadomienie o zaistnieniu incydentu, wstrzymanie ruchu (zatrzymanie ataku), dławienie ruchu (spowolnienie go w celu umożliwienia przeprowadzenia jego analizy) lub przekierowanie go do określonego miejsca.
Stosuje się też rozwiązania prewencyjne umiejscawiane na poziomie jądra systemu operacyjnego hosta, przechwytujące podejrzane wywołania systemu i ataki, zanim zostaną one wykonane, co likwiduje je w zarodku.
Sieciowe IDS, pracujące na platformie konwencjonalnych systemów operacyjnych, często nie uzyskują dostatecznej puli zasobów systemowych do wykonania analizy ruchu z szybkością nadążającą za szybkością połączenia. W rezultacie w sieci powstają wąskie gardła.
Problem ten rozwiązywany jest na różne sposoby. Jednym z nich jest lokalizowanie funkcji IDS na poziomie przełączników sieciowych, co znacznie poprawia efektywność ich działania; innymi optymalizacja kodu firmware i powiększenie pamięci RAM urządzeń.
Opracowuje się też szybsze motory i architektury reguł, a także dedykowane rozwiązania sprzętowe.
Sieciowe IDS składają się w zasadzie z oddzielnych sensorów i funkcji zarządzania. Sensory te monitorują ruch sieciowy i wykrywają w nim pakiety noszące znamiona ataku. Funkcje zarządzające, które obejmują zarządzanie zdarzeniami i raportowanie, zawarte są przeważnie w oddzielnym module konsoli. Sensory mogą pracować na różnego rodzaju platformach: Windows, Unix, Linux, Solaris. W większości przypadków do zarządzania używane są serwery oparte na Windows, jak również odpowiednie oprogramowanie klienckie. Stosowane są też webowe techniki zarządzania oparte na przeglądarce.
Zarządzanie rozległą siecią sensorów realizowane jest na ogół w architekturze trzywarstwowej: centralna konsola zarządzania, sensory i kolektor zdarzeń, który odciąża konsolę centralną w funkcjach wstępnego przetwarzania zdarzeń. Taki kolektor grupuje do kilkudziesięciu sensorów, a konsola centralna obsługuje cały szereg kolektorów zdarzeń. Model ten jest stosowany w większości produktów.