Autor |
Wiadomość |
WhoAmI
Admin
Dołączył: 13 Lip 2008
Posty: 68
Przeczytał: 0 tematów
Ostrzeżeń: 0/6 Skąd: Się biorą dzieci? Płeć:
|
|
Ataki typu DoS (Denial of Service) |
|
Ataki typu DoS (Denial of Service) mają na celu uniemożliwienie uprawnionym użytkownikom skorzystania z zasobów lub usług systemu komputerowego. Istnieje bardzo wiele odmian tego ataku - od przecięcia kabla zasilającego po skoordynowane uderzenie pakietami sieciowymi z tysięcy stacji jednocześnie.
Urządzenia komputerowe do sprawnego działania potrzebują kilku podstawowych zasobów, takich jak czas procesora, powierzchnia dyskowa, pamięć RAM, przepustowość łącza. Ataki DoS starają się doprowadzić do zużycia bądź zablokowania tych zasobów, wykorzystując przy tym wiele z codziennie wykonywanych przez użytkowników czynności. Niejeden z nas zetknął się po powrocie z wakacji z przepełnioną skrzynką pocztową i z utraconymi na skutek tego ważnymi listami. Podobny scenariusz realizuje atak typu mail bombing. Pewne jego odmiany pozwalają na całkowite ukrycie tożsamości nadawcy lawiny listów. Równie prosto wygląda atak mający na celu zużycie powierzchni dyskowej w systemie Unix - wystarczy wydać polecenie
| | cat /dev/zero > /tmp/to_będzie_naprawdę_duży_plik.txt |
Można również utworzyć bardzo wiele małych plików, co np. w systemie Linux może doprowadzić do wyczerpania maksymalnej liczby węzłów (INODE) przechowujących informacje o plikach i w konsekwencji do niemożności stworzenia jakiegokolwiek następnego pliku. Kolejną formą ataku DoS jest zajęcie całego czasu procesora przez procesy jednego użytkownika (fork bomb, co uniemożliwia korzystanie z zasobów przez inne osoby. Kod w C realizujący to zadanie jest bardzo prosty:
| | (main() {fork( ;; ) fork();}) |
Wszystkim tym atakom zapobiec można poprzez odpowiednią gospodarkę zasobami i wprowadzenie limitów ich przydzielania - służy do tego np. program quota.
Osobna grupa ataków DoS polega na zniszczeniu lub modyfikacji danych o konfiguracji programów i urządzeń. Intruz może zdalnie lub lokalnie zniszczyć pliki konfiguracyjne, blokując dostęp uprawnionym użytkownikom do danego programu (usługi) lub uniemożliwiając jego prawidłowe działanie. Na przykład modyfikując tablicę routingu może on zablokować całą sieć, a zmieniając wartość rejestru systemowego Windows - doprowadzić do wyłączenia niektórych usług lub do bardzo dziwnego, uniemożliwiającego pracę, zachowania się systemu. Istotnym środkiem obrony przed atakami DoS jest fizyczne zabezpieczenie sprzętu - zniszczenie kluczowego routera zablokuje skutecznie całą sieć na długi czas.
Łowcy dziur
Ataki sieciowe DoS nie wymagają lokalnego bezpośredniego dostępu do atakowanej maszyny, wykorzystują one luki w oprogramowaniu sieciowym oraz niedoskonałości w protokołach komunikacyjnych. Aplikacje sieciowe po otrzymaniu niepoprawnych, często specjalnie spreparowanych danych, przerywają działanie lub zajmują cały czas procesora, a nawet restartują maszynę. Niektóre z sieciowych ataków DoS są niesymetryczne - można je przeprowadzić dysponując łączem znacznie wolniejszym niż atakowany system. Ataki rozproszone wykorzystują natomiast efekt skali, zalewając swoją ofiarę większą ilością danych niż jest ona w stanie przetworzyć.
Bardzo często ataki DoS wykorzystują błędy w implementacji protokołów w systemach operacyjnych, np. tworzenie niewłaściwej tablicy ARP, niesprawdzanie długości pakietów przed ich przetworzeniem (ataki Land, Teardrop, Ping of Death) czy nieprawidłowa obsługa składania pofragmentowanych pakietów IP. Wszystkie te niedociągnięcia, nawet mimo braku dostępu do kodu źródłowego, są wychwytywane przez programistów i administratorów sieciowych, a stąd już tylko krok do wykorzystania tej wiedzy w złych zamiarach.
Śmierć i łzy
Atak Ping of Death polega na wysłaniu do odległej maszyny pofragmentowanego datagramu ICMP Echo request o łącznej długości przekraczającej 65 535 bajtów, czyli maksymalną długość pakietu, jaką można wpisać do nagłówka IP. Niektóre systemy operacyjne nie są w stanie poprawnie przetworzyć takiego pakietu, co zwykle powoduje zawieszenie się lub restart maszyny. Do przeprowadzenia tego ataku nie potrzeba specjalnych narzędzi, wystarczy w linii poleceń Windows wpisać np.: C:\ping -l 65540
Datagram wysyłany jest w dwóch częściach. Wystarczy, że pierwsza część mieć będzie maksymalną dopuszczalną długość, a druga - wartość przekraczającą 65 535 wpisaną do pola przesunięcia fragmentacji (offset) w nagłówku. Niektóre maszyny podejmą próbę odtworzenia takiego datagramu i ulegną atakowi. Atak Teardrop ustawia w nagłówkach IP nakładające się na siebie znaczniki przesunięcia. Znaczniki te wraz z numerami sekwencyjnymi informują docelowy system o liczbie bajtów oraz kolejności, w jakiej pakiety powinny być składane. Trzy części prawidłowo pofragmentowanego pakietu o długości 4000 bajtów, powinny w polu znacznika przesunięcia zawierać wartości: np. 1 do 1500, 1501 do 3000 i 3001 do 4000. Teardrop tak ustawia te wartości, że kolejne kawałki pakietu zachodzą na siebie - np. 1 do 1500, 1500 do 3000 i 1001 do 3200. Co więcej - cały pakiet nie zostanie odebrany, bowiem w ostatni kawałek wpisano wartość (3200) niższą od długości pierwotnego pakietu. Host odbierający nie jest w stanie poprawnie złożyć pakietu, co może prowadzić do większego obciążenia procesora (obsługa wielu błędów rekonstrukcji) lub nawet restartu maszyny. Linux w wersjach jądra starszych od 2.0.32 nie radził sobie z pakietami, w których jeden kawałek całkowicie zawierał się w innym.
Potop na życzenie
Przedstawione dotychczas ataki wykorzystują błędy w oprogramowaniu i nie generują wzmożonego ruchu w sieci. Druga grupa ataków DoS wykorzystuje efekt skali, zalewając zaatakowaną maszynę bardzo dużą liczbą pakietów przy wykorzystaniu dowolnego protokołu stosowanego w Internecie. Przeprowadzone na odpowiednio dużą skalę ataki są bardzo skuteczne. Ich cechą szczególną jest obecność trzech stron: atakującego oraz dwóch ofiar - celu ataku oraz maszyny bądź maszyn generujących ruch (reflectors). Cel ataku zalewany jest pakietami pochodzącymi od nieświadomych ofiar, do zlokalizowania napastnika konieczne jest więc współdziałanie z ich administratorami. Istnieje wiele sposobów przeprowadzenia takiego ataku, różniących się sposobem generowania ruchu - przedstawimy te najbardziej rozpowszechnione.
Zalew UDP (UDP Flooding) używa najczęściej dwóch zaatakowanych maszyn i tworzy między nimi nieskończoną pętlę. Aby atak był skuteczny, hosty te muszą mieć uruchomione usługi odpowiadające na datagramy UDP - najczęściej wykorzystywane są ping oraz chargen (character generator protocol). Usługa chargen na każdy otrzymany pakiet odpowiada pakietem zawierającym pewną określoną liczbę znaków. Napastnik inicjuje pętlę, wysyłając do maszyny udostępniającej tę usługę pakiet ze sfałszowanym adresem nadawcy, wskazującym na usługę ping innego lub tego samego komputera. Chargen odpowie pakietem, co z kolei zobliguje serwis ping do wysłania kolejnego pakietu itd. Jeśli obie usługi działają na różnych maszynach, to oprócz ich zablokowania powstaje w sieci burza kolizyjna, która czyni sieć bezużyteczną na pewien czas. Najprostszy sposób obrony polega na wyłączeniu zbędnych usług (zwłaszcza chargen). Można również spowodować, aby chargen nie odpowiadał na pakiety wysłane z portów niższych niż 1024, które są zarezerwowane dla usług systemowych.
Zalew pakietów SYN (SYN Flooding) ma na celu wyczerpanie zasobów serwera poprzez zainicjowanie bardzo wielu połączeń TCP. Wykorzystuje on procedurę uzgodnienia połączenia w protokole TCP (three-way handshaking). Gdy maszyna otrzymuje pakiet z zapaloną flagą SYN poprzez otwarty port, to stos TCP/IP alokuje pamięć dla nowego połączenia, wysyłając jednocześnie pakiet SYN/ACK. Jeśli inicjujący pakiet SYN został wysłany ze sfałszowanym adresem źródła, to odpowiedź na pakiet SYN/ACK nie nadejdzie lub będzie to pakiet RST (jeśli sfałszowany adres źródła jest używany). Niektóre systemy operacyjne wysyłają kilka razy pakiet SYN/ACK zanim uznają połączenie za uszkodzone. Aby atak był skuteczny, inicjujące pakiety SYN muszą nadchodzić szybciej niż zaatakowany system potrafi je przetworzyć. Atak SYN Flood można wykryć na szereg sposobów. Na zaatakowanej maszynie można skorzystać z systemowego programu netstat, który pokazuje otwarte połączenia sieciowe oraz ich stan. Systemy IDS również wykrywają tego typu zdarzenia w sieci. Niektóre systemy operacyjne (np.: FreeBSD od wersji 4.5) mają też specjalne mechanizmy wbudowane w stos TCP/IP - SYN cookies oraz SYN cache, które zwiększają odporności systemu na ten atak. Atak LAND jest odmianą zalewu SYN polegającą na tym, że zarówno pod adres nadawcy, jak i odbiorcy podstawiana jest atakowana maszyna - wpada ona w nieskończoną pętlę, próbując sama sobie odpowiadać na otrzymane pakiety. Atak ten jest wychwytywany przez zapory ogniowe oraz przez same systemy operacyjne i nie stanowi obecnie realnego zagrożenia.
Atak SMURF wykorzystuje niedopatrzenie w specyfikacji protokołu ICMP, stosowanego do wysyłania komunikatów kontrolnych oraz raportowania o stanie sieci. Jedną z częściej wykorzystywanych funkcji jest żądanie ICMP echo request, sprawdzające obecność w sieci komputera o określonym adresie. Odbiorca zgodnie ze specyfikacją zobowiązany jest odesłać pakiet ICMP echo replay, jeżeli zaś nie jest on dostępny, to informujący o tym datagram ICMP generowany jest przez router. Specyfikacja ICMP tak określa pożądaną reakcję systemu na datagram ICMP Echo Request: "Adres nadawcy w komunikacie z żądaniem echa będzie adresem odbiorcy w odpowiedzi. Budując komunikat z odpowiedzią, należy zamienić miejscami adres nadawcy i odbiorcy, zmienić typ komunikatu na odpowiedź i obliczyć ponownie sumę kontrolną".
Sytuację taką można łatwo wykorzystać, wysyłając na adres rozgłoszeniowy sieci (broadcast address) pakiet żądania echa ze sfałszowanym adresem nadawcy. Pakiet ten zostanie przetworzony przez wszystkie komputery, które odeślą odpowiedź do domniemanego nadawcy. Przy odpowiednio dużej sieci może to spowodować burzę kolizyjną i chwilowy spadek wydajności sieci. Komputer, który został mimowolnym nadawcą żądania echa, zalany zostanie pakietami potwierdzenia, co może doprowadzić do jego zablokowania.
Atak ten ma dużą szansę powodzenia, jeżeli przeprowadzi się go z wewnątrz sieci lokalnej - z zewnątrz zablokują go routery brzegowe, z reguły skonfigurowane tak, by nie przepuszczać pakietów z adresem rozgłoszeniowym do wnętrza sieci. Ponadto już w 1989 roku w dokumencie RFC 1122 dopuszczono możliwość, by żądania ICMP wysyłane na adres rozgłoszeniowy lub w trybie wielonadawania (multicast) były ignorowane. Do zalecenia tego stosują się systemy operacyjne z rodziny Windows.
Narzędzia agresora
Program Avarice jest implementacją ataku na trójfazowy proces inicjacji połączenia TCP. Nawiązanie nowego połączenia w segmencie sieci, w którym działa ten program, jest bardzo utrudnione. Avarice nasłuchuje ruch sieciowy, szukając pakietów z zapaloną flagą SYN (początkiem połączenia), po czym natychmiast zamyka takie połączenie, wysyłając sfałszowany pakiet RST. W rezultacie jest mało prawdopodobne, że któreś połączenie TCP w danym segmencie zostanie nawiązane. Typowym komunikatem przy nawiązywaniu połączenia telnet będzie: telnet: Unable to connect to remote host: Connection refused
Sfałszowany pakiet musi dotrzeć do hosta inicjującego połączenie zanim prawdziwa maszyna odpowie. Kiedy poprawna odpowiedź nadejdzie jako druga, to zostanie odrzucona, bowiem nawiązujący połączenie host już zamknął swoją część połączenia. Aby zamknąć połączenie sfałszowanym pakietem, potrzebne są trzy informacje - adres IP, port oraz numer potwierdzenia (ISN). Wszystkie one znajdują się w pakiecie SYN, w związku z czym podrobienie odpowiedzi nie stanowi problemu. Aby program ten spełniał swoje zadanie, niezbędne jest jego uruchomienie na szybkiej maszynie. Jeśli pakiet RST dotrze jako drugi po SYN/ACK, to numer sekwencyjny nie będzie już się zgadzał i połączenie nie zostanie zerwane.
Działanie programu sloth polega na spowolnieniu połączeń TCP w ramach segmentu sieci. Sloth nasłuchuje początku fazy nawiązywania połączenia, po czym generuje odpowiedź w imieniu maszyny, z którą połączenie jest nawiązywane. Przebiega to następująco:
* komputer inicjujący (A) połączenie wysyła pakiet SYN;
* sloth widzi nowe połączenie i odpowiada na nie pakietem SYN/ACK w imieniu komputera (B), do którego połączenie jest inicjowane - jest to pakiet ze sfałszowanym adresem nadawcy wskazującym na B;
* host B widzi pakiet SYN od A i wysyła swój pakiet SYN/ACK, który jednak jest odrzucany przez A, gdyż wcześniej dotarły do niego pakiety SYN/ACK od programu sloth. Host B nie jest jednak informowany o zaistniałej sytuacji.
Ponieważ sloth potwierdził nawiązanie połączenia z odpowiednim numerem ACK, komputery A i B uważają połączenie za w pełni nawiązane i gotowe do transmisji. Haczyk tkwi w pakiecie SYN/ACK wysłanym przez program sloth. Pakiet ten zawiera w polu opcji zerową długość okna, co jest równoznaczne z zawieszeniem dalszej transmisji. W tym momencie maszyna inicjująca połączenie zacznie wysyłać co określony czas pakiety sprawdzające, czy wielkość okna u odbiorcy nie została zwiększona. Pakiet taki posiada włączoną flagę ACK oraz jeden bajt danych. Sloth, widząc pakiety sondujące, generuje na nie odpowiedź, podtrzymując fikcję o zerowej długości okna. Tak jak było to w przypadku pakietu SYN/ACK, odpowiedź właściwego systemu będzie odrzucana z powodu niezgodności numeru sekwencyjnego. Sloth ma szansę zadziałać wyłącznie na szybkich maszynach, kiedy jest w stanie wychwycić oraz odpowiedzieć na próby połączeń zanim właściwy host wygeneruje swoją odpowiedź.
Arsenał obrońcy
Wszelkiego rodzaju spowolnienia w działaniu sieci zwykło się zrzucać na słabą przepustowość łączy lub błędy administratorów. Osoby nadzorujące sieć używaną do przeprowadzenia ataku DoS wielokrotnie nie zdają sobie sprawy z sytuacji, często nie mają ani doświadczenia, ani odpowiednich narzędzi diagnostycznych.
Rozważmy przypadek sieci lokalnej, w której rolę bramy do Internetu pełni router Cisco. Jego interfejs ethernetowy (ethernet 0) wpięty jest do sieci LAN, a komunikacja z urządzeniami operatora Internetu odbywa się poprzez port szeregowy (serial 0). Po stwierdzeniu spadku wydajności sieci lokalnej można za pomocą poleceń systemu IOS routera zdiagnozować sytuację. W tym celu należy podzielić ruch przechodzący przez interfejs serial 0 na kategorie istotne z punktu widzenia analizy ataku DoS. Dobrym narzędziem do tego celu są rozszerzone listy dostępu:
access-list 101 permit icmp any any echo
access-list 101 permit icmp any any echo-reply
access-list 101 permit tcp any any
access-list 101 permit ip any any
interface serial 0
ip access-group 101 in
Lista ta nie ogranicza w żaden sposób ruchu przechodzącego przez interfejs, lecz tylko pozwala go dokładnie przeanalizować. Polecenie show access-lists wyświetla statystyki dotyczące aktualnie obowiązujących list dostępu, np.:
Extended IP access list 101
permit icmp any any echo (2 matches)
permit icmp any any echo-reply (21374 matches)
permit tcp any any (15 matches)
permit ip any any (45 matches)
Raport ten wyraźnie pokazuje, że router w przeważającej części transmituje odpowiedzi na datagramy ping - ICMP echo replay. Lista dostępu filtruje ruch wchodzący, najprawdopodobniej sieć jest więc przedmiotem ataku SMURF. Sieć lokalna jest głównym celem, a nie pośrednikiem generującym ruch, gdyż odbiera potwierdzenia echa, a nie je wysyła. Więcej informacji o pochodzeniu datagramów można uzyskać modyfikując listę dostępu:
interface serial 0
no ip access-group 101 in
no access-list 101
access-list 101 permit icmp any any echo
access-list 101 permit icmp any any echo-reply log-input
access-list 101 permit tcp any any
access-list 101 permit ip any any
interface serial 0
ip access-group 101 in
Słowo kluczowe log-input każe zbierać dokładne informacje o pakietach pasujących do danej pozycji listy dostępu. Jeśli skonfigurowane jest buforowanie logowania, to polecenie show log dostarczy szczegółowych informacji o źródle pakietów, np.:
%SEC-6-IPACCESSLOGDP: list 101 denied icmp 192.168.85.12
(Serial0 *PPP*) -> 10.2.3.7 (0/0), 1 packet
%SEC-6-IPACCESSLOGDP: list 101 denied icmp 192.168.85.13
(Serial0 *PPP*) -> 10.2.3.7 (0/0), 1 packet
%SEC-6-IPACCESSLOGDP: list 101 denied icmp 192.168.85.72
(Serial0 *PPP*) -> 10.2.3.7 (0/0), 1 packet
%SEC-6-IPACCESSLOGDP: list 101 denied icmp 172.16.13.154
(Serial0 *PPP*) -> 10.2.3.7 (0/0), 1 packet
%SEC-6-IPACCESSLOGDP: list 101 denied icmp 192.168.85.15
(Serial0 *PPP*) -> 10.2.3.7 (0/0), 1 packet
%SEC-6-IPACCESSLOGDP: list 101 denied icmp 192.168.85.12
(Serial0 *PPP*) -> 10.2.3.7 (0/0), 1 packet
%SEC-6-IPACCESSLOGDP: list 101 denied icmp 172.16.13.47
(Serial0 *PPP*) -> 10.2.3.7 (0/0), 1 packet
Charakterystyczną cechą ataku SMURF jest pochodzenie pakietów z maszyn pracujących w jednej lub kilku podsieciach (p. rys. - podsieci 192.168.85.0/24 oraz 172.16.13.0/24), które zostały wykorzystane do wygenerowania strumienia datagramów. Znając adresy podsieci, można wyszukać w bazie whois adresy ich administratorów. Należy pamiętać, że najprawdopodobniej są to również ofiary ataku, bowiem napastnicy bardzo rzadko wykorzystują własne adresy IP do przeprowadzenia ataku. Tylko współpraca z administratorami systemów pośredniczących daje szansę na namierzenie atakującego oraz powstrzymanie ataku. Można również poprosić operatora łącza internetowego o czasowe odfiltrowanie na routerze datagramów ICMP echo replay. Filtr powinien obejmować wyłącznie odpowiedzi na żądanie echa, a nie cały protokół ICMP, gdyż jest on niezbędny do prawidłowego działania sieci. Innym rozwiązaniem jest ograniczenie pasma przeznaczonego na odpowiedzi echa. Można to zrobić w urządzeniach Cisco za pomocą następującej listy dostępu:
access-list 102 permit icmp any any echo
access-list 102 permit icmp any any echo-reply
interface <interface> <interface #>
rate-limit input access-group 102 256000 8000 8000 conform-action
transmit exceed-action drop
Lista ta wykorzystuje mechanizm Committed Access Rate (CAR). Urządzenie musi pracować w trybie Cisco Express Forwarding (CEF), a interfejs, do którego przypisana jest lista dostępu musi zostać skonfigurowany w trybie przełączania CEF. Dobieranie wartości ograniczających ruch jest zależne od przepustowości łącza oraz natężenia ruchu podczas normalnej pracy sieci. Alternatywą dla CAR w ograniczaniu pasma może być dobre zarządzanie jakością transmisji (Quality of Service).
Informacji o tym, że sieć lokalna wykorzystywana jest jako pośrednik w ataku SMURF dostarczy duża wartość licznika przy drugiej pozycji na liście dostępu, np.:
permit icmp any any echo (242352 matches)
Jeśli dodatkowo obserwowany jest duży ruch na interfejsie wychodzącym (odpowiedzi na żądanie echa), to z dużym prawdopodobieństwem ma właśnie miejsce atak SMURF lub zwykły zalew pakietów ping (ang: ping flood). Ataki te różnią się od siebie w kilku punktach:
1. Pakiety żądania echa w przypadku ataku SMURF będą wysyłane na adres rozgłoszeniowy sieci. Pakiety w ataku ping flood niemal zawsze skierowane są na adres unicast. Adresy te są widoczne po dodaniu słowa kluczowego log-input.
2. Atak SMURF generuje nieproporcjonalny duży ruch wychodzący w stosunku do pakietów przyjmowanych z Internetu. W ataku ping flood wartości te będą wyrównane.
3. Jeśli sieć pośredniczy w ataku SMURF, to polecenie show interface pokaże dużą liczbę rozgłoszeń po stronie interfejsu Ethernet. Zwykły atak ping flood nie generuje rozgłoszeń.
Sieć pośrednicząca może w łatwy sposób zablokować atak. W tym celu należy skonfigurować router lub routery pełniące rolę bramki tak, by nie przekazywały pakietów skierowanych na adres rozgłoszeniowy sieci wewnętrznej. W urządzeniach Cisco służy do tego polecenie
no ip directed-broadcast
Jest to domyślna konfiguracja w systemie IOS od wersji 12.0. Ponieważ sieć pośrednicząca znajduje się bliżej atakującego, administrator może podjąć próbę odkrycia źródła ataku. Wymaga to jednak szybkich i skoordynowanych działań administratorów wszystkich sieci wykorzystanych w ataku. Tropienie odbywa się poprzez rekonfigurację i kontrolę wszystkich routerów na ścieżce pomiędzy ofiarą i atakującym. Takie podejście ma jednak szereg wad:
* o znalezieniu komputera generującego ruch może się okazać, że został on przejęty przez atakującego. W takim przypadku dochodzi kolejna ofiara, a tropienie faktycznego agresora rozpoczyna się od nowa;
* atakujący zdają sobie sprawę z tego, że mogą zostać wytropieni i nie kontynuują ataku wystarczająco długo, by można było ręcznie wyśledzić źródło;
* atak może pochodzić z wielu źródeł (jak ma to miejsce przy atakach Distributed DoS);
* problemy komunikacyjne utrudniają śledzenie. Jeśli atak przechodzi przez routery znajdujące się na innym kontynencie w innej strefie czasowej, to może okazać się, że nie ma tam w pracy nikogo, kto mógłby pomóc w śledzeniu;
* ograniczenia polityczne i prawne mogą utrudniać działanie przeciwko intruzowi, nawet jeśli zostanie on odkryty.
Do śledzenia pakietów przechodzących przez router można wykorzystać odpowiednią listę dostępu z dołączonym słowem kluczowym log-input, przypisaną jako lista wyjściowa do interfejsu, przez który pakiety wysyłane są do ostatecznego celu ataku. Takie umieszczenie listy dostępu pozwoli zidentyfikować interfejs, który odbiera pakiety oraz adres fizyczny (MAC) routera, z którego pakiety pochodzą. Adres MAC może zostać przekształcony w adres IP za pomocą polecenia show ip arp adres-MAC
Profilaktyka
Brak dostępu do ważnych zasobów może narazić przedsiębiorstwo na znaczne koszty oraz stratę czasu. Pomimo że atakom DoS bardzo trudno zapobiegać, można przedsięwziąć kroki prewencyjne znacznie skracające czas reakcji na atak DoS oraz przyspieszające ewentualne ponowne uruchomienie systemu. Do działań zapobiegających atakom DoS należą między innymi:
* skonfigurowanie list dostępu na routerach i zaporach ogniowych;
* używanie i udostępnianie jedynie tych usług, które są potrzebne;
* ustalenie systemu ograniczeń (quota) na korzystanie z zasobów dyskowych, procesora i przepustowości sieci;
* wprowadzenie systemu monitorowania dostępności i wykorzystania zasobów;
* aplikowanie łat na systemy oraz serwisy niezwłocznie po odkryciu luki;
* regularne czytanie list dyskusyjnych poświęconych bezpieczeństwu, zwłaszcza dotyczących aplikacji zainstalowanych w firmie;
* używanie systemów IDS w celu możliwie wczesnego wykrycia podejrzanych działań w sieci;
* ustalenie systemu backupów;
Przygotowanie narzędzi i procedur pozwalających na szybkie ustalenie źródła ataku i opracowanie działań prowadzących do szybkiego jego odcięcia. Blokada powinna zostać założona możliwie blisko źródła.
Fragmentacja pakietów
Proces dzielenia pakietu na mniejsze części przed jego transmisją przez sieć opisany jest szczegółowo w RFC 791. Jednym z parametrów każdej sieci komputerowej jest MTU (Maximum Transmission Unit) - maksymalna wielkość pakietu, który można przesłać przez daną sieć. Dla Ethernetu wynosi ona 1500 bajtów, a dla połączeń PPP - zwykle 296 bajtów. Pakiet przemierzający Internet przechodzi przez wiele sieci o różnych wartościach MTU. Urządzenia łączące te sieci (najczęściej routery) fragmentują więc pakiety, gdy zachodzi taka potrzeba.
Jeżeli datagram IP o długości 1500 bajtów (20 bajtów nagłówka i 1480 bajtów danych) rozbity zostanie na fragmenty o długości 296 bajtów, to w sumie zajmują one 1600 bajtów, ponieważ każdy fragment ma własny nagłówek IP. Aby datagram mógł być ponownie złożony w jedną całość, każdy fragment zawiera następujące informacje:
- identyfikator pakietu, który uległ fragmentacji (fragment ID);
- długość przenoszonych danych;
- wskaźnik przesunięcia fragmentacji (offset) - umiejscowienie danych z tego fragmentu w pełnym datagramie;
- flaga MF (More Fragments) określająca, czy dany fragment jest ostatni, czy następują po nim kolejne;
- pakiet ICMP echo request o wielkości 4028 bajtów przesyłany w sieci Ethernet zostanie podzielony na trzy części, które program tcpdump wyświetli w następujący sposób:
192.168.1.2 > 192.168.2.43: icmp: echo request (frag 33465:1480@0+)
192.168.1.2 > 192.168.2.43: (frag 33465:1480@1480+)
192.168.1.2 > 192.168.2.43: (frag 33465:1048@2960)
Numer 33465 jest identyfikatorem pakietu, wartości 1480 w pierwszych dwóch fragmentach oraz 1048 w ostatnim są długościami przenoszonych danych (20 bajtów zajmuje nagłówek IP), liczba na końcu każdej linijki to wartość wskaźnika przesunięcia, a znak + oznacza włączoną flagę MF (datagram nie jest ostatnim).
Implementacja fragmentacji pakietów w stosie protokołów TCP/IP zawiera wiele luk i niedociągnięć, które wykorzystywane są do przeprowadzania ataków. Większa liczba pakietów zwiększa też niebezpieczeństwo ich zagubienia i koniecznej retransmisji. Dlatego większość systemów operacyjnych (m.in. Linux) stara się unikać fragmentacji, kiedy tylko jest to możliwe. Służą do tego flagi DF (Don't Fragment) w nagłówku IP. Urządzenie sieciowe, które stwierdzi potrzebę fragmentacji pakietu z ustawioną flagą DF, odrzuci ten pakiet, generując komunikat ICMP Destination Unreachable z wyszczególnionym powodem: fragmentation needed and DF set i z podaniem wartości MTU wymaganej na łączu wymuszającym fragmentację. Urządzenie nadające przetransmituje wówczas ponownie pakiet o długości spełniającej warunek MTU - proces ten nazywa się odkrywaniem ścieżki MTU (Path MTU discovery).
Źródło: student.agh.edu.pl
Post został pochwalony 0 razy
Ostatnio zmieniony przez WhoAmI dnia Nie 8:43, 13 Lip 2008, w całości zmieniany 1 raz
|
|
Nie 8:41, 13 Lip 2008 |
|
|
|
|
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach
|
|
|