IDS / IPS

Czym są IDS?

IDS (Intrusion Detection Systems) systemy wykrywania intruzów, jak sama nazwa wskazuje, zajmują się wykrywaniem prób uzyskania dostępu do systemu. Ich zadaniem jest wykrycie takiego zdarzenia i poinformowanie o tym odpowiednich osób. Działanie takich systemów jest podobne do alarmu chroniącego dom przed włamywaczami.

IDS często są używane razem z firewallami, nie należy jednak mylić tych pojęć - zapory sieciowe służą wyłącznie do ochrony systemu przed niepowołanymi osobami. IDS są wykorzystywane do uzupełnienia całości dobrze zorganizowanego systemu bezpieczeństwa, na który oprócz nich powinny się składać m.in:

Trzy podstawowe zadania IDS to monitorowanie systemu, detekcja ataków i podejmowanie odpowiednich działań w zależności od zagrożenia, jak: wylogowanie użytkowników, zablokowanie konta lub wykonanie odpowiednich skryptów. Często informacja o ataku przesyłana jest natychmiast do upoważnionych osób np. na pager lub poprzez e-mail.

Skąd potrzeba używania IDS?

W rzeczywistości większość zagrożeń dotyczących bezpieczeństwa pochodzi z wewnątrz sieci, w czym należy uwzględnić ataki przeprowadzane przez nielojalnych pracowników firmy. Z zewnątrz grożą głównie ataki typu Denial of Service bądź próby penetracji struktury sieci. Systemy wykrywania intruzów są zatem bardzo użyteczne, gdyż służą one podniesieniu bezpieczeństwa sieci zarówno od wewnątrz jak i od zewnątrz. Dodatkowo systemy IDS mogą służyć do analizy ruchu sieciowego, a więc zareagować na zagrożenie atakiem DoS.

Są dwa warianty systemów IDS: oparte na gospodarzu (host) Host-Based IDS oraz oparte na sieci Network-Based IDS. Te dwa podejścia różnią się podejściem do monitorowania i chronienia danych, każde ma swoje wady i zalety.

Host-Based IDS (HIDS)

HIDS to najwcześniej zaimplementowane systemy wykrywania intruzów. Systemy tego typu zbierają i analizują dane na komputerze, który jest gospodarzem systemu, na przykład serwerze sieciowym. Gdy odpowiednie dane są zebrane, mogą zostać przeanalizowane na odrębnej maszynie lub w obrębie komputera-gospodarza.

Przykładowo rolę HIDS może spełniać program zbierający informacje z logów systemowych i aplikacyjnych z innych komputerów. Jest to sposób na efektywne wykrywanie nadużyć wewnątrz sieci jeśli jakiś użytkownik wykona niedozwoloną czynność, informacja o tym zdarzeniu bardzo szybko trafi do systemu wykrywania. To rozwiązanie dobrze sobie radzi także m.in. z nieautoryzowaną modyfikacją pliku.

Taki system może jednak stać się niepraktyczny. Przy dużych sieciach zbieranie informacji od każdej maszyny jest posunięciem nieefektywnym i niewygodnym w obsłudze. W dodatku, w przypadku odcięcia serwera HIDS od reszty sieci, zabezpieczenie przestaje działać.

Przykładowe HIDS:

Network-Based IDS

W przeciwieństwie do HIDS, omawiane rozwiązanie polega na sprawdzaniu pakietów poruszających się po sieci. Pakiety te są analizowane, a następnie określane jako prawidłowe bądź złośliwe. Ze względu na naturę rozwiązania, systemy NIDS są często rozproszone po sieci i różnych systemach. By przygotować przesyłane pakiety do analizy stosowane są techniki zwane packet sniffing.

Nadzór nad ruchem w sieci owocuje zwiększoną odpornością systemu na ataki z zewnątrz. Systemy NIDS dobrze radzą sobie z nieautoryzowanym dostępem spoza systemu (po zalogowaniu do systemu, nieautoryzowany użytkownik jest najlepiej śledzony przy wykorzystaniu HIDS, jednak przed przy użyciu NIDS) oraz z atakiem typu Denial of Service (poprzez zauważenie pakietów zaczynających taki atak).

Do wad systemów NIDS trzeba zaliczyć niekompatybilność z sieciami, w których przesyłane są szyfrowane dane, bądź ruch jest bardzo szybki by nie stać się wąskim gardłem systemu i jednocześnie nadążać za ruchem pakietów, analiza ich treści może stać się zbyt powierzchowna.

Przykładowe sieciowe IDS:

Jednoczesne użycie HIDS i NIDS

Dwa wyżej przedstawione podejścia do systemów wykrywania intruzów różnią się znacznie, jednak stosowane jednocześnie wspaniale się uzupełniają. Ciekawym pomysłem jest wprowadzenie rozproszonej sieci agentów, z których każdy działa jakby był gospodarzem systemu i wymienia się informacjami z innymi agentami.

Prawidłowa implementacja systemu IDS powinna integrować cały system wykrywania intruzów w takim stopniu, by jej efekty nie były odróżnialne od pracy Host-Based IDS umieszczonego w jednym, centralnym punkcie, zachowując się jak system real-time.

Mimo to, z praktycznej strony, priorytetem przy wprowadzaniu systemu wykrywania intruzów w organizacji powinna być implementacja HIDS, gdyż większość rozwiązań sieciowych nie radzi sobie dobrze, a czasem nawet wcale, w przypadku sieci o transferze powyżej 100 Mbps lub sieci z zaszyfrowanym ruchem. W dodatku, w około 80-85 przypadkach na 100 zagrożenie pochodzi od wewnątrz organizacji / firmy. Zatem systemy wykrywania intruzów powinny opierać się na HIDS oraz starać się użyć pewnych mechanizmów sieciowych IDS, by wzmocnić obronę.

Techniki: Wykrywanie anomalii (anomaly detection)

Stworzone do wykrywania niestandardowych wzorów bądź zachowań. Przechowujemy zbiór standardowych przypadków użycia systemu, wszystkie zachowania odbiegające od nich zostają zaszeregowane jako potencjalnie niebezpieczne. Zachowania znacznie odbiegające od standardowych (np. kilkudziesięciokrotne logowanie w tym samym dniu bądź bycie zalogowanym w nocy, podczas gdy biuro jest zamknięte) powinny budzić uwagę. Można także w ten sposób kontrolować zestaw programów uruchamianych przez użytkownika w ciągu dnia.

Techniki: Wykrywanie sygnatur (misuse / siganture detection)

Ta technika polega na przechowywaniu zbioru wzorców zachowań niepożądanych, aby wykrywać zbliżone do nich aktywności użytkowników. Te wzorce zwane są sygnaturami. Dobrym przykładem sygnatury dla Host-Based IDS jest trzykrotne niepoprawne zalogowanie się do serwera. W przypadku mechanizmów sieciowych, przykładem ilustrującym tą technikę jest sprawdzanie czy pakiet nie odpowiada za nieodpowiednią inicjację połączenia FTP. Natrafienie na aktywność zbliżoną do sygnatury nie musi oznaczać realnego zagrożenia, jednak powinno podjąć działania stosowne do zagrożenia oraz alarmować odpowiednie osoby.

Techniki: Monitorowanie celu (target monitoring)

W tym przypadku system zajmuje się sprawdzaniem czy określone pliki nie zostały zmodyfikowane, a gdy to nastąpiło, skorygowanie zmian. Jest to forma kontroli korekcyjnej, która ma na celu odwrócenie niepożądanych zmian. To rozwiązanie nie wymaga ciągłego monitorowania systemu przez administratora. Porównywanie plików odbywa się za pomocą haszowania i porównywania haszów.

Techniki: Niewidzialne sondowanie

Ta technika wykrywa włamywaczy, którzy atakują system długookresowo na przykład przez kilka miesięcy badając architekturę sieci, następnie czekając i po długim czasie przechodząc do właściwego ataku. System zbiera różnorodne dane z całego systemu, aby zapobiec takim aktywnościom. By wykryć podejrzane zachowania, metoda ta łączy wykrywanie anomalii i wykrywanie sygnatur.

Czym są IPS?

IPS (Intrusion Prevention Systems) to sprzętowe bądź programowe rozwiązania, których zadaniem jest wykrywanie ataków na system komputerowy z wewnątrz jak i od zewnątrz systemu oraz uniemożliwianie przeprowadzenia takich ataków. Od strony technicznej systemy IPS to mniej więcej połączenie zapory sieciowej i systemu IDS. W dalszej części prezentacji omówionych zostanie kilka różnych sposobów implementacji systemów ochrony przed intruzami.

Inline Network-Based IDS

Sieciowe systemy wykrywania intruzów zwykle posiadają skonfigurowane dwie karty sieciowe jedną do wykrywania zagrożeń, drugą do zwykłych zastosowań. Karta do wykrywania nie ma przypisanego adresu IP, działa niewidoczna dla reszty systemu, co znaczy, że nie można skierować do niej pakietu ani poprosić ją o odpowiedź. Cały ruch sieciowy przechodzi przez inline NIDS, który sprawdza, czy w przesyłanych treściach nie można doszukać się podobieństwa do wzorców sygnatur. Są rozwiązania, (HogWash) które idą krok dalej są w stanie zmieniać treść złośliwych pakietów, aby nie mogła działać (packet scrubbing). W ten sposób atakujący nie będzie wiedział, że jego próby są nieudane, a broniący się będzie mógł zebrać więcej dowodów.

To rozwiązanie łączy możliwości NIDS z blokowaniem niepożądanych pakietów przez zaporę sieciową. Jak w wielu systemach NIDS, można monitorować działanie wielu serwerów i sieci z jednej maszyny. Może to być jednak zarówno wielką zaletą jak i wadą, problemy pojawiają się przy awarii systemu wtedy ruch sieciowy nie musi przepływać przez dane urządzenie. Kolejną niedogodnością takich systemów IPS jest to, że można nimi chronić jedynie pewne aplikacje, które są w użyciu (np. Apache, Internet Information Services, ...) oraz to, że nie ma ochrony przed zachowaniami dla których nie zostały zdefiniowane sygnatury. Są miejsca, gdzie omawiane rozwiązanie przyjęło się bardzo dobrze mainframe'y i duże serwery.

Layer seven switches

Tradycyjnie, przełączniki były urządzeniami operującymi na drugiej warstwie modelu OSI (warstwie łącza danych). Jednak teraz, z powodu wysokich wymagań nakładanych na sieci, bardzo pożądane są przełączniki operujące na siódmej warstwie warstwie aplikacji.

Najczęstszym zastosowaniem tych przełączników jest równoważenie obciążenia, które tworzy aplikacja sieciowa, na kilka serwerów. Można na przykład, odczytując adres URL, skierować pakiety do wybranego serwera. W przeciwieństwie do wielu innych metod, przełączniki siódmej warstwy radzą sobie z Denial of Service, nie wpływając na działanie reszty infrastruktury sieci. Urządzenia tego typu mogą być stosowane nawet w najbardziej wymagających sieciach (rzędu Gbps), zachowując dobrą wydajność. Umieszcza się je przed firewallami, uzyskując kompleksową ochronę.

Podobnie jak w przypadku Inline NIDS, wadą tego rozwiązania jest nieumiejętność radzenia sobie z atakami, na które nie jest przygotowane, tzn. takich, dla których nie ma gotowych sygnatur. Urządzenia są konfigurowalne i stanowią dobre uzupełnienie systemu bezpieczeństwa.

Application Firewalls/IDS

Aplikacyjne zapory sieciowe i systemy wykrywania intruzów są zwykle sprzedawane jako systemy prewencji. Jest to aplikacja uruchamiana na każdym pojedynczym serwerze, który ma być chroniony. Choć zarządzanie wieloma systemami ochrony przed intruzami może być męczące, to jednak opłaca się. To rozwiązanie polega na dostosowaniu ochrony do poszczególnych aplikacji. Zamiast informacji w pakietach sprawdzane są wywołania API, zarządzanie pamięcią (kontrola przepełnienia bufora) i interakcji aplikacji z systemem operacyjnym. Wymienione czynności stanowią dobrą ochronę przed błędami programistycznymi i nieznanymi atakami, dzięki czemu można takim systemom nadać nazwę fail close.

Aplikacyjne metody ochrony przed intruzami tworzą profil systemu. Podczas jego tworzenia, IPS podgląda interakcje użytkownika z oprogramowaniem oraz oprogramowania z systemem operacyjnym, na podstawie czego może określić jak wyglądają zwyczajne aktywności w systemie. Jak łatwo zauważyć, aby system prewencji działał prawidłowo, należy zapewnić, żeby w fazie tworzenia profilu zostały wykonane wszystkie dozwolone czynności, aby potem aplikacyjny system ochrony przed intruzami nie odczytał prawidłowego użycia aplikacji systemowych jako ataku. Przy doinstalowywaniu aplikacji, bądź dokonywaniu znaczących upgrade'ów należy od nowa stworzyć profil systemu.

Zaletą takiego podejścia do ochrony jest skupienie się na każdej pojedynczej aplikacji, dzięki czemu system prewencji działa dokładniej. Daje ono największą możliwość ochrony własnoręcznie napisanych aplikacji. Aplikacyjne systemy prewencji jako jedyne z wymienionych zajmują się badaniem relacji oprogramowania z systemem operacyjnym.

Hybrid switches

Technologia przełączników hybrydowych opiera się na dwóch wyżej wymienionych rozwiązaniach do ochrony systemu: aplikacyjnych systemach ochrony przed intruzami oraz przełącznikach siódmej warstwy. Stosowanie przełączników hybrydowych polega na umieszczeniu odpowiedniego sprzętu przed zaporami sieciowymi, jak przy Layer Seven Switches. Różnicę stanowi to, że zamiast działać jak sieciowy IDS, stosowana jest polityka podobna do używanej w aplikacyjnych systemach ochrony przed intruzami.

W ruchu sieciowym wyszukiwane są złośliwe fragmenty kodu, zgodnie z określonymi zasadami. Poszczególne aplikacje mogą być skanowane w poszukiwaniu metod zachowywania bezpieczeństwa, a następnie rezultaty tego skanu zostają wprowadzone do zasad postępowania systemu jako wzorce, co oszczędza wiele czasu administratorowi systemu na konfigurowanie bezpieczeństwa w systemie.

Przełączniki hybrydowe działają podobnie do przełączników siódmej warstwy, z wyjątkiem tego, że zamiast przechowywać zbiór sygnatur, które blokują atak na serwer sieciowy, przechowywują dokładne informacje na temat serwera i uruchomionych na nim aplikacji. Gdy omawiany system nie radzi sobie ze zbyt dużym ruchem sieciowym, dobrym rozwiązaniem jest połączenie go z przełącznikiem warstwy siódmej, co zwiększy wydajność, gdyż dołączony przełącznik może wstępnie filtrować odpowiednie nadchodzące żądania użytkownika, oszczędzając pracy przełącznikowi hybrydowemu.

Deceptive applications

Ta technologia polega na oszukaniu atakującego. Najpierw, podobnie do fazy profilowania w przypadku aplikacyjnych IPS, zbierane są informacje o tym, jak wygląda poprawny ruch pakietów w sieci. Następnie, podczas działania, gdy system napotyka na niewłaściwe zachowanie jakiegoś użytkownika, przesyła mu, odpowiednio oznaczoną odpowiedź. W ten sposób atakujący ma wrażenie, że nie został zauważony. Odpowiedź przesłana do intruza powinna być tak spreparowana, żeby przy jego kolejnych atakach móc go zidentyfikować i przerwać połączenie między systemem a intruzem.

Podsumowanie

Narzędzia do wykrywania intruzów stają się coraz bardziej niezbędne do prawidłowego działania systemów bezpieczeństwa. Narzędzia te używają różnych technik i oparte są na różnych architekturach (sieciowe / centralne). Dobra implementacja takiego systemu powinna łączyć różne techniki i podejścia, by dać jak najwięcej informacji o stanie systemu. Tworząc system wykrywania intruzów należy dobrać odpowiednie zalety z różnych podejść do tworzenia takich systemów (HIDS, NIDS).

Różne systemy IPS oferują różne poziomy zabezpieczenia. Każdy ma wady i zalety, dlatego ważną rzeczą jest właściwe umiejscowienie odpowiednich systemów ochrony przed intruzami. Omówione mechanizmy można ze sobą łączyć, np. przełącznik siódmej warstwy przed zaporą sieciową (do ochrony przed DoS i przewidywanymi atakami) wsparty aplikacyjnymi IPS bądź przełącznikiem hybrydowym (do ochrony serwerów i zapobiegania nieprzewidzianym problemom). Każdy z wymienionych systemów zasługuje na zainteresowanie.

Prezentacja na Systemy Operacyjne 2004/2005 - Informatyka MIMUW.
Wojciech Sikora-Kobyliński (O nas)