Robaki sieciowe, systemy IDS oraz IPS
Spis treści
Krótkie streszczenie z pokazu możliwości programu "snort"
Bibliografia
- Robaki sieciowe, historia i studium przypadku
- Opis i rysunki do charakteryzacji Slammera
- Opis i rysunki do charakteryzacji Blastera
- Opis i rysunki do IDS
- Opis i rysunki do IPS
Co to jest robak sieciowy ?
Jest to samoreplikujący się program komputerowy, podobny do wirusa komputerowego.
Używa sieci, aby wysłać kopie siebie do innych węzłów, które się w niej znajdują, poprzez
wykorzystanie luk w oprogramowaniu, systemie operacyjnym oraz naiwności użytkowników.
Oczywiście może to robić i robi bez interwencji użytkownika !!!
Historia robaków
Nazwa robak (ang. worm) pochodzi z powieści science fiction "The Shockwave Rider" z roku 1975.
Naukowcy, John F. Shoch i John A. Hupp użyli tej nazwy po raz pierwszy w swojej pracy
opublikowanej w 1982. Od tego czasu nazewnictwo to cieszyło się dużą popularnością.
Oni również są autorami pierwszego robaka, który na szczęście był robakiem kontrolowanym
(tzn. nie wyrządził niekontrolowanych szkód)
Różnice w stosunku do wirusa (biorąc pod uwagę przeciętnego wirusa-Kowalskiego):
- nie musi doczepić się do istniejącego programu
- zawsze przeszkadza sieci (biorąc np. pod uwagę fakt obciążenie łącza)
- nie zawsze ingeruje w i niszczy pliki na zaatakowanym komputerze
- infekcja kolejnego komputera odbywa się samoczynnie, bez udziału człowiek
Typy robaków
Typy robaków ze względu na rozprzestrzenianie się:
-
skanujące losowo:
najprymitywniejsze formy robaków. Adresy IP dobierane są drogą losową, bez kontroli czy
dane adresy należą do danej klasy adresowej podsieci czy nie.
-
skanujące podsieć:
dobiera adres IP kolejnego komputera w podsieci
-
-
topologiczne:
adresy IP znalezione tylko na komputerze zarażonym
-
skanujące określoną listę adresów :
twórca sporządza listę komputerów do zarażania
-
inne typy:
mix poprzednich
Cele ataków robakowych
-
tylko w celu rozprzestrzeniania się po sieci, bez ingerencji w system operacyjny i pliki.
Jak jednak "Morris"(robak) pokazał, nawet i tak z pozoru niewinne robaki mogą skutecznie zablokować sieć
-
to co powyżej z tą różnicą, że są niszczone pliki
-
instalowanie "tylnych furtek", w celu przejęcia kontroli nad atakowanym komputerem. Kolejno wysyłany
jest Spam z przejętych komputerów oraz unikalne adresy IP. Komputery mogą również poslużyć do ataku typu
DoS (denial-of-service attack) w celu wyłączenia z gry dużych serwisów internetowych
- podmiane stron WWW znalezionych na serwerze w przejętym komputerze
- inne, które możemy sobie tylko wyobrazić
Jak się zabezpieczyć przed robakami sieciowymi
Tak jak już wyżej zostało wspomniane robaki sieciowe rozprzestrzeniają się poprzez wykorzystywanie luk
w systemie operacyjnym. Dlatego też powinno się instalować wszystkie dostępne patche na oprogramowanie.
(ciekawostka: "Blaster" wykorzystywał dziurę znaną od 1 miesiąca, Code Red - 2 miesięcy, Slammer - 7 miesięcy,
Nimda - 11 miesięcy, Blue Code - 1 roku, OpaServ - 2 lat).
Warto tez zwrócić uwagę, że samo usunięcie robaka nie jest takie proste, gdyż trzeba zainstalować patche na
każdym potencjalnie zagrożonym komputerze, co czasem jest sprawą nie latwą. Poza tym zarażony komputer może
w każdej chwili zarazić inne komputery w sieci.
Inne sposoby ochrony:
- instalacja oprogramowania antywirusoweg
- dobrze skonfiurowany Firewall
- użycie systemów IDS
- użycie systemów IPS
- kierowanie się rozsądkiem podczas korzystania z usług internetowych i aplikacji z nimi związanymi
Przegląd wybranych robaków sieciowych
Slammer (DDOS.SQLP1434.A, W32/SQLSlammer, Sapphire)
kod Slammera
Data ataku : 25 Styczeń 2003, Sobota
Przebieg wydarzeń :
Owen Maresh był jedną z pierwszych osób na świecie, który zauważył atak robaka. Siedząc w Akamai w sieciowym
centrum operacyjnym, które monitoruje ponad 15000 high-speed serwerów, został wstrząsnięty widząc 55.000000
bazodanowych zapytań, które nie niosły ze sobą żadnej informacji.
Slammer zaatakował szybko, roznosząc się 100 razy szybciej niz "Code Red", czy tez "Nimida".
Mały robak zaatakował swoją pierwszą ofiarę o 12.30 am EST. Maszyna ta - działający serwer Microsoft SQL zaczął
wysylać miliony klonów do losowo wybranych komputerów. Do godz. 12.33 liczba serwerów zarażonych podwoiła się
w czasie 8.5 sekundy.
gdzina 12:55 am EST
godzina 1:00 am EST
oba wykresy pokazują, ilosciową wymianę pakietów pomiędzy serwerami
wzrost w kierunku czerwieni symbolizuje większe zagęszczenie ruchu
Skutki ataku :
- 300.000 modemów kablowych zostało wyłączonych
- brak możliwosci polaczen komórkowych w Korei Poludniowej
- padły prywatne systemy emailowe
- strony www na dużych serwisach internetowych nie odpowiadały
- awaria systmów w Continental Airlines
- zablokowanie sieci bankomatów Bank of America i Canadian Imperial Bank of Commerce
Co było siłą robaka ?
Slammer zawdzięcza swoją szybkość protokolowi UDP, który jest szybszy od TCP. Protokół UDP może nieść pakiet tylko
w jedną stronę. Geniusz Slammera polegał na prostym tricku przepełnienia bufora.
Oto opis działania robaka, krok po kroku:
- krok 1 : slammer wypuszcza pojedynczy pakiet UDP. Pierwszy bajt w stringu 04 - mówi SQL serwerowi, że kolejne dane są nazwą poszukiwanej bazy danych. Programisci Microsoftu zalożyli, że nazwa ta może mieć maksymalną dlugość 16 bajtów
dlugości i kończy się 00. Jednak w pakiecie Slammera nie ma 00, więc oprogramowanie SQL wkleja wszystko pamięci.
- krok 2 : początkowy napis skladający się z 01 zamazuje 128 bajtów pamięci zarezerwowanej dla SQL serwera. Serwer re-programuje się bez zauważenia.
- krok 3 : slammer generuje adres IP i celuje w inny komputer, który może być gdziekolwiek na świecie. W celu losowego wybrania adresu IP patrzy ile milisekund uplyneło od kiedy serwer został uruchomiony i na tej podstawie oblicza IP.
- krok 4 : koperta jest przecież zaadresowana, teraz wystarczy ją tylko wyslać. Slammer wskazuje na własny kod do wyslania. Zaainfekowany komputer wysyła nową kopię robaka ze znaczkiem UDP.
- krok 5 : historia się powtarza, Slammer działa w pętli i wysyła przesylkę do kolejnego komputera.
nie jest to może wymażony rys. jednak pokazuje nam skalę wysyłanych pakitów
kolor : zielony (Ameryka), czerwony (Azja), niebieski (Europa)
oś X - plynący czas w godz. początek godz. 10
oś Y - przesyłane pakiety UDP
Blaster (LoveSan)
Data ataku : 11 Sierpień 2003, Poniedzialek
Przebieg wydarzeń :
Polska grupa hakerska "The Last Stage of Delirium" wykryła dziurę w MS Windows przed 11 lipca 2003. Problem polgał na tym,
że była możliwość przepełnienia bufora w interfejsie DCOM RPC poprzez zestawienie połączenia TCP na port 135 atakowanego
komputera.
Fakt pojawienia sie robaka zdawał się być tylko kwestią czasu.
I oto właśnie 11 sierpnia pojawił sie robak o nazwie "Blaster", tudzież inaczej nazywany "LoveSan".
Jego zarażanie oparte było na algorytmie losowania IP (40% klasa B, 60% dowolnego innego numeru w internecie).
Cele ataku :
- zmasowany atak na stronę http://windowsupdate.com w dniu 16 sierpnia 2003
wykres pokazuje jak wyglądał atak Blastera z pozycji systemu wykrywania anomalii zespolu CERT Polska.
Na osi X jest zaznaczone zielonym kolorem ilość pakietów wysłanych na port 135 na godz., zaś czarnym ilość
unikalnych adresów IP z których te pakiety przychodziły. Łatwo zauważyć, że aktywność na newralgicznym porcie wzrosła ponad siedmiokrotnie w przeciągu krótkiego czasu
wykres przedstawia skalę dotknięcia Blasterem poszczególych krajów w przeciągu 24 godz. od
rozpoczęcia działalności (w procentach ogólnej liczby ataków). Progi zostały dobrane w taki sposób, by łatwo można było
odróżnić kraje bardzo silnie zaatakowane przez robaka od znacznie mniej dotkniętych
Gdy nadszedł dzień ataku, nie wydarzyło się nic specjalnego. Witryna o adresie wpisanym w kod nie istniała - prawdopodobnie
atak DDoS nie udał się z tego właśnie powodu.
Oto opis działania robaka, krok po kroku :
- krok 1 : sprawdza czy komputer jest już zaainfekowany, jeżeli tak to nie będzie go infekował drugi raz
- krok 2 : dodaje do autoexeca plik "msblast.exe"
- krok 3 : generuje adres IP i próbuje zainfekować komputer o danym IP
- krok 4 : w tym celu wysyła dane protokolem TCP na port 135 w celu przepełnienia bufora (DCOM RPC).
Robak wysyła 2 typy wiadomości: w celu dostania sie do Winodowsa XP (80% prób) lub Windowsa 2000 (20% prób)
- krok 5 : używa Cmd.exe do stworzenia ukrytego zdalnego shella, który będzie sluchał na porcie 4444, pozwalając atakującemu wykonywać komendy na zarażonym komputerze
- krok 6 : słucha na porcie 69 UDP, jeżeli dostaje informacje od komputera, który próbował zarazić wysyła mu "msblast.exe" i karze mu go wykonać
- krok 7 : jeżeli aktualna data wskazuje na 16 danego miesiąca, robak spróbuje przeprowadzić atak typu DoS na
Windows Update
- krok 7* Robak niesie zaszytą w sobie wiadomosc dla Billa Gates:
"billy gates why do you make this possible ? Stop making money and fix your software!!"
Systemy IDS (Intrusion Detection System)
Jest to system, który ma za zadanie identyfikować i reagować na nieautoryzowaną działalność skierowaną przeciwko chronionym zasobom sieciowym. IDS jest postrzegany jako "pasywnie" monitorujący system, jako że jego główną funckją jest "ostrzeganie"
przed podjerzaną aktywnością, a nie jej zapobieganie.
Typy systemów IDS
Wyróżniamy 2 glówne rodzaje systemów IDS:
- hostowe(HIDS): program agenta zaintalowany na każdej chronionej maszynie. Agent nadzoruje logi systemowe, kluczowe
pliki systemowe, oraz inne zasoby które mogą podlegać weryfikacji, analizuje ruch "z" oraz "do" danego komputera, gdzie
zainstalowany jest HIDS. Jest zdolny do wykrycia Trojanów i "tylnych furtek", które nie zawsze są wykrywane przez NIDS (patrz
nizej). HIDS nie oferują prawdziwego real-time detection, ale odpowiednio skonfigurowane są bliskie temu celu.
- sieciowe(NIDS): monitorują w czasie rzeczywistym ruch w sieci. Badają nagłowki pakietów, jak i ich zawartość.
Zwykle skladają sie z hardwerowych sensorów zlokalizowanych w różnych miejscach sieci lub jak powyżej z oprogramowania, które
jest zainstalowane na komputerach w sieci.
Działanie NIDS
Systemy NIDS szukają syngatur ataków - zbioru cech, na podstawie których mogą jednoznacznie zidentyfikować niepożądaną aktywność.
Rozróżnia się pieć metod detekcji:
- Dopasowywanie wzorców - najprostsza metoda, w której pojedyncze pakiety porównywane są z listą reguł. Jesli któryś z warunków zostanie spełniony, uruchamiany jest alarm. Na tej zasadzie dzialają listy dostępu.
- Kontekstowe dopasowywanie wzorców - program bierze pod uwagę kontekst każdego pakietu. System NIDS stara sie śledzić polączenia, dokonuje łączenia fragmentowanych pakietów, aby móc wychwycić wiekszą grupę ataków oraz odfiltrować fałszywe.
- Dekodowanie protokołów wyższych warstw - NIDS dekoduje m.in. protokoły FTP, HTTP w celu analizy ich zawartości i wychwycenia specyficznych dla nich ataków. Metoda ta używana jest przez urządzenia Cisco wyposażone w moduł Content Based Access Lists.
- Analiza heurystyczna - sygnatury tego typu wykorzystują algorytmy do identyfikacji niepożądanego działania. Algorytmy te są zwykle statystyczną oceną normalnego ruchu sieciowego. Przykładem sygnatury heurystycznej jest algorytm okreslający, kiedy następuje skanowanie portów - będzie to przekroczona liczba połączeń z jednego adresu na kilka portów w niedługim czasie. Konkretne wartości dobierane są na podstawie statystyk.
- Analiza anomalii - sygnatury anomalii starają się wykrywać ruch sieciowy, który odbiega od normy. Największy problem stanowi określenie stanu uważanego za normalny. Niektóre systemy zawierają moduly uczące się, inne mają tą wiedze zakodowaną na stałe. Przeprowadzanie analizy anomalii jest trudne, więc systemy stosują ją tylko w ograniczonym zakresie.
NIDS vs. firewall
Różnice NIDS w stosunku do Firewalla
NIDS:
- nie rozgląda sie za intruzami w celu ich "zatrzymania"
- nie limituje połączeń pomiędzy sieciami w celu zapobiegania intruza
- nie jest odporny na atak z wnętrza sieci
Gdzie umieszczony jest IDS
Jeżeli chodzi o HIDS sprawa jest prosta, gdyż oprogramowanie zainstalowane jest na każdej chronionej maszynie.
W przypadku NIDS wyróżniamy cztery sposoby podłączenia sensorów NIDS:
- poprzez port SPAN przełacznika lub koncentratora:
na port SPAN kopiowany jest ruch ze wszystkich pozostałych portów
- poprzez urządzenie przechwytujące ruch podczepiane do kabla
- w konfiguracji mostu (tzw. In-Line): system NIDS znajduje się bezpośrednio na scieżce danych
- sieci o skoplikowanej budowie
Problemy NIDS
Niektóre problemy na jakie napotyka NIDS
- jeżeli ma wykrywać atak na konkretną aplikację, polegający na podawaniu jej nietypowych danych, to musi on znać protkół,
który dana aplikacja wykorzystuje (a ile jest różnych aplikacji ?!)
- wykrycie ataku podzielonego na kilka pakietów i rozciągniętego w czasie (pochłania wiele zasobów, trzeba zapamietać historię)
- mutacje kodu, jeżeli NIDS wyszukuje proste wzorce tesktowe w pakiecie, to można je lekko zmodyfikować i od razu staną się niewidoczne dla algortmu selekcji
- gdy pakietów wysyłanych jest dużo NIDS nie jest w stanie ich wszystkich sprawdzić co umożliwia możliwosc ataku
- poslugiwanie się nietypowymi rodzajami pakietów
- gdy, jest wiele alarmów ze strony NIDS, praca z nim może przerodzić się w administracyjny koszmar, czego skutkiem może być
ignorowanie systemu
- brak możliwości zbadania pakietów, które są zaszyfrowane
- często wymagają wykwalifikowanej obsługi
- skomplikowana konfiguracja
Systemy IPS (Intrusion Prevetion System)
Kolejny etap technologiczny związany ze zdolnością dostarczenia bezpieczenstwa począwszy od jądra systemu operacyjnego po
sieć z pakietami. Dostarcza reguł dla prawidłowego ruchu sieciowego, podobnie jak IDS informuje o niebezpieczeństwach, ale
w przeciwieńtwie do niego pozwala administratorowi przypisać akcje zwiazane z danym niebezpieczeństwem i stara się mu zapobiec.
Odpowiada na atak analizując baze danych zachowań różnych ataków zapisanych w pamięci.
Bardzo ogólnie mówiąc IPS jest uważany za kolejną generacje IDS. W związku z tym, wiele faktów jakie przytoczyłem powyżej
związanych razem z IDS, przenosi sie również i na te systemy.
Typy IPS
Podobnie wyróżniamy 2 różne systemy IPS (tym razem o zaletach):
- hostowe (HIPS)
zalety:
- zainstalowane oprogramowanie zabezpiecza nie tylko przed atakiem, ale również przed jego skutkami takimi jak blokowanie programu, itp.
- zabezpiecza sieci bezprzewodowe przed atakiem (NIPS w sieciach bezprzewodowych jest niepraktyczny)
- zabezpieczenie się na lokalne ataki, ze strony kolegów w sieci
- ostatnia deska ratunku, gdy NIPS nie zadziała lub go nie ma
- zabezpiecza przed zaszyfrowanymi pakietami, które są dopiero znane po odkodowaniu
- niezależne od topologii sieci, gdzie zastosowanie NIPS jest niemożliwe
-
- sieciowe (NIPS)
zalety:
- centralny punkt, który może zabezpieczyć tysiące systemów komputerowych zlokalizowanych w sieci
- mniej czasochłonny jeżeli chodzi o wdrożenie, jeden lub wiecej centarlnych sensorów
- zabezpiecza nie-komputerowe urządzenia w sieci np. rutery
- neutralny ze względu na platforme
- zabezpiecza przed powszechnie znanymi atakami DoS, DDoS
Możliwy sposób użycia :
wykorzystanie zarówno NIPS oraz HIPS z jedną główną konsolą
IDS vs. IPS
Cecha |
IDS |
IPS |
Rodzaj detekcji |
pasywny |
aktywny |
Przeciwdziałanie ataku |
nie |
tak |
Czas powstrzymania ataku |
może być długi |
relatywnie mały |
Paraliż komputera wywołany sztuczny atakiem |
mały |
istnieje prawdopodobieństwo |
Czy potrzebny administrator |
potrzebny |
niekoniecznie |
Implementacja |
starsza, lepiej dopracowana |
młodsza, mniej przemyślana |
Możliwość dekodowania 7 warstw protokolów HTTP, FTP, SMP |
nie |
tak |
Aktualnie rozwijane |
w większości nie |
tak |