W2 Rodzaje atakow


Rodzaje ataków hakerskich
1 Typy możliwych ataków...............................................................................................2
2 Atak fizyczny.................................................................................................................2
3 Sniffing ..........................................................................................................................2
3.1 Sniffing w sieci z przełącznikami ........................................................................3
3.1.1 MAC flooding.................................................................................................3
3.1.2 ARP spoofing ................................................................................................4
3.1.3 Duplikacja adresu fizycznego......................................................................4
4 Zabezpieczenia przed sniffingiem ..............................................................................5
4.1 Wykorzystanie błędów w implementacji stosu TCP/IP.....................................6
4.2 Test DNS...............................................................................................................6
4.3 Opóznienia............................................................................................................6
4.4 Przesłuchanie podejrzanego hosta ....................................................................7
4.5 Wykorzystanie source routing u..........................................................................7
4.6 Wykrywanie snifferów używających ARP spoofing...........................................8
4.7 Lokalne wykrywanie snifferów.............................................................................8
5 Przechwytywanie hasła .............................................................................................10
5.1 Przechwytywanie hasła w nieszyfrowanych protokołach ...............................11
5.2 Przechwytywanie hasła z wykorzystaniem "koni trojańskich"........................11
6 Atak przez zalanie......................................................................................................12
7 Lądowanie na serwerze ............................................................................................12
8 Prośba o echo ............................................................................................................13
9 Ping Of Death.............................................................................................................13
10 DoS (Denial of Service) .........................................................................................13
11 DDoS (Distributed Denial of Service)...................................................................14
11.1 Opis sieci DDoS .................................................................................................14
11.2 Niebezpieczny DDoS .........................................................................................14
11.3 Strategia ataku....................................................................................................16
11.4 Atak na serwer Yahoo w 1999r.........................................................................18
12 DRDoS ....................................................................................................................18
1 Typy możliwych ataków
przerwanie (ang. interruption) - uniemożliwienie korzystania z zasobów sieci
modyfikacja (ang. modification) - wprowadzenie zmian przez osoby nieuprawnione
przychwycenie (ang. interception) - uzyskanie dostępu do zasobów przez osoby
nieuprawnione
podrobienie (ang. fabrication) - wprowadzenie fałszywych danych do systemu
komputerowego
2 Atak fizyczny
Jednym z najprostszych rodzajów ataku jest atak fizyczny. Umożliwia on całkowite
unieruchomienie systemu informatycznego firmy, np. przez wyłączenie zasilania serwera czy
też odłączenie kabla sieciowego. Możliwe jest ograniczenie takich ataków przez
wprowadzenie odpowiedniej polityki bezpieczeństwa fizycznego, czyli wszelkich obostrzeń
związanych z dostępem do budynku, komputerów i innego wyposażenia systemu
komputerowego, a także do nośników (np. dysków, taśm, łączy komunikacyjnych).
3 Sniffing
Ethernet jest technologią o logicznej topologii magistrali (topologia logiczna to po
polsku opis tego, jak podróżuje siecią sygnał w odróżnieniu od topologii fizycznej, czyli tego
jak fizycznie wygląda ułożenie kabelków  medium transmisyjnego), zatem każda wysłana w
sieć ramka trafia do każdego urządzenia znajdującego się w danym segmencie, czy ściślej  w
domenie kolizyjnej. Gdy mamy do czynienia z fizyczną topologią gwiazdy (wszystkie
komputery podłączone do huba) to znaczy to tyle, że ten rozsyła przychodzącą ramkę na
wszystkie swoje porty. Zadaniem koncentratora (huba) umieszczonego w centralnym punkcie
rozdzielczym sieci jest wzmacnianie otrzymanego sygnału i przekazywanie go na wszystkie
swoje porty. W komputerze natomiast karta sieciowa sprawdza czy ramka zaadresowana jest
do tego urządzenia. Jeżeli tak to przekazywana jest w górę stosu protokołów do dalszej
obróbki. Dalej sprawa jest oczywista  chcąc podsłuchiwać ruch sieciowy, powinniśmy
zmusić naszą kartę sieciową do zaprzestania sprawdzania czy jej adres jest zgodny z
docelowym adresem przeznaczenia odbieranych ramek. Większość kart umożliwia proste
przestawienie w tryb realizujący to zadanie  zwany trybem mieszanym. Dalej to już kwestia
napisania odpowiedniego oprogramowania, które umożliwi nam analizę odebranych przez
kartę informacji.
Oczywiście to stosunkowo najłatwiejsza technika sniffingu. Można bowiem
podsłuchiwać ruch w sieci innymi sposobami  za pomocą specjalizowanego sprzętu, który
podłączymy do medium gdzieś po drodze między nadawcą a odbiorcą. Możemy zresztą
uniknąć fizycznego wpinania się w sieć opierając się na pomiarach fal elektromagnetycznych,
które powstają w sąsiedztwie przewodu, którym płynie prąd. Oczywiście wymaga to
odpowiedniego, dość kosztownego sprzętu.
Sniffing, czyli podsłuchiwanie, jest obecnie jedną z najbardziej rozpowszechnionych
metod penetracji systemów komputerowych. Za pomocą tej metody można przechwycić
wszystkie hasła, które nie są przekazywane zakodowanym kanałem. Wykorzystywana tu jest
podstawowa słabość protokołu TCP/IP, którą jest jawność transmitowanych danych.
Sniffing klasyfikowany jest jako atak pasywny, to znaczy nie wprowadzający zmian w
sieci, dlatego też jest bardzo trudny do wykrycia.
Karta sieciowa (NIC - Network Interface Card) w normalnym trybie pracy filtruje
wszystkie ramki nieskierowane na jej adres MAC. Większość kart NIC można jednak
programowo przełączyć w tryb promiscuous, w którym karta będzie przekazywać do
wyższych warstw wszystkie ramki. Pozwala to na podsłuchiwanie ruchu w ramach swojego
segmentu sieci - tę właściwość sieci ethernetowych wykorzystują sniffery. Jeśli program taki
umieści się na routerze, uzyskuje się dostęp do całego ruchu przez niego przechodzącego.
Ponieważ większość komunikacji sieciowej przesyłana jest otwartym tekstem, istnieje
bardzo duże niebezpieczeństwo wycieku poufnych informacji tą drogą. Powszechnie
wykorzystywanymi protokołami, które w żaden sposób nie zabezpieczają transmisji są:
HTTP, FTP, TELNET, POP3, NNTP, IMAP, SMTP czy SQL *NET8 (Oracle). Na ogół
dostępne są bezpieczne alternatywy dla wymienionych protokołów, które wykorzystują
algorytmy kryptograficzne w celu zapewnienia poufności, spójności oraz integralności
informacji. Gdy brak bezpiecznego odpowiednika lub są trudności z jego wdrożeniem,
istnieje możliwość tunelowania ruchu w szyfrowanym strumieniu (np. programem stunnel).
Do podsłuchiwania sieci używa się tak zwanych snifferów. Są to programy
zainstalowane na zwykłych komputerach klasy PC, skąd zbierają dane z całej podsieci, do
której jest podłączony komputer. Najbardziej podatne na ten atak są komputery znajdujące się
w sieci typu Ethernet.
3.1 Sniffing w sieci z przełącznikami
Zastosowanie przełączników drugiej warstwy uniemożliwia oczywiście stosowanie
klasycznych metod sniffingu. Istnieją jednak metody pozwalające na podsłuch informacji
również w sieciach przełączanych.
Przełącznik (switch) jest urządzeniem drugiej warstwy modelu referencyjnego ISO/OSI. Od
koncentratora (huba) różni się, z grubsza rzecz biorąc, tym, że potrafi nauczyć się adresów MAC
urządzeń podłączonych do swoich poszczególnych portów i przekazywać nadchodzące ramki
tylko do tego portu, do którego podłączone jest urządzenie o odpowiednim adresie fizycznym.
Switch ma wbudowaną pamięć, w której przechowuje tablicę adresów przypisanych do
poszczególnych portów. Jeżeli na którymś z portów switcha pojawia się ramka, switch
odczytuje adres jej nadawcy i umieszcza w tablicy adresów jako adres przypisany do danego
portu. Oczywiście dopóki przełącznik nie nauczy się, jakie adresy odpowiadają któremu
portowi, rozsyła ramki zaadresowane do nieznanego urządzenia na wszystkie swoje porty -
zupełnie jak hub.
Pojemność pamięci przeznaczonej na adresy wynosi zazwyczaj od dwóch do ośmiu
kilobajtów (w zależności od modelu switcha) co, biorąc pod uwagę fakt, że adres MAC ma
długość 6 bajtów, pozwala na zapamiętanie kilkuset adresów. Oczywiście standardowe switche
mają zazwyczaj kilkanaście portów, natomiast większa pamięć jest potrzebna w przypadku
łączenia ich ze sobą w sieci o topologii drzewa.
Zastosowanie przełączników drugiej warstwy uniemożliwia oczywiście stosowanie
klasycznych metod sniffingu (polegają one na przestawieniu karty sieciowej w tryb promiscuous,
to jest taki, w którym karta ignoruje adres odbiorcy zapisany w ramce i przetwarza wszystkie
ramki, które pojawią się w medium). Powód jest prosty - do interfejsu komputera dochodzą
tylko ramki przeznaczone dla niego i ramki rozgłoszeniowe (po angielsku broadcast -
mówimy, że switch rozdziela domeny kolizyjne, nie rozdziela natomiast domen
rozgłoszeniowych). Istnieją jednak metody pozwalające na podsłuch informacji również w
sieciach przełączanych.
3.1.1 MAC flooding
Pierwszą i - uprzedzając fakty - najmniej skuteczną metodą jest MAC flooding, czyli
zalewanie switcha dużą liczbą ramek ze sfałszowanym adresem zródłowym (nadawcy).
Oczywiście po pewnym czasie dochodzi do przepełnienia tablicy adresów. Nie umiejąc
prawidłowo nauczyć się nowych adresów pochodzących od rzeczywiście działających w sieci
komputerów switch zaczyna rozsyłać nadchodzące ramki zaadresowane do nieznanych mu
adresatów na wszystkie swoje porty. W przypadku porządnych switchy można w ten sposób
co najwyżej zafloodować port, z którego jest prowadzony atak, albowiem każdy z portów ma
przydzielony osobny fragment tablicy adresów. Tańsze i starsze modele przełączników mają
współdzieloną pamięć dla wszystkich portów, zatem zalewanie jednego z nich kończy się w
miarę szybką zamianą switcha w huba. Dalej można już stosować metody podsłuchu znane z
klasycznego ethernetu.
Oczywiście przełącznik co pewien czas odświeża informacje (inaczej nie moglibyśmy
nawet przepiąć działającego komputera z portu do portu), więc proces zalewania musi być
prowadzony w sposób ciągły, przy wykorzystaniu dość wydajnego komputera, a i to nie
gwarantuje odebrania stu procent podsłuchanych wiadomości. W końcu każda wiadomość
(nawet ta, którą udało się podsłuchać) niesie w sobie informacje o swoim nadawcy, a ta
informacja powoduje przypisanie w switchu adresu zródłowego do któregoś z portów.
Potrzeba pewnego czasu aby napływające z floodingu ramki wyparły tę informację z pamięci
przełącznika. Również od rozpoczęcia zalewania do wypełnienia tablic switcha musi upłynąć
nieco czasu.
3.1.2 ARP spoofing
Drugą metodą podsłuchiwania ramek w sieci przełączanej jest ARP spoofing. Metoda ta
polega na wysłaniu fałszywej ramki ARP Reply, z której komputery w sieci czerpią
informację na temat odwzorowania adresów logicznych (IP) na adresy fizyczne (MAC). Na
broadcastowe zapytanie klienta o adres IP (dajmy na to bramy do Internetu) odpowiada
komputer użyty do ataku (rzecz jasna odpowiada podając nieprawdziwą informację, z której
wynika, ze fizyczny adres bramy to adres jego karty sieciowej). Dalej komunikacja odbywa
się już na linii pirat - klient. Ten ostatni przekonany jest oczywiście, ze wysyła ramki pod
właściwy adres (fizyczny), a jedyne, o co ten pierwszy musi zadbać, to przekazywanie
zawartych w nich pakietów tam gdzie trzeba (do rzeczywistej bramy). Komputer pirata działa
tu więc jak swoisty pseudorouter drugiej warstwy. Mamy tu pełną analogie do ataków typu
Mań In The Middle stosowanych w warstwach wyższych (przez fałszowanie odpowiedzi
dnsowych).
3.1.3 Duplikacja adresu fizycznego
Oczywiście można posunąć się jeszcze dalej i podłączyć do dwóch portów switcha dwa
komputery o identycznych adresach fizycznych. Najprostszym w realizacji sposobem
osiągnięcia takiego efektu jest programowa zmiana adresu MAC interfejsu sieciowego. Opcję
te umożliwia wiele kart sieciowych (z kartami opartymi na RTL8139D włącznie) i systemów
operacyjnych (z Windows 2000, XP i oczywiście Linuksem). Nie jest to metoda do końca
pozbawiona wad i oczywiście można zamiast tego podsyłać po prostu odpowiednio
spreparowane ramki, nie zmieniając rzeczywistego adresu komputera użytego do ataku.
Z punktu widzenia switcha jest to równoważne sytuacji, w której do dwóch portów jest
przyłączone to samo urządzenie. W normalnej sieci takie sytuacje raczej nie mają miejsca
(wyjąwszy dość rzadki przypadek pętli mostowej). Może się jednak zdarzyć, że ktoś właśnie
zajmuje się przepinaniem komputerów z portu do portu, switch więc przez pewien czas
będzie przesyłał ramki na oba porty.
Ponieważ tak się składa, że większość transmisji w sieci ma charakter dialogu, kiedy na
jednym z portów pojawi się ramka z odpowiedzią (zawierająca odpowiedni adres MAC) -
wpis dotyczący drugiego portu zostanie usunięty a transmisja nań - zaniechana. Aby zatem
utrzymać switcha w stanie nieświadomości należy co jakiś czas podsyłać mu ramkę z
zespoofowanym adresem MAC. Jeżeli wykorzystaliśmy programową zmianę adresu karty
najprościej to osiągnąć choćby uruchamiając w tle pinga na dowolny adres. Oczywiście tego
typu kombinacja pozwala jedynie na przechwycenie informacji docierających do jednej
strony dialogu (tej, której MAC jest naśladowany) ale może to okazać się wystarczające do na
przykład przechwycenia haseł. Jeżeli nie - należy postarać się o drugi komputer, drugą kartę
sieciową, albo spoofować naraz oba adresy, z tym, że tu już nie będziemy mogli się posłużyć
standardową programową zmianą MAC adresu karty w Windows.
Nie trzeba dodawać, że adres logiczny (IP) komputera użytego do ataku powinien być
inny niż adres logiczny komputera, pod który ten się podszywa, albo przynajmniej należy na
nim wyłączyć obsługę odpowiedniej części protokołów, w przeciwnym bowiem razie może
dojść do różnych dziwnych sytuacji, na przykład klient zamiast nawiązać połączenie z
komputerem podsłuchiwanym nawiąże je z podsłuchującym
4 Zabezpieczenia przed sniffingiem
Zastosowanie mechanizmów szyfrujących zmniejsza efektywność snifferów. Mimo iż
bezpieczne protokoły są dostępne, spora liczba użytkowników o nich nie wie lub z nich nie
korzysta. Ze snifferem walczyć można na kilka sposobów. Po pierwsze - spróbować go
wykryć (lokalnie albo zdalnie) i odinstalować. Druga metoda polega na generowaniu takiego
ruchu sieciowego, aby umknął on uwadze programu podsłuchującego. Po trzecie można tak
zaprojektować topologię sieci oraz schemat adresowania logicznego, aby utrudnić
podsłuchiwanie. Wykrycie sniffera to zadanie nieproste, ale wykonalne. Przede wszystkim
należy zlokalizować w sieci maszynę, na której sniffer się znajduje, a następnie znalezć
sniffera w systemie, co nie zawsze jest łatwe.
Zdalna detekcja snifferów jest wprawdzie trudna, ale możliwa dzięki kilku efektom
ubocznym ich działania. Nie wszystkie sniffery są programami pasywnymi, a zmiany, jakie
wprowadzają w systemie - przez włączenie trybu promiscuous - dają się zdalnie wykryć.
Program Neped (Network Promiscuous Ethernet Detector) wykorzystuje błąd w
implementacji stosu TCP/IP jądra Linuksa. Po odebraniu ramki z warstwy fizycznej na
podstawie poprawnego adresu MAC, stosy takie przekazują do warstwy wyższej (łącza
danych i wyżej) wszystkie pakiety zawierające poprawny adres IP maszyny. Podczas
normalnej pracy działanie takie sprawdza się bardzo dobrze - na poziomie karty NIC
sprawdzany jest adres MAC komputera, a warstwa sieciowa kontroluje już tylko adres
logiczny (np. IP). Natomiast karta przełączona w tryb promiscuous przekazuje wyżej
wszystkie ramki, a nie tylko te skierowane do maszyny.
Jeśli nałoży się na to sprawdzanie przez wyższą warstwę wyłącznie adresu logicznego,
to sytuację taką można zdalnie wykryć. Wystarczy wysyłać na nieistniejący w sieci adres
MAC pakiet zawierający poprawny adres logiczny, który wywołuje reakcje zdalnego hosta.
Neped wysyła do wybranej maszyny ramkę ARP request, w której odwzorowanie adresu IP
na adres MAC zródła podane jest prawidłowo. Poprawny jest również adres IP testowanego
hosta, ale nie jego adres MAC. Jeśli skanowana maszyna odpowie na tak spreparowany
pakiet, znaczy to, że jej interfejs sieciowy pracuje w trybie promiscuous.
Nic nie stoi na przeszkodzie, aby zamiast zapytania ARP posłużyć się zapytaniem
ICMP echo request (ping) z podobnie spreparowanym adresem. Niewątpliwą zaletą tej
metody jest jej skuteczność w sieciach przełączanych. Przełącznik po odebraniu ramki
skierowanej do nieznanego adresu MAC rozgłosi ją na wszystkich portach. W technice tej
można korzystać z dowolnego protokołu (np. TCP, UDP), który skłoni skanowany host do
wysłania odpowiedzi (choćby pakietu RST).
4.1 Wykorzystanie błędów w implementacji stosu TCP/IP
Nie tylko stos TCP/IP Linuksa niepoprawnie przetwarza pakiety. Aby wykorzystać lukę w stosie TCP/IP
systemów NetBSD, należy wysłać ramkę z nieistniejącym adresem MAC na adres rozgłoszeniowy sieci.
Systemy z rodziny Windows (95/98/NT) również nie filtrują odpowiednio ramek z adresem rozgłoszeniowym.
Poprawny rozgłoszeniowy adres MAC to ff:ff:ff:ff:ff:ff. System Windows za ramkę rozgłoszeniową uznaje
jednak każdą ramkę z adresem, którego pierwszy bajt ma wartość ff. Dlatego do warstwy wyższej przekazywane
są ramki z adresami ff:xx:xx:xx: xx:xx, gdzie xx to dowolna wartość szesnastkowa. AntiSniff pozwala na użycie
dowolnego adresu MAC w testowanej ramce. Ma to na celu uniemożliwienie snifferom jego wykrycia. Wynik
testu jednoznacznie stwierdza, czy karta NIC zdalnej maszyny pracuje w trybie promiscuous, czy nie.
4.2 Test DNS
Wykorzystuje fakt, że niektóre ze snifferów łamią zasadę pasywności, dokonując
konwersji przechwyconych adresów IP na nazwy domenowe. Czynność tę sniffery wykonują
w standardowy sposób, wysyłając zapytanie do serwera DNS. Adresy domenowe dostarczają
dodatkowej informacji o komputerze, którego ruch został przechwycony. Aby znalezć sniffer
wysyłający zapytania DNS, można posłużyć się następującym scenariuszem:
uruchomić własny sniffer,
wysłać w sieć pakiet z nieistniejącym adresem IP,
nasłuchiwać, czy w sieci nie pojawi się datagram UDP skierowany do serwera DNS z
prośbą o identyfikację nazwy domenowej dla adresu IP, który przed chwilą został
wysłany. Adres zródła tego pakietu to maszyna z zainstalowanym snifferem.
Test pozwala wykryć pasywne narzędzie do analizy ruchu sieciowego - linuksowy ettercap.
4.3 Opóznienia
Nawet najlepiej napisane sniffery stanowią duże obciążenie dla komputera. Podczas
normalnej pracy system operacyjny otrzymuje z karty NIC wyłącznie ramki skierowane do
niego samego, reszta informacji jest sprzętowo odrzucana przez kartę. Kiedy jednak karta
sieciowa zostanie przełączona w tryb promiscuous, a sieć jest obciążona, to do systemu
zaczyna docierać ogromna ilość informacji, co spowalnia jego działanie. Generując w sieci
nadmiarowy ruch i badając czas odpowiedzi poszczególnych hostów, można z dużym
prawdopodobieństwem znalezć maszyny podsłuchujące. Scenariusz postępowania wygląda
następująco:
do testowanego hosta wysyła się serię pingów i sprawdza czas odpowiedzi (z
możliwie najwyższą dokładnością - do milisekund),
generuje się dużą liczbę ramek z niepoprawnymi adresami MAC,
jednocześnie sprawdza się czas odpowiedzi od testowanego hosta - maszyny z
zainstalowanym snifferem wykazują znacznie większe opóznienie niż hosty
przetwarzające jedynie dane do nich skierowane.
AntiSniff wykonuje trzy testy na opóznienia różniące się rodzajem danych, którymi
zalewa sieć. Ma to na celu wykrycie snifferów o różnych zastosowaniach.
Podstawową wadą tej metody jest konieczność chwilowego przeciążania sieci
niepoprawnymi pakietami, co może prowadzić do burzy kolizyjnej i chwilowej przerwy w
działaniu. Lepiej zatem możliwie często wykonywać testy obciążeniowe. Dobre wyniki
można również uzyskać, testując sieć w czasie najmniejszego obciążenia zwykłą pracą.
Metoda ta opiera się na subiektywnej ocenie osoby przeprowadzającej test, która musi na
podstawie uzyskanych wyników stwierdzić, czy opóznienie od danego hosta mieści się
jeszcze w granicy tolerancji, czy też spowodowało je działające oprogramowanie sniffera.
Trzeba także pamiętać, że sniffery pracują z uprawnieniami użytkownika (nawet
administratora), a pingi obsługiwane są znacznie szybciej przez jądro systemu. Wpływa to na
wyniki uzyskane za pomocą tej techniki.
4.4 Przesłuchanie podejrzanego hosta
Istnieją też metody wykrywania snifferów opierające się na założeniu, że host podczas normalnej pracy
nie powinien znać pewnych informacji, a jeśli je zna, to na pewno uzyskał je z podsłuchu. Trzeba tylko
wiedzieć, o co zapytać.
Metoda ARP cache wykorzystuje to, że protokół ARP tworzy tablicę, w której przez pewien czas
przechowuje poznane odwzorowywania adresów IP-MAC. Każdy host wysyłając/otrzymując
zapytanie/odpowiedz ARP, zachowuje w tablicy tę informację, co można wykorzystać w następujący sposób:
wysłać na nieistniejący adres MAC pakiet ARP-replay mający poprawne odwzorowanie adresu IP na
MAC komputera skanującego;
wysłać zapytanie ICMP echo-request (ping) do maszyny podejrzanej o podsłuchiwanie. Jeśli nadejdzie
odpowiedz (ICMP echo replay) niepoprzedzona zapytaniem ARP o adres MAC komputera
skanującego, będzie to znak, że host rzeczywiście podsłuchuje, ponieważ dysponował informacją,
której nie miał prawa znać. Aby metoda dawała poprawne rezultaty, trzeba mieć pewność, że
sprawdzana maszyna nie kontaktowała się ostatnio (czas, po jakim odwzorowanie jest usuwane z
tablicy wynosi zwykle 20 minut) z lokalnym komputerem, a więc na pewno nie mogła nauczyć się jego
adresu z legalnego zródła. Aby mieć pewność, że maszyna podsłuchuje, można wysłać do niej ping z
niepoprawnym adresem MAC zródła. Jeśli na taki pakiet odpowie wysyłaniem pakietu na właściwy
adres MAC, znaczy to, że znała go z innego zródła, czyli podsłuchiwała.
4.5 Wykorzystanie source routing u
Source routing to cecha protokołu IP pozwalająca na samodzielne określenie drogi, jaką
pakiet ma dotrzeć do celu. Implementowana jest w mostach, przełącznikach i routerach
topologii Token Ring. Odpowiednie informacje umieszcza się w nagłówku IP. Router po
odebraniu takiego pakietu, zamiast samodzielnie wybrać następny skok, wyśle go według
wskazań w nagłówku. Można w ten sposób zażądać, aby pakiet z hosta A został przesłany do
hosta C, ale za pośrednictwem hosta B.
Test działa następująco:
1. Do maszyny w tym samym segmencie sieci z ustawionym source
routingiem w nagłówku IP wysyłany jest ping. Trasa, którą pakiet ma
dotrzeć do celu, wiedzie przez maszynę, która nie jest routerem i nie ma
zdolności do przekazywania dalej pakietów (trzeba to wcześniej
sprawdzić). Ping przesłany przez taką maszynę zostanie odrzucony i nie
powinien dotrzeć do celu - w tym przypadku skanowanego hosta.
2. Jeśli na tak wysłany ping przyjdzie odpowiedz, znaczy to, że maszyna
docelowa musiała podsłuchać ten pakiet, gdyż właściwą drogą nie mógł
on do niej dotrzeć. Aby mieć pewność, należy sprawdzić pole TTL (Time
To Live) w otrzymanej odpowiedzi. Jeśli pole będzie miało tę samą
wartość, jak dla pakietu ping wysłanego bez source routingu, to znaczy,
że maszyna podsłuchiwała. Jeśli jednak wartość TTL będzie mniejsza o
jeden (host pośredniczący, który nie umie routować), znaczy to, że host
pośredniczący poprawnie przekazuje pakiety.
Metoda ta pozwala badać maszyny znajdujące się w sąsiednich segmentach sieci. W takim
przypadku jako host pośredniczący należy zastosować komputer z badanego segmentu
(niepotrafiący routować pakietów!).
4.6 Wykrywanie snifferów używających ARP spoofing
Co do ARP spoofingu to najłatwiej oczywiście sprowokować potencjalnego agresora do
wysłania fałszywej ramki (każdy porządny administrator rzecz jasna trzyma u siebie w kasie
pancernej zeszyt z zapisanymi adresami MAC wszystkich kart sieciowych w całej sieci, odpo-
wiadającymi im adresami IP poszczególnych urządzeń, w których te karty są zamontowane i
informacją, na którym porcie switcha dane urządzenie się znajduje). Sprawa nieco komplikuje
się, gdy agresor zamierza podsłuchiwać nie pierwszy z brzegu, ale jakiś konkretny komputer,
a na zapytania ARP wysyłane z komputera administratora nie odpowiada. Pewnym
rozwiązaniem jest wysyłanie zapytania ARP z zespoofowanym adresem zródłowym
udającym adres potencjalnej ofiary. Switch wprawdzie prześle odpowiedz tam gdzie trzeba,
czyli do portu, do którego przypisany jest MAC adres tegoż komputera, ale właśnie przed
chwilą (z zespoofowanej ramki) dowiedział się, że tym portem jest port, pod który
podłączony jest komputer administratora. Na szczęście (w tym wypadku) czas aktualizacji
tablic switcha waha się w granicach od kilku do kilkunastu sekund, zaś odpowiedz ARP w
średnio obciążonej sieci powinna nadejść wcześniej. Oczywiście jeśli otrzymamy dwie
odpowiedzi ARP (od pirata i od bramy) to mamy już winnego.
Stosunkowo najtrudniej wykryć sytuację, w której w sieci funkcjonują dwa identyczne
komputery. Oczywiście jeżeli adresy IP będą różne, to wystarczy przepytać całą sieć (za
pomocą protokołu ARP) i sprawdzić, czy dwie maszyny nie przyznają się do tego samego
adresu (fizycznego). Jeśli adresy IP będą takie same i na komputerze agresora nie zostaną
zablokowane usługi odpowiedzi (np. ICMP Echo) to wskazówką może być otrzymywanie
podwójnych odpowiedzi na wysłane pakiety. Jeżeli agresor zablokował wszystkie możliwe
protokoły udzielające odpowiedzi (ARP, RARP, TCP, ICMP) albo po prostu nie uruchomił
na swoim komputerze stosu protokołów TCP/IP - w końcu do sniffingu tego nie potrzeba, to
można skorzystać z faktu, że w czasie prowadzenia ataku musi w sposób ciągły informować
switcha o tym, że również na jego porcie znajduje się adres MAC taki jak adres
podsłuchiwanego komputera (inaczej switch uaktualni dane w tablicy). Jeżeli nie jesteśmy
szczęśliwymi posiadaczami urządzenia zarządzalnego nie możemy sprawdzić tablicy
adresowej switcha, pozostaje więc tylko wspomniana metoda podsłuchu ruchu sieciowego na
określonym kabelku i jego analizy pod kątem fizycznych adresów nadawcy. Oczywiście w
sieci, w której mamy wiele przełączników spiętych w topologii drzewa i porozmieszczanych
w różnych dziwnych miejscach taka operacja może być nieco skomplikowana.
Rzecz jasna zabiegi takie jak monitorowanie własnej sieci i wysyłanie do niej
fałszywych informacji powinny być przez administratora stosowane tylko w ostateczności,
kiedy naprawdę istnieje uzasadnione podejrzenie, że dzieje się coś niedobrego i wyłącznie w
celu wykrycia agresora lub przyczyny dziwnych zachowań sieci
4.7 Lokalne wykrywanie snifferów
Po odnalezieniu maszyny podejrzanej o podsłuchiwanie można przystąpić do szukania
samego programu. W środowiskach wielozadaniowych i wielodostępowych znalezienie
programu, który został przez autora tak zaprojektowany, aby nie rzucał się w oczy, może nie
być łatwe. Do poszukiwania sniffera na lokalnej maszynie przyda się wiedza na temat
działania snifferów oraz funkcjonowania systemu operacyjnego. Pierwsza metoda polega na
szukaniu interfejsów sieciowych z włączonym trybem promiscuous. Nie gwarantuje ona
jednak sukcesu z dwóch powodów:
nie wszystkie sniffery przełączają interfejs sieciowy w tryb promiscuous (np. sniffer
na routerze może zadowolić się pakietami przez niego przechodzącymi). Niektóre
karty NIC nie umożliwiają przejścia w ten tryb;
jeśli sniffer włączy tryb promiscuous bez wywołania funkcji systemowej sys_ioctl(),
to nawet jądro systemu nie będzie o tym wiedziało, a więc nie będzie można tego
stanu wykryć.
W środowisku uniksowym najprostszą, ale i mało wiarygodną metodą sprawdzenia stanu
interfejsu jest wywołanie polecenia ifconfig, np.
# ifconfig -a |grep PROMISC
Wiarygodność tej metody zależy od integralności systemu operacyjnego. Jeśli intruz dostał
się na lokalny komputer i zainstalował sniffera, prawdopodobnie zadbał o jego ukrycie.
Odpowiednio zmodyfikowana wersja programu ifconfig nie wyda więc jego działania.
Program grep też jest potencjalnym celem ataku.
Istnieją programy, które specjalizują się w wykrywaniu stanu interfejsu sieciowego na
podstawie flagi IFF_ PROMISC ustawionej w jądrze systemu. Zwykle po wykryciu interfejsu
w trybie promiscuous wysyłają one e-mail na wskazany adres. Regularne uruchamianie z
crona takiego programu może być dobrym zabezpieczeniem.
Inną metodą wykrycia interfejsu w trybie promiscuous jest przechwycenie wywołania
funkcji sys_ioctl() zmieniającej stan pracy interfejsu. Odpowiednie modyfikacje można
poczynić w zródłach jądra systemu lub stworzyć ładowalny moduł. Po rekompilacji każda
zamiana trybu może wyzwalać dowolną akcję - od uniemożliwienia zmiany trybu po wpis w
logach i wysłanie powiadomienia.
Wpis w logach umieszczany jest domyślnie po zmianie trybu interfejsu. Jednak nie ma
co liczyć, że odpowiednia informacja znajdzie się tam po złamaniu zabezpieczeń systemu
przez intruza.
Metoda siłowa polega na wyłączaniu co określony czas trybu promiscuous na
wszystkich interfejsach, np. z crona. Można w tym celu wydać polecenie:
# ifconfig eth0  promisc
Jeśli jednak intruz podmieni wersję programu ifconfig, nie można już mieć zaufania co
do skuteczności tej metody.
Sniffer jest programem, który do wykonywania swoich funkcji potrzebuje najczęściej
(choć nie zawsze - np. na routerze) uprawnień administratora. Proces sniffera można
spróbować zlokalizować w systemie na podstawie kilku charakterystycznych cech:
UID=0 (gniazdo typu RAW_SOCKET lub PACKET_SOCKET otworzyć może tylko
administrator),
otwarte jest przynajmniej jedno gniazdo,
tworzy logi ze swojej działalności (zapisuje podsłuchane hasła lub inne odfiltrowane
informacje) bądz wysyła je w innej postaci, np. pocztą, ftp,
długi czas działania - zbliżony do systemu (uptime),
zwykle uruchamiany jest razem z systemem lub ma program nadzorcy, który dba o
jego działanie,
dziwna nazwa sugerująca jego powiązanie z procesami systemowymi - ma to
zniechęcić mniej doświadczonych administratorów do jego usunięcia,
proces sniffera znacznie obciąża system.
Z reguły intencją intruza jest zapewnienie ciągłości działania sniffera po restarcie
maszyny lub innych nieprzewidzianych zdarzeniach. Częstą praktyką jest umieszczanie w
skryptach startowych wpisu uruchamiającego jego proces. Zlokalizowanie tego wpisu może
nie być łatwe, ponieważ sniffer na ogół zawiera program nadzorujący, restartujący go w
przypadku wadliwego działania. Mnogość skryptów startowych nie sprzyja poszukiwaniom.
Trzeba pamiętać, że przy starcie uruchamiane są nie tylko skrypty z /etc/rc.d, ale również z
niektórych podkatalogów. Linijkę uruchamiającą można zaszyć w skrypcie uruchamiającym
Apache lub innego, dowolnego demona. Przy wejściu użytkownika do systemu
uruchamianych jest wiele skryptów powłoki (~.bash_profile, ~.bashrc, /etc/profile i inne), z
których każdy może uruchamiać sniffera, dlatego nawet katalog /etc/sysconfig/network-
scripts nie powinien zostawać bez nadzoru.
Osobną grupę poszukiwań stanowią skrypty crona i anacrona. Zadania crona znajdują
się nie tylko w /var/spool/cron/, ale również w /etc/cron.d, /etc/cron.daily, /etc/cron.hourly,
/etc/cron.weekly, /etc/cron.monthly. Sniffer nie musi być wcale uruchamiany bezpośrednio z
crona, a za pośrednictwem skryptu dodanego tam w celu uruchamiania programu do
wykrywania trybu promiscuous karty NIC.
W poszukiwaniu logów sniffera można posłużyć się metodą siłową. Należy w tym celu
stworzyć na którejś z maszyn w sieci tymczasowe konto z nazwą użytkownika sugerującą
jego ważność (np. admin, root), połączyć się z nim, a następnie skasować. Jeśli na
komputerze pracuje sniffer, który zarejestrował to logowanie w niezaszyfrowanym pliku, to
wystarczy przejrzeć cały system w poszukiwaniu pliku zawierającego hasło, które przed
chwilą niezaszyfrowane przesłane zostało przez sieć. Kiedy poczeka się jeszcze dłużej (np.
tydzień), można odnotować próbę zalogowania się na to konto. Będzie to ewidentny dowód
działania sniffera w sieci.
Zbudowanie sniffera niewykrywalnego konwencjonalnymi metodami nie jest
niemożliwe. Kilka systemów NIDS stosuje takie implementacje, np. Cisco NetRanger. Są to
wydzielone maszyny z zaimplementowaną wyłącznie warstwą fizyczną modelu OSI, które nie
mają adresu MAC ani IP i nie generują żadnego ruchu. Aby odebrać od nich informacje,
potrzebna jest druga karta NIC. Takie sniffery są w stanie wykryć jedynie specjalistyczne
urządzenia do badania fizycznych właściwości kabli sieciowych.
Możliwe jest także skonstruowanie interfejsu sieciowego, który sprzętowo nie będzie w
stanie wysyłać żadnych ramek lub będzie miał tę funkcję zablokowaną. Podsłuchiwanie w
tym przypadku wymaga jednak fizycznego dostępu do inwigilowanej sieci, do której należy
podłączyć tak zmodyfikowaną kartę sieciową. Innym sposobem jest filtrowanie (np. za
pomocą lokalnie zainstalowanego firewalla) całego ruchu wychodzącego. Metoda taka nie
jest jednak stuprocentowo pewna, gdyż błędy w oprogramowaniu wykrywane są każdego
dnia, zatem znalezienie luki i ominięcie filtra jest tylko kwestią czasu. Wiele zależy od
samego programu podsłuchującego. Dobrze napisany sniffer potrafi w dużym stopniu
ograniczyć zdalne czy lokalne wykrycie go - na przykład program AntiAntiSniff stosując
kilka technik, unika wykrycia przez AntiSniff.
5 Przechwytywanie hasła
Najprostszą metodą włamania się do systemu jest przechwycenie hasła jego
użytkowników lub nawet administratora. Istnieją dwie metody przechwytywania haseł:
podsłuchanie haseł podczas przesyłania ich przy wykorzystaniu nieszyfrowanych protokołów
oraz używanie tak zwanych "koni trojańskich".
5.1 Przechwytywanie hasła w nieszyfrowanych protokołach
Nawet obecnie bardzo wiele protokołów komunikacji, szczególnie starych, nie
wykorzystuje żadnych technik szyfrowania danych, a mechanizm autoryzacji dostępu do
zasobów systemu opiera się głównie o hasło przesyłane w sposób jawny najczęściej na
samym początku połączenia. Do takich protokołów należą między innymi bardzo popularne i
szeroko stosowane protokoły takie jak: telnet, ftp, rsh, pop3, imap, http.
We wszystkich wymienionych protokołach klient łączy się ze zdalnego komputera z
serwerem używając do tego zwykłych socketów, a transmisja danych przebiega poprzez wiele
routerów oraz segmentów sieci i ponieważ nie jest w żaden sposób szyfrowana (wyjątek
stanowią odpowiednie modyfikacje tych protokołów wykorzystujące SSL - Secure Socket
Layer) może zostać bardzo łatwo "podsłuchana". Wykorzystywane są w tym celu specjalne
narzędzia, zwane potocznie "snifferami", które mogą zostać umieszczone bezpośrednio na
routerze (routerem bywa czasem komputer, na przykład zwykły PC pracujący pod kontrolą
systemu Linux, wyposażony w kilka interfejsów sieciowych), lub w segmencie sieci, przez
który przechodzą pakiety interesującej włamywacza transmisji. Sniffer ma za zadanie śledzić
połączenia na konkretny port serwera (np. telnet) wyłapując pakiety przeznaczone dla serwera
(przykładowo w pojedynczym segmencie sieci ethernet pakiety docierają do wszystkich
komputerów i dzięki odpowiedniej konfiguracji interfejsu sieciowego można odbierać pakiety
o dowolnym adresie docelowym) i zapisywać te bajty z transmisji, które zawierają wpisywane
przez użytkownika login oraz hasło. W przypadku protokołu telnet wystarczy zapisać
kilkanaście pierwszych bajtów wysyłanych przez klienta, podczas gdy w protokole POP3
nazwa użytkownika przekazywana jest bezpośrednio po komendzie USER, a hasło po
komendzie PASS. Dzięki sprytnie napisanemu snifferowi hacker może uzyskać tą metodą
hasło konkretnego użytkownika. Metoda ta wymaga jednak umieszczenia sniffera (sniffer do
poprawnego działania wymaga odpowiednio wysokich uprawnień) na drodze prowadzącej do
serwera lub najlepiej bezpośrednio w segmencie sieci, w którym znajduje się serwer.
Niestety, na obecnym etapie obsługa wyłącznie połączeń szyfrowanych może nas dość
skutecznie odciąć od reszty użytkowników Internetu, którzy pracują przy mniej solidnych
zabezpieczeniach. Aby więc przynajmniej częściowo ochronić się przed atakiem
wykorzystującym luki TCP i aplikacji internetowych, powinniśmy zadbać o jak najsilniejsze
mechanizmy autoryzacji użytkowników oraz kontroli ich uprawnień. Jednym z
najważniejszych elementów jest wdrożenie mechanizmów, które będą wymuszały obieranie
haseł odpornych na ataki słownikowe oraz blokowały konta, dla których hasła nie były
zmieniane od dłuższego czasu.
5.2 Przechwytywanie hasła z wykorzystaniem "koni trojańskich"
Najprostszą metodą przechwycenia czyjegoś hasła jest umieszczenie na komputerze, z
którego ta osoba się loguje do systemu programu "udającego" standardowy program
logowania (np. login). Może to wyglądać w sposób następujący: Załóżmy, że podczas
logowania na komputerze baranek wyświetlany jest następujący komunikat:
Welcome to BARANEK.
Please enter your login and password.
login:
Hacker loguje się na komputerze i pisze program, który wykonuje następujące czynności:
1) wyświetla identyczny komunikat (należy uważać przy tym na wszelkie zmiany
standardowego komunikatu, które mogą ułatwić wykrycie konia trojańskiego)
2) oczekuje na wprowadzenie nazwy użytkownika oraz hasła (hasło oczywiście nie może
pojawiać się na ekranie)
3) wypisuje na ekranie komunikat login incorrect aby użytkownik pomyślał, że
wpisał niepoprawne hasło
4) zapisuje login oraz hasło do pliku
5) kończy działanie oraz wylogowuje użytkownika, co powoduje wyświetlenie
prawdziwego już komunikatu logowania
Tego typu konie trojańskie mogą być oczywiście znacznie bardziej wyrafinowane - w
skrajnym przypadku mogą to być odpowiednio zmodyfikowane programy klientów login,
telnet, ftp lub ssh.
6 Atak przez zalanie
Atak zwany SYN flooding opiera się na specyficznej własności protokołu TCP/IP,
która polega na trójfazowym nawiązywaniu połączenia pomiędzy klientem a serwerem. W
pierwszej fazie klient inicjuje połączenie przez wysłanie pakietu ze znacznikiem SYN i
początkowym numerem sekwencyjnym. Następnie serwer wysyła z powrotem pakiet z
ustawionymi bitami SYN i ACK oraz swoim początkowym numerem sekwencyjnym. W
końcu klient wysyła trzeci pakiet z ustawionym jedynie bitem ACK.
Znaczniki SYN i ACK pozwalają odróżnić pakiety wysłane w celu nawiązania
połączenia od pakietów odesłanych w odpowiedzi na już utworzone połączenia (tylko
ustawiony bit ACK) - właściwość ta jest wykorzystywana przy budowie tzw. snifferów.
Inicjacja wielu żądań połączeń TCP przez klienta w taki sposób, by nie doszło do żadnego
skutecznego połączenia powoduje utrzymywanie kolejek zasobów na serwerze dla każdego
nawiązywanego połączenia i tak obciąża serwer, że może uniemożliwić mu działanie.
Warto zaznaczyć, że połączenia te mają najczęściej sfałszowany adres zródłowy, co
uniemożliwia wyśledzenie przestępcy. Wykorzystując specyfikę TCP, można napisać
program (wiele implementacji jest dostępnych w Internecie), którego głównym zadaniem
będzie inicjowanie jednego połączenia za drugim z wybranym serwerem.
7 Lądowanie na serwerze
Atak typu land, nazywany jest również loopback SYN, ponieważ cała transmisja
odbywa się po tzw. interfejsie loopback, co uniemożliwia oglądanie wysyłanych pakietów
narzędziami sieciowymi. Atak ten wykorzystuje IP spoofing - komputer włamywacza udaje
uprawniony komputer, używając jego adresu IP. Operacja taka jest możliwa, jeżeli zaufanie
komputerów pracujących w sieci opiera się na znajomości ich wzajemnych adresów IP - a tak
jest bardzo często.
Sam atak polega na przekierowaniu nawiązywanego połączenia TCP. Włamywacz musi
jedynie odpowiednio rozpocząć inicjację połączenia TCP, czyli wysłać pakiet do
atakowanego komputera z ustawionym bitem SYN i z jego własnym adresem jako adresem
zródłowym. Atakowany komputer po otrzymaniu pakietu z flagą SYN wysyła w odpowiedzi
(sam do siebie, po interfejsie loopback) pakiet z ustawionymi bitami SYN i ACK. Nie
przerywa on połączenia, ponieważ otrzymuje pakiet z flagą ACK. Problem polega na tym, że
nie jest sprawdzane ustawienie bitu SYN - nie byłoby kłopotu, gdyby pakiet z flagą ACK i
SYN został odrzucony, a połączenie zamknięte. Ze względu na niezgodność numerów
sekwencji otrzymanego pakietu, serwer próbuje od nowa nawiązać połączenie przez wysłanie
kolejnego pakietu z ustawionymi bitami SYN oraz ACK. Prowadzi to do nieskończonej pętli,
w której serwer utrzymuje dialog sam ze sobą.
Atak land uchodzi za jeden z najbardziej efektywnych, a wykorzystujące go exploity
opublikowano na listach dyskusyjnych wraz z kodami zródłowymi. Warto zaznaczyć, że atak
ten blokuje i zawiesza wiele typów systemów operacyjnych oraz routerów.
8 Prośba o echo
Atak typu ICMP echo request również wykorzystuje spoofing. Bazuje na protokole
ICMP (Internet Control Message Protocol) używanym do niskopoziomowych operacji w
Internecie, np. do testowania prawidłowości komunikacji sieciowej. Przesyłane pakiety
identyfikowane są po 8-bitowym polu typu - np. na pakiet ICMP echo request (typ pakietu
"8") stacja odpowiada pakietem ICMP echo reply (typ pakietu "0"), co jest równoważne ze
standardowym poleceniem ping.
Serwer, który zostanie zarzucony prośbami o echo przez wiele hostów jednocześnie
będzie je odbierał i próbował na nie odpowiadać. Spowoduje to takie jego obciążenie, że nie
będzie mógł obsługiwać innych żądań. Atak tego typu najczęściej jest realizowany przez
wysłanie na adres sieci pakietu ICMP echo request z adresem zródłowym potencjalnej ofiary.
Częściowym rozwiązaniem problemu jest zablokowanie na węzle międzysieciowym
pakietów ping kierowanych na adres rozgłoszeniowy sieci wewnętrznej. Uniemożliwi to
wykorzystanie hostów tej sieci do produkcji pakietów ICMP typu "0" i "8".
Możliwe jest też fałszowanie innych pakietów ICMP, tzn. typu 3 - ICMP destination
unreachable, typu 4 - ICMP source quench oraz typu 5 - ICMP redirect, co może spowodować
przekierowanie ruchu sieciowego i zablokowanie działania sieci.
9 Ping Of Death
Większość systemów operacyjnych obsługujących stos TCP/IP posiada pewną wadę.
Polega ona na tym, że wysłany do komputera pakiet ping o złej długości może obciążyć lub
nawet zawiesić cały komputer. Najmniej zabezpieczone przed tym atakiem są komputery
pracujące pod kontrolą systemu Windows. Jest to typowy atak Denial of Service, czyli
zablokowania świadczenia usług. Aatwo można sprawdzić, czy system jest podatny na tego
typu ataki, wykonując poniższą komendę:
ping -l 65510 your.host.ip.address
Dla większości systemów unixowych istnieją już odpowiednie patche, które naprawiają
ten błąd.
10 DoS (Denial of Service)
DoS to skrót od "Denial od Service". Oznacza odmowę usługi dla osób uprawnionych.
Można np. nawiązać z serwerem tak wiele połączeń, ze nie będzie mógł pracować normalnie.
Przykładami takich ataków to omówione wcześniej: atak przez zalanie, lądowanie na
serwerze, prośba o echo, ping of death. Ataki DoS wykorzystują charakterystyczne luki
znanych pakietów oprogramowania. Przykładem może być popularny serwer webowy IIS.
Osoba zamierzająca obejrzeć stronę serwowaną przez IIS, sama zazwyczaj o tym nie wiedząc,
loguje się na anonimowe konto USR_Nazwa_Komputera. Logujący może mieć złe zamiary i
aby je zrealizować, wystarczy mu znajomość pewnych cech IIS. W tym przypadku wystarczy
tylko wiedzieć, że IIS domyślnie blokuje konto po trzech nieudanych próbach logowania.
Paradoksalnie to, co miało służyć bezpieczeństwu systemu (i służy dobrze w sieciach
lokalnych) okazuje się zdradliwą pułapką. Po trzecim logowaniu (logujemy się z
wykorzystaniem komendy net use, wpisując przy tym nieprawidłowe hasło) konto zostaje
zablokowane (aż do upłynięcia interwału lub interwencji administratora). Takim to prostym
sposobem udaje się przeprowadzić atak DoS i doprowadzić do odmowy świadczenia usługi.
11 DDoS (Distributed Denial of Service)
Każdy system ma pewne ograniczenia i za pomocą odpowiednich narzędzi zawsze
można doprowadzić do wyczerpania wszystkich jego zasobów. Ataki typu Distributed Denial
of Service (DDoS rozproszona odmowa usługi) wykorzystują starą technikę Denial of
Service (DoS odmowa usługi) opakowaną w nową technologię.
Atak DoS ma dwa zasadnicze ograniczenia. Po pierwsze przeprowadzany jest z
pojedynczego komputera, którego łącze internetowe może mieć lub ma zbyt małą
przepustowość w stosunku do łącza ofiary. Po drugie prowadząc atak z jednego komputera,
atakujący naraża się na szybsze wykrycie. Dlatego atak DoS przeprowadzany jest najczęściej
na mniejsze serwery zawierające strony WWW. Atak na większy cel, na przykład portal lub
serwer DNS, wymaga zastosowania bardziej wyrafinowanej metody - DDoS, czyli
rozproszonego ataku DoS, opracowanego jako remedium na ograniczenia DoS.
Główna różnica pomiędzy obiema metodami dotyczy czynnika ilościowego - w DDoS
atak nie jest przeprowadzany z pojedynczego komputera, lecz jednocześnie z wielu. Taką
właśnie metodą zaatakowana została większość wspomnianych na wstępie systemów. Sama
idea ataku DDoS jest więc prosta. Pewnym wyzwaniem jest jednak jego przygotowanie, które
niekiedy trwa wiele miesięcy. Powód jest oczywisty - należy zdobyć kontrolę nad taką liczbą
komputerów, aby atak miał szanse powodzenia. Okres przygotowań jest tym dłuższy, im
"potężniejszymi" zasobami dysponuje system ofiary.
11.1 Opis sieci DDoS
Wszystkie narzędzia typu DDoS działają według podobnej zasady. Różnice występują
na poziomie konkretnych implementacji. Sieć DDoS składa się z kilku komponentów.
Niestety, ich nazewnictwo nie jest ujednolicone, dlatego też będziemy korzystać z
nomenklatury ustalonej podczas CERT Distributed Denial of Service Workshop:
Attacker (atakujący, zwany też klientem) maszyna, z której rozpoczyna się atak;
Master (zwany również Handler) serwer, na który włamał się haker i umieścił
odpowiednie oprogramowanie pozwalające na kontrolowanie deamonów; każdy
master może obsługiwać wiele deamonów;
Deamon (zwany również agentem) serwer, na który włamał się haker i zainstalował
oprogramowanie do generowania potoku pakietów (packet stream); deamon oczekuje
na rozkazy od swojego mastera; Niektóre implementacje dopuszczają zmianę swojego
mastera.
Atakujący wysyła rozkaz do masterów, które z kolei przekazują go do podległych sobie
deamonów. W ten sposób atakujący z jednego miejsca może rozpocząć atak, w którym biorą
udział setki różnych hostów sieciowych. Im więcej hostów składa się na sieć DDoS, tym atak
jest skuteczniejszy.
11.2 Niebezpieczny DDoS
Dlaczego ataki typu DDoS są takie grozne? Przede wszystkim trudno je powstrzymać,
gdyż ich zródło jest bardzo rozproszone. Co gorsza, administratorzy hostów pełniących rolę
deamonów i masterów nie wiedzą o tym, że biorą czynny udział w atakach. Ponieważ adresy
zródłowe są fałszywe (spoofing), to odszukanie masterów i deamonów na podstawie pakietów
jest bardzo trudne.
Ataki DDoS urastają do rangi problemu najwyższej wagi z powodu obniżającej się
poprzeczki wiedzy stawianej "adeptom" tego typu działalności. W Internecie dostępnych jest
wiele narzędzi umożliwiających przygotowanie ataku DDoS osobom całkowicie
niezorientowanym w zawiłościach informatyki. Dotyczy to zarówno inicjacji głównego ataku,
jak i odpowiedniego przygotowania dziesiątek czy setek komputerów, które atak będą
rzeczywiście prowadzić. Statystyki są przerażające - badania przeprowadzone przez
Uniwersytet Kalifornijski w San Diego wskazują, że miesięcznie przeprowadzanych jest
około 15 tysięcy ataków DDoS.
Jest kilka metod przeprowadzenia ataku DDoS. Przede wszystkim każdy system
operacyjny potrzebuje wolnej pamięci. Jeśli atakującemu powiedzie się alokacja całej
dostępnej pamięci, teoretycznie system przestanie funkcjonować lub przynajmniej jego
wydajność drastycznie spadnie. Taki brutalny atak potrafi zablokować normalną pracę nawet
najbardziej wydajnych komputerów. Druga metoda opiera się na wykorzystaniu limitacji
systemów plików. Trzeci sposób to wykorzystanie błędnego działania aplikacji sieciowych
bądz samego jądra systemu, błędów w konfiguracji systemu operacyjnego. Przed tym
rodzajem ataku łatwiej się obronić, choćby przez odpowiednie skonfigurowanie systemu. Jest
on charakterystyczny przede wszystkim dla metody DoS, która - w przeciwieństwie do DDoS
 przeważnie nie opiera się na wysyłaniu dużej liczby zapytań.
Przykładem mogą być błędy w stosach TCP/IP różnych systemów operacyjnych. W
skrajnych przypadkach wystarczy wysłanie kilku pakietów, aby zdalnie zawiesić serwer.
Ostatnią metodą jest wygenerowanie odpowiednio dużego ruchu sieciowego, aby routery lub
serwery nie mogły sobie z nim poradzić.
Tak naprawdę ataki DoS i DDoS nie są autonomicznymi rodzajami agresji. Obie
metody tak naprawdę są tylko nośnikiem, albo, jak kto woli, wzmocnieniem (w przypadku
DDoS ilościowym) ataków znanych pod innymi nazwami. Wybrana technika ataku,
realizowana za pomocą metody DoS lub DDoS może także służyć jako wabik lub celowe
odwrócenie uwagi. Najbardziej popularne techniki ataku prowadzone w zmasowanej formie
DDoS to m.in. SYN Flooding, UDP Flooding, ICMP Flooding oraz Smurf.
Znane są przypadki, kiedy atak DDoS przeprowadzany był na urządzenie typu firewall
lub ruter. Wyłączenie zapory lub rutera umożliwiało zaatakowanie bezpośrednio celu
dotychczas chronionego i mogło być realizowane już inną metodą. Sama nazwa wskazuje, że
DoS i DDoS nie służą zdobyciu informacji, a zablokowaniu świadczenia usług. Dlatego też
metody te wykorzystywane są przez początkujących hakerów, którzy tanim kosztem (przez
wyłączenie jakiegoś znanego ośrodka) chcą zarobić na swoje pierwsze pięć minut sławy.
Przykładem może być atak typu Smurf, nazwany tak od swojej pierwszej publicznej
implementacji. Smurf wykorzystuje adres direct brodcast i protokół ICMP. Wysłanie ICMP
ECHO do właściwego adresu IP może spowodować, że wszystkie maszyny w danej podsieci
odpowiedzą na to zapytanie. W efekcie atakujący uzyskuje tak zwany wzmacniacz sygnału.
Smurf spoofuje adres zródła, wstawiając adres celu. W ten sposób za pomocą jednego pakietu
atakujący może zalać sieć ofiary wieloma pakietami, pochodzącymi z innych sieci.
Rozwinięciem idei ataków DoS był program Rape, który pozwalał na uruchomienie
jednocześnie wielu ataków z jednej maszyny. Kolejnym krokiem na drodze ewolucji do
DDoS były programy takie jak Targa. W Rape atakujący musiał dysponować wcześniej
skompilowanymi narzędziami umożliwiającymi atak typu DoS. Targa zlikwidowała ten
problem, gdyż ataki, które obsługiwała miała od razu zawarte w swoim kodzie zródłowym.
Aby skutecznie zaatakować sieć mającą szybkie łącze, atakujący musiał dysponować
podobnym podłączeniem. Rozwiązaniem problemu okazało się zastosowanie architektury
rozproszonej, opartej na modelu klient/serwer. Tak narodziły się Trinoo, TFN, Stacheldraht i
narzędzia typu DDoS.
Narzędzia ułatwiające przeprowadzanie ataków DoS/DDoS
Trinoo Oferuje trójstopniową architekturę sieci DDoS. Komunikacja między
atakującym a Węzłami odbywa się poprzez telnet na porcie 27665 TCP. Węzły
z kolei komunikują się z Niewolnikami, nadając na ich port 27444 UDP. I
wreszcie Demony "telnetują" na porty 31335 UDP swoich Węzłów. Atak
właściwy jest prowadzony za pomocą techniki UDP Flood. Program dostępny
jest w systemach Unix i Windows.
Tribal Flood Network Charakteryzuje się dwustopniową architekturą (atakujący i Demony). Można za
jego pomocą prowadzić kilka (do wyboru) ataków na stos TCP/IP. TFN
zapoczątkował powstawanie narzędzi DDoS.
Tribal Flood Network 2000 Nowsza wersja TFN, oferująca już trójstopniową architekturę. Elementy sieci
DDoS komunikują się za pomocą pakietów ICMP Echo. Pozwala
przeprowadzać ataki ICMP Flood, SYN Flood, UDP Flood oraz Smurf.
Stacheldraht (z niem. drut Bardzo dobry (z punktu widzenia napastnika) program charakteryzuje się
kolczasty) trójstopniową architekturą i szyfrowaną komunikacją między elementami sieci
DDoS. Oferuje także opcję automatycznej aktualizacji agentów na Demonach.
Ataki, które zostały do tej pory wykryte i nagłośnione może przeprowadzić w zasadzie
każdy. Programy typu Trinoo są publicznie dostępne, a dzięki zautomatyzowaniu procesu
wyszukiwania masterów i deamonów nie trzeba mieć prawie żadnej wiedzy praktycznej
krótko mówiąc, jest to doskonała zabawka dla script kiddies.
W CERT Incident Note z 22 lipca 1999 opisano pierwsze wykorzystanie narzędzi typu
DDoS. Intruzi wykorzystywali problemy z RPC, aby uzyskać nielegalnie prawa roota. Biorąc
pod uwagę charakterystyki ataków oraz zestaw binariów odnaleziony na jednym z
zaatakowanych komputerów, można wnioskować, iż proces włamań jest w dużym stopniu
zautomatyzowany.
W drugiej połowie 1999 roku został zaatakowany uniwersytet stanu Waszyngton. W
ataku brała udział sieć DDoS złożona co najmniej z 227 hostów. Na początku listopada 1999
CERT zorganizował warsztaty poświęcone problematyce DDoS wyniki zostały
opublikowane w Internecie. Dopiero jednak atak na Yahoo, który nastąpił tego samego roku,
przyciągnął większą uwagę mediów. Widać więc, że od zauważenia problemu przez
ekspertów od bezpieczeństwa do ataku na Yahoo minęło co najmniej kilka miesięcy.
W latach 1999-2000 głośno było o udanych atakach DoS/DDoS na ośrodki webowe
Uniwersytetu Stanu Waszyngton, największych dotcomów: Amazon, Yahoo oraz eBay i
internetowych agencji informacyjnych, takich jak CNN i ZDNet. Jak pokazują najnowsze
wydarzenia, atakujący wybierają obecnie mniej spektakularne cele, ale za to o wiele
ważniejsze z punktu widzenia funkcjonowania całego Internetu. 21 pazdziernika 2002 r. miał
miejsce incydent, który wprawdzie przeszedł niezauważony, ale wymowę miał i ma
wyjątkowo złowieszczą. Tego dnia zaatakowano trzynaście głównych serwerów DNS,
będących podstawą systemu nazewnictwa w światowym Internecie. Atak nie został właściwie
zauważony (poza gronem zainteresowanych tematem). Być może dlatego, że pięć z
zaatakowanych systemów przetrzymało atak, tym samym internetowa społeczność nie
odczuła jego negatywnych skutków.
11.3 Strategia ataku
Budowanie sieci do ataku typu DDoS można podzielić na kilka faz.
Faza I - Przygotowanie do ataku
Skompilowane narzędzia DDoS, exploity, sniffer, skaner portów (oraz ewentualnie root-kit) zostają
umieszczone wraz z listą potencjalnych i obecnych ofiar na dysku hosta, do którego atakujący się włamał.
Narzędzia DDoS umożliwiają budowę sieci. Exploity pozwalają na zdalne zdobycie praw roota na atakowanych
hostach. Skaner portów pozwala na identyfikację potencjalnych ofiar, na których zostaną wypróbowane
dostarczone exploity. Root-kit pozwalają na ukrycie faktu włamania i obecności intruza w systemie.
Faza II - skanowanie sieci.
Za pomocą zainstalowanych wcześniej narzędzi atakujący skanuje sieć w poszukiwaniu potencjalnych
ofiar, które posłużą do dalszej rozbudowy sieci DDoS. Na podstawie wyników skanowania generowana jest lista
hostów, na których zostanie zainstalowany master lub deamon (wraz z zestawem dodatkowych narzędzi).
Faza III - instalacja.
Na "zhakowanych" maszynach następuje instalacja odpowiedniego oprogramowania. Proces ten jest
kontrolowany przez skrypt uruchamiany w tle. Dodatkowo może zostać zainstalowany root-kit, aby ukryć fakt
włamania. Ponieważ deamony bez masterów są bezużyteczne, to instalacja root-kita ma sens w dwóch
przypadkach:
a) gdy instalacja odbywa się na maszynie przeznaczonej do pełnienia roli mastera,
b) gdy instalacja odbywa się na gateway'u większej sieci wtedy za pomocą snifferów i innych narzędzi, a
nie gotowych exploitów, można próbować uzyskać prawa roota na reszcie hostów będących w sieci.
Od tej pory na hostach będących częścią sieci DDoS działają nielegalnie jej części składowe i oczekują na
sygnał ataku. Bardziej rozbudowane oprogramowanie masterów i deamonów może oczywiście realizować wiele
funkcji dodatkowych.
Faza IV atak
Atakujący wysyła odpowiedni rozkaz do masterów, one z kolei uaktywniają deamony, które generują
potok pakietów. Obecne rozwiązania typu IDS czy firewall mają trudności z wykrywaniem takich ataków.
Można co prawda tworzyć na podstawie analizy charakterystyki tych narzędzi, ale ponieważ kod zródłowy jest
dostępny, to z pewnością pociągnie to za sobą wiele modyfikacji oraz powstanie nowych narzędzi.
11.4 Atak na serwer Yahoo w 1999r
Oto bardzo skrócony opis ataku, a właściwie ataków typu Smurf w wersji Distributed na
routery Yahoo. Routery zostały zaatakowane przynajmniej czterokrotnie. Tylko jeden atak
przyniósł sukces. Strumień pakietów przekroczył 16 Gb/s i spowodował odcięcie od świata
jednego z routerów.
Po podniesieniu się routera utracono routing do providera. Ponieważ personel nie był
pewien, co było przyczyną problemów, pierwsza godzina została poświęcona na
eliminowanie różnych możliwych przyczyn. Po odzyskaniu ruotingu okazało się, że router
jest atakowany za pomocą DDoS. Zanotowano bardzo duży ruch pakietów ICMP. Przy
współpracy z providerem udało się ustabilizować ruch i przywrócić normalny routing.
Narzędzia ataku
Trinoo. Jedno z pierwszych narzędzi typu DDoS. Oryginalny daemon był skompilowany i uruchomiony pod
kontrolą systemu Solaris 2.5.1 oraz Red Hat Linux 6.0. Następne, jak TFN czy Stacheldraht, budowane były na
tej bazie. Deamony Trinoo korzystają z UDP i są zdalnymi shellami o ograniczonych możliwościach. TFN.
Tribe Flood Network został napisany przez Mixtera. Korzysta z ICMP flood, Syn-flood, UDP flood oraz ataków
pochodnych Smurfowi. Klient jest odpowiednikiem mastera z Trinoo. Komunikacja pomiędzy klientem a
deamonem odbywa się za pomocą ICMP ECHO REPLAY, co znacznie utrudnia lub wręcz uniemożliwia
blokowanie ataku za pomocą rozwiązań typu firewall. Komendy są wysyłane za pomocą 16-bitowej liczby
umieszczanej w polu id pakietu, sequnce number ma zawsze wartość 0. Nowsza wersja TFN zawiera pewne
modyfikacje, które czynią ją jeszcze bardziej niebezpieczną. Stacheldraht. Program bazujący na TFN. W
przeciwieństwie do TFN nie udostępnia zdalnie shella roota. Komunikacja odbywa się za pomocą aplikacji
podobnej do telneta, z tą różnicą, iż jest szyfrowana. DDoS dla NT.
12 DRDoS
Ataki DoS/DDoS rozwijają się stale, tak samo jak metody przeciwdziałania im. Ostatnie
wysiłki specjalistów ds. bezpieczeństwa zdopingowały ich przeciwników. W rezultacie, w
listopadzie 2002 roku odbyła się "premiera" nowej odmiany ataku DoS - DRDoS (Distributed
Reflection Denial of Service).
DRDoS (Distributed Reflection Denial of Service), polega na generowaniu specjalnych
pakietów SYN, których adres zródłowy jest fałszywy (jest adresem ofiary). Haker wysyła
następnie dużą liczbę takich pakietów do sieci. Komputery, do których one dotrą,
odpowiadają pakietami SYN/ACK kierowanymi na adres pochodzący ze sfałszowanego
nagłówka. W ten sposób ofiara zalewana jest olbrzymią ilością pakietów z wielu hostów.
Konstrukcja DRDoS łączy w sobie cechy ataku Smurf oraz metody DDoS. Jedną z
pierwszych ofiar DRDoS stał się serwis www.grc.com, zajmujący się bezpieczeństwem
sieciowym...


Wyszukiwarka

Podobne podstrony:
MB w2
Rodzaj i zakres … Dz U 1995 25
zj w2
w2 2
SD przykłady do w2
02 JTPWyjatki Klonowanie Identycznosc Rodzaje
DROGI w2 w3 tyczenie
w2
Analiza porównawcza rodzajów, przyczyn i okoliczności zgonów na podstawie badań sekcyjnych (2)
W2?
metody numeryczne i w2
W2
rodzaje narkotyków
Jakie rodzaje i gatunki literackie występowały w II poło~AF2

więcej podobnych podstron