?klient sygnalizuje przyjęcie odpowiedzi serwera segmentem ACK, zawierającym początkowy numer kolejnych danych serwera zwiększony o 1.
Rys. 3. Trójfazowe uzgadnianie połączenia TCP
Żródło: Eric Cole, „Hackers Beware” , Wydawnictwo New Riders, Pierwsza edycja, 2001, s.169
Zamykanie połączenia TCP przez program odbywa się za pomocą operacji dwuetapowego potwierdzenia. Aby zamknąć połączenie, jeden z węzłów (serwer lub klient) wysyła wiadomość zawierającą flagę FIN (ang. finish), czyli przeprowadza, tzw. Aktywne zamknięcie. Zazwyczaj węzeł, który otrzymuje wiadomość z flagą FIN, natychmiast przeprowadza pasywne zamknięcie. Oznacza to po prostu, że węzeł ten także wysyła wiadomość zawierającą flagę FIN. Potwierdzenie wysyłane na tą wiadomość jest znakiem, że obydwa węzły uzgodniły ze sobą fakt zakończenia przesyłania danych w jednym kierunku. Gdy obydwa węzły należące do połączenia TCP wyślą flagę FIN i otrzymają potwierdzenia, wtedy połączenie TCP zostanie oficjalnie zamknięte.
Rozdział II Ataki na systemy komputerowe
2.1. Rodzaje ataków
Atak na bezpieczeństwo systemów komputerowych to działanie mające na celu przeniknięcie do chronionego systemu komputerowego w celu przechwycenia lub zniekształcenia przechowywanych w nim informacji.
Techniki włamań są bardzo zróżnicowane, od bardzo prostych do bardzo wyrafinowanych. Można je ogólnie podzielić na dwie kategorie: ataki aktywne i ataki pasywne.
Ataki pasywne (ang. passive attacks), polegają na podsłuchiwaniu lub śledzeniu przesyłania danych w celu odkrycia treści komunikatu lub wykonania analizy ruchu (ang. traffic analysis) danych w sieci. Z reguły ataki pasywne są pierwszym krokiem do przeprowadzenia ataku aktywnego i mają za zadanie zebranie jak najwięcej informacji o celu ataku. Ponieważ ataki pasywne nie zmieniają danych, są bardzo trudne do wykrycia. W postępowaniu z tymi atakami należy raczej skupić się na zapobieganiu, a nie wykryciu.
Ataki aktywne (ang. active attacks), polegają na wykonywaniu zmian w strumieniu danych lub tworzeniu danych fałszywych. Rozróżnia się cztery typy ataku aktywnego:
?Maskarada (ang. masquerade) polega na podszywaniu się pod komputer uprzywilejowany i zazwyczaj występuje równocześnie z innymi atakami aktywnymi.
?Powtórka (ang. replay) polega na przechwyceniu danych i ich retransmisji w celu otrzymania niedozwolonych rezultatów.
?Modyfikacja (ang. modification) polega na zmianie fragmentu oryginalnego komunikatu lub na jego opóźnieniu w celu uzyskania niedozwolonych skutków, takich jak uzyskanie dostępu do zasobów.
?Blokada usług (ang. denial of service) polega na przeszkadzaniu w normalnej pracy lub uniemożliwianiu właściwemu zarządzaniu urządzeń komunikacyjnych.[13]
2.2. Ataki pasywne
Zanim haker przeprowadzi aktywny atak, powinien zapoznać się ze środowiskiem swojego celu. W większości przypadków, to czy atak powiedzie się, jest bezpośrednio uzależnione od tego, jak dużo informacji napastnik zdoła uzyskać o celu. Posiadając już wszelkie informacje, haker może odwiedzić stronę internetową z listą odpowiednich exploitów (gotowych programów do przeprowadzenia ataku), ściągnąć potrzebne programy i przeprowadzić skuteczny atak.
2.2.1 Skanowanie
Skanowanie pozwala napastnikowi określić czy dany komputer jest aktywny, określić listę usług na nim dostępnych oraz poznać rodzaj i wersję zainstalowanego sytemu operacyjnego. Bardziej zaawansowane techniki pozwalają także na poznanie topologii sieci, w której pracuje komputer-cel, określenie ilości komputerów dostępnych w sieci, jak i również odszukanie istniejących zapór ogniowych. Skanowanie jest pierwszym krokiem przeprowadzanym przez hakera, pozwalającym na zebranie informacji potrzebnych do przeprowadzenia udanego ataku.
Do skanowania portów wykorzystuje się różne techniki, w zależności od użytych protokołów, z których korzystają atakowane komputery. Wszystkie z nich maja swoje wady i zalety.
Skanowanie otwarte TCP connect
Jest najprostszą metodą, wykorzystującą wywołanie systemowe. Charakteryzuje się dużą szybkością (możliwość równoległego tworzenia połączeń), nie wymaga specjalnych uprawnień w systemie, z drugiej jednak strony jest łatwo wykrywalna, nawet przez system bez jakichkolwiek zabezpieczeń. Metoda ta polega na wykonaniu próby uzgadniania trójfazowego (rys 4.) dla każdego spośród skanowanych portów TCP. Mechanizm uzgadniania trójfazowego jest dostępny w systemach zgodnych z UNIX nawet dla nieuprzywilejowanych użytkowników.
Procedura nawiązywania połączenia z portem nasłuchującym (będącym w stanie nasłuchu – ang. LISTENING) wygląda następująco:
?klient wysyła na skanowany port serwera segment SYN,
?serwer odpowiada segmentem SYN/ACK,
?klient potwierdza odpowiedź serwera wysyłając segment ACK.
Zakończone sukcesem uzgadnianie trójfazowe powoduje powrót funkcji connect() wartością 0, oznaczającą sukces.
Rys. 4. Skanowanie przy porcie otwartym
Źródło: http://www.it-faq.pl/itfaqarticle.asp?id=235
Przebieg nieudanej próby nawiązania połączenia z portem zamkniętym (nie będącym w stanie LISTENING) wygląda następująco:
?klient wysyła na skanowany port serwera segment SYN,
?serwer odpowiada segmentem RST,
?klient potwierdza odpowiedź serwera wysyłając segment RST.
W takiej sytuacji funkcja connect() powraca z wartością -1, która sygnalizuje błąd. Stacja skanująca zwykle natychmiast zamyka dopiero co otwarte połączenie (wywołując funkcje close()), ponieważ ilość otwartych deskryptorów jest limitowana, a wynegocjowane połączenie nie jest używane do dalszej wymiany danych.
Rys. 5. Skanowanie przy porcie zamkniętym.
Źródło: http://www.it-faq.pl/itfaqarticle.asp?id=235
Skanowanie półotwarte SYN
Ten rodzaj skanowania także korzysta ze zdefiniowanego w części pracy poświęconej połączeniu TCP uzgadniania trójfazowego i dlatego jest równie łatwy do wykrycia i zablokowania co skanowanie otwarte, mimo że nie zachodzi w tym przypadku pełne uzgadnianie trójfazowe (brakuje wysłania ostatecznego potwierdzenia przez klienta). Skanowanie półotwarte oznacza, że zakończenie połączenia następuje zanim wykonane zostanie potrójne uzgodnienie.
Wymiana segmentów następuje według poniższego schematu:
?klient wysyła na skanowany port serwera segment SYN,
?serwer odpowiada segmentem SYN/ACK jeżeli żądany port jest w stanie nasłuchu lub RST jeśli jest zamknięty.
Skanowanie z flagą FIN
Podobnie, jak w poprzedniej metodzie wykrywane są zamknięte porty TCP. Otwarte natomiast wykrywane są przez zaprzeczenie. Wysłanie pakietu ze znacznikiem FIN do zamkniętego portu TCP spowoduje odesłanie przez serwer pakietu z flagą RST. Natomiast w przypadku natrafienia na port otwarty stos przekaże pakiet z flagą FIN do procesu związanego z tym portem, a więc nie nastąpi odesłanie jakiejkolwiek odpowiedzi. Istnieją dwie metody przeprowadzenia skanowania pakietami z flagą FIN. Pierwsza z nich, przez porównanie, polega na wysłaniu do serwera ciągu pakietów na poszczególne porty. Następnie porównuje się listę portów, z których przyszła odpowiedź z listą pakietów wysłanych. Druga metoda wykorzystuje określony czas oczekiwania. Do portu TCP wysyła się pakiet z flagą FIN i w rezultacie otrzymuje się pakiet RST albo czeka się określony czas oczekiwania (timeout) i następnie wysyła się pakiet ze znacznikiem FIN do następnego portu TCP. Wady i zalety tej metody są takie same, jak w przypadku skanowania z flagami SYN i ACK.
Skanowanie z flagami SYN/ACK
W metodzie tej wykorzystuje się mechanizm obsługi połączeń półotwartych z pominięciem pierwszego etapu. Klient wysyła do serwera pakiet z ustawionymi flagami SYN i ACK. Serwer, otrzymując takie połączenie traktuje je jako błąd, gdyż wywołanie nie zostało poprzedzone pakietem z flagą SYN i wysyła do klienta pakiet z flagą RST. Tak dzieje się w przypadku trafienia na zamknięty port TCP. W przypadku otwartego portu serwer nie wyśle żadnej odpowiedzi na pakiet z flagami SYN i ACK. W ten sposób następuje wykrycie przez zaprzeczenie otwartego portu. Wykrycie przez zaprzeczenie stanowi w tym przypadku wadę tej metody, gdyż nie daje stuprocentowej pewności czy port jest naprawdę otwarty. Zaletą tej metody jest z kolei możliwość omijania najprostszych zapór ogniowych.
Skanowanie Reverse ident
Technika wykorzystuje właściwości protokołu ident opisanego przez Dave Goldsmitha w „RFC 1413 Identification Protocol” [14], który został zaprojektowany tak, aby można było uzyskać informacje o zestawionych połączeniach pomiędzy dwoma komputerami. Na podstawie uzyskanych odpowiedzi skanujący uzyskuje informacje o nazwach użytkowników, którzy są właścicielami procesów połączonych poprzez protokół TCP. Protokół ident posiada pewne ograniczenie. Umożliwia udzielanie informacji o połączeniach zestawionych jedynie pomiędzy parą klient - serwer. Aby tego dokonać wystarczy podłączyć się po protokole HTTP i można rozpocząć skanowanie. Znalezienie procesu pracującego jako root i jego skompromitowanie umożliwia uzyskanie swobodnego dostępu do całego systemu z przywilejami root. Zaletami tej techniki są duża szybkość skanowania, oraz fakt, że nie jest konieczne posiadanie żadnych przywilejów w systemie oraz uzyskanie znaczących informacji o systemie. Wadą natomiast jest łatwość wykrycia.
Skanowanie IP ID header
Technika ta wykorzystuje pewne szczególne cechy TCP/IP. Datagram IP posiada szesnastobitowe pole identyfikatora, który jednoznacznie określa każdy wysłany przez komputer pakiet IP. Wartość tego pola zwiększana jest automatycznie - o jeden za każdym razem, kiedy wysyłany jest kolejny datagram IP. Technika ta wykorzystuje jedną ze standardowych metod skanowania np. TCP connect. W procesie tym wykorzystywany jest dodatkowy komputer, który stanowi atrapę umożliwiającą ukrycie źródła skanowania. Komputer atrapa powinien być wybrany tak, aby ruch generowany przez niego był jak najmniejszy lub zerowy. W skanowaniu biorą udział trzy komputery:
?komputer atakujący o numerze IP x.x.x.x
?komputer atrapa o numerze IP y.y.y.y
?komputer skanowany o numerze IP z.z.z.z
Skanowanie przeprowadza się następująco:
Komputer atakujący wysyła serię pingów do atrapy, otrzymując odpowiedzi, w których kolejne identyfikatory (id) pakietów zwiększane są o jeden.
Odpowiedź od y.y.y.y: bytes=32 seq=1 ttl=128 id=+1 win=0 time<10ms
Odpowiedź od y.y.y.y: bytes=32 seq=2 ttl=128 id=+1 win=0 time<10ms
Odpowiedź od y.y.y.y: bytes=32 seq=3 ttl=128 id=+1 win=0 time<10ms
W pewnej chwili atakujący wysyła do ofiary zmodyfikowany pakiet SYN, w którym adres źródłowy wskazuje na komputer atrapę. Jeżeli skanowany port jest otwarty, to wówczas nastąpi potrójne uzgodnienie pomiędzy komputerami Z numerami IP z.z.z.z i y.y.y.y, a co za tym idzie atrapa wyśle pakiet ACK do maszyny skanowanej. Spowoduje to powstanie pakietu o identyfikatorze większym o jeden niż poprzednio wysłany. Uzgodnienie połączenia pomiędzy z.z.z.z i y.y.y.y wpłynie zatem na odpowiedzi na PING wysyłane do x.x.x.x, które będą wyglądały następujco:
Odpowiedź od y.y.y.y: bytes=32 seq=1 ttl=128 id=+1 win=0 time<10ms
Odpowiedź od y.y.y.y: bytes=32 seq=2 ttl=128 id=+2 win=0 time<10ms
Odpowiedź od y.y.y.y: bytes=32 seq=3 ttl=128 id=+1 win=0 time<10ms
W przypadku, gdy skanowany port jest zamknięty ofiara odpowie pakietem RST/ACK a atrapa nie wygeneruje żadnego pakietu do komputera skanowanego. W tym przypadku odpowiedzi na pinga z y.y.y.y do x.x.x.x pozostaną bez zmian.
Skanowanie z flagą ACK.
Skanowanie rozpoczyna się od wysłania do serwera pakietu z flagą ACK. Zarówno w przypadku otwartego, jak i zamkniętego portu TCP od serwera zawsze przychodzi pakiet RST. Aby określić, który port jest otwarty analizuje się pole TTL lub pole WINDOW pakietu otrzymanego od serwera (w zależności od implementacji stosu jedna z tych metod może nie być skuteczna).
W przypadku analizy pola TTL zwracamy uwagę na to, które wartości TTL są niższe od innych. Niższe wartości TTL oznaczać będą porty otwarte, wyższe natomiast porty zamknięte. W przypadku zaś pola WINDOW zamknięte porty będą miały zerową wartość, otwarte zaś niezerową. Zaletą tego skanowania jest bardzo trudne rejestrowanie ruchu oraz możliwość uniknięcia wykrycia przez systemy wykrywania intruzów.
Skanowanie typu NULL
W metodzie tej do serwera wysyłane są pakiety, w których nie jest ustawiona żadna flaga z SYN, ACK, FIN, RST, URG oraz PSH. Podobnie jak w metodzie FIN i SYN/ACK wykrycie otwartych portów następuje przez zaprzeczenie. Wysłanie pakietu bez flag do otwartego portu nie spowoduje powstania odpowiedzi. Natomiast wysłanie do portu zamkniętego spowoduje otrzymanie pakietu RST. Zaletą skanowania jest omijanie systemów wykrywania intruzów, wadą zaś możliwość wykorzystania wyłącznie do systemów UNIX'owych.
Skanowanie ICMP sweeps
Polega na wysłaniu pakietu ICMP Echo reguest, czyli zwykłego pinga. Brak odpowiedzi oznacza, że host jest niedostępny. Może też oznaczać, że odpowiedź na pakiety ICMP Echo reguest jest celowo zablokowana przez skanowany system na firewallach lub routerach.
Skanowanie Broadcast ICMP
Jest to odmiana poprzedniej metody, polegający na wysyłaniu pinga na adres rozgłoszeniowy sieci (ang. broadcast address). Można w ten sposób nawet ustalić liczbę komputerów w sieci. Systemy z rodziny Microsoft nie reagują na ten typ skanowania.
Skanowanie TCP sweep
Polega na wykorzystaniu pakietu TCP jako pakietu ping, korzystając z właściwości nawiązania połączenia. TCP, jako protokół połączeniowy wymaga zestawienia połączenia z trójfazowym uzgadnianiem- wymieniane są 3 elementy kontrolne. Host nawiązuje połączenie wysyła segment z ustawionym bitem SYN (czyli numer sekwencji synchronizującej). Informuje to odbiorcę, że nadawca chce nawiązać połączenie oraz podaje numer sekwencji przesyłanych danych. Odbiorca odpowiada wysyłając segment z ustawionymi bitami SYN i ACK, potwierdzając odbiór i informując, od jakiego numeru sekwencyjnego będzie odliczał wysyłane przez siebie dane. Jeśli port jest nieaktywny, wysyła segment z flagą RST. Nadawca wysyła segment potwierdzający odbiór ACK, zawierając już pierwsze dane. Dzięki tej wymianie nadawca wie, że odbiorca jest gotowy do przyjmowania danych. Pakiety TCP sweeps są przeważnie wysyłane na porty: 21, 22, 23, 25, 80, czyli typowe usługi, których pakiety nie są blokowane przez firewalle.
Skanowanie UDP Sweep
Metoda wykorzystuje wiadomość ICMP_PORT_UNREACHABLE, która jest generowana przez zamknięty port UDP. Metoda może być nieskuteczna ze względu na fakt, iż większość zapór ograniczających odrzuca pakiety UDP[15].
2.2.2 Węszenie
Nazwa techniki węszenia pochodzi od angielskiego słowa sniffing. Czasownik sniff w języku angielskim znaczy „wąchać, wyczuwać w powietrzu (np. niebezpieczeństwo), zwąchać, obwąchiwać”. Węszenie jest obrazową nazwą jednej z technik pasywnego ataku, polegającej na podsłuchiwaniu ruchu w sieci. Monitorowanie ruchu w sieci oznacza wyszukiwanie wielu interesujących danych. W najbardziej oczywistym przypadku przechwytywać można informacje dotyczące uwierzytelniania (nazwy użytkowników oraz hasła), by następnie uzyskać dostęp do zasobów. Można monitorować przesyłanie także innego rodzaju informacji, na przykład poczty elektronicznej lub bieżących komunikatów. Wszystko, co jest przesyłane w ramach sieci staje się dostępne dla podsłuchującego.
Programy służące w tym celu nazywa się snifferami. Zainstalowanie sniffera w jakimś newralgicznym punkcie sieci, np. na routerze może doprowadzić do pokonania zabezpieczeń wszystkich innych stacji roboczych z nim połączonych. Niektóre protokoły, które używają haseł do weryfikacji tożsamości użytkownika, przesyłają hasło otwartym tekstem. Jeśli na drodze między użytkownikiem a serwerem znajdzie się ktoś, kto używa sniffera, pozna on nasze hasło, jak i inne informacje przesyłane tą drogą.
Protokoły owe to m.in.: Telnet, FTP, POP3, HTTP[16]
Monitorowanie Telnetu (port 23.)
Telnet już niejako zwyczajowo jest usługą, którą program atakujący monitoruje w celu uzyskania informacji dotyczących logowania. Nie obsługuje on żadnych mechanizmów zabezpieczających z poziomu sesji i przesyła w sieci nazwę użytkownika oraz hasło w postaci tekstu jawnego (tekst pogrubiony), co przedstawia następujący przykład:
[~] % telnet localhost
Trying 127.0.0.0…
Connected to localhost.
Escape character is `^]`.
Redhat Linux relase 6.1 (Cartman)
Kernel 2.2.12-20 on an i686
login: adam
Password: biedronka
[18:03:03][redhat61]
[~] %
Rys. 6. Monitorowanie usługi Telnetu
Źródło: Opracowanie własne
Monitorowanie FTP (port 21.)
Usługa FTP (File Transfer Protocol), używana jest w celu przesyłania plików w sieci, a także przekazuje dane uwierzytelniające w postaci tekstu jawnego. W przeciwieństwie do usługo Telnet, FTP pozwala także na anonimowy dostęp do plików, kiedy to użytkownik jako swoją nazwę podaje anonymous lub ftp oraz określa dowolne hasło. Dane protokołu FTP są zazwyczaj ukrywane przez przyjazny interfejs klienta, jednak stosowny strumień danych uwierzytelniających przesyłany jest siecią w sposób jawny, co ułatwia hakerowi przejęcie interesujących go informacji. Przykład monitorowania połączenia z serwerem POP prezentuje rysunek numer 8.
[~] % telnet localhost 21
Trying 127.0.0.0…
Connected to localhost.
Escape character is `^]`.
220 localhost FTP server (Version wu-1.5.0(1) Tue Feb 17 16:48:12
USER: adam
331 Password requiem for adam.
PASS: biedronka
230 User Adam logged In.
Rys. 7. Monitorowanie połączenia z serwerem FTP
Źródło: Opracowanie własne
Monitorowanie POP3 (port 110.)
Usługa POP (Post Office Protocol) działa na serwerze sieciowym, poprzez który klienckie programy poczty elektronicznej łączą się w celu dostępu do wiadomości użytkownika znajdującego się na serwerze centralnym. Serwer POP często występując w sieciach dostawców usług internetowych (Internet Service Provider, ISP) i umożliwiają dostarczanie wiadomości elektronicznych do klientów. Treść ruchu pakietów POP często nie jest podawana szyfrowaniu, zaś dane uwierzytelniające są przesyłane w postaci jawnej. Informacje o nazwie użytkownika oraz haśle przekazuje się do odległego serwera za pomocą poleceń USER oraz PASS. Przykład prezentuje rysunek 9.
[~] % telnet localhost 110
Trying 127.0.0.0…
Connected to localhost.
Escape character is `^]`.
+OK POP3 localhost v7.59 server ready
USER: adam
+OK User name accepted, password please
PASS: biedronka
+OK Mailbox open, 24 messages
Rys. 8. Monitorowanie połączenie z serwerem POP3
Źródło: Opracowanie własne
Istnieją rozszerzenia protokołu POP, które poza szyfrowaniem sesji zapobiegają także przekazywaniu danych uwierzytelniających w postaci jawnej.
Monitorowanie HTTP (port 80.)
Protokół http (Hypertext Transfer Protocol) jest używany w celu przesyłania danych w sieci WWW. Dane te, zwykle kierowane do portu 80, są zazwyczaj monitorowane raczej w celu analizy statystyk i wykorzystywania w sieci niż samej ich zawartości. Jednak ruch HTTP może zawierać także dane uwierzytelniające i informacje o transakcjach dokonywanych za pomocą kart kredytowych- tego rodzaju dane są zazwyczaj szyfrowane w standardzie Secure Socjet Layer (SSL, warstwa zabezpieczeń łączy).[17]
Wykrywanie snifferów w sieci jest zadaniem trudnym, gdyż działając pasywnie nie zostawiają żadnych śladów w logach systemowych. Snifery przechwytują pakiety wędrujące po medium transmisyjnym, do którego są podpięte. W związku z tym podział sieci na mniejsze podsieci zmniejsza ilość informacji, które mogą być przechwycone. Sniffery nie potrafią przejść takich urządzeń jak bridge, switche, czy routery. Niestety jest to dosyć kosztowne rozwiązanie. Idealnym wydaje się więc szyfrowanie danych. Jeśli nie mamy do dyspozycji szyfrowania sesji, należy skorzystać z aplikacji, które oferują silne dwukierunkowe szyfrowanie danych. Przykładem może być Secure Shell (SSH), który zastępuje standardowego telneta i przy negocjacji połączenia stosuje algorytm RSA, a po autoryzacji transmisja kodowana jest algorytmem IDEA.
Jako ciekawostkę, należy zaznaczyć, że sniffery pierwotnie używane były przez administratorów w celu identyfikacji potencjalnych problemów, jednak z czasem zostały zaadoptowane przez hakerów, jako narzędzia świetnie nadające się do przechwytywania cennych danych[18].
2.3. Ataki aktywne
Tego typu ataki są zwykle następstwem przeprowadzonych metod pasywnych. W tym przypadku napastnik nie ogranicza się już do monitorowania lub podsłuchu informacji przesyłanych przez sieć, lecz dokonuje już modyfikacji i fałszowania danych. Kiedy haker posiada wszelkie potrzebne informacje odnośnie architektury sieci, systemów operacyjnych i zainstalowanych zabezpieczeń, przechodzi do ataku aktywnego.
2.3.1 Podrabianie
Termin ten oznacza podszywanie się jednego komputera pod inny, upoważniony do nawiązania połączenia.
Istnieje wiele odmian podszywania się, jednak najpopularniejsze z nich to IP-spoofing oraz DNS-spoofing[19].
IP-spoofing
Metoda ta polega na przesłaniu pakietów ze sfałszowanym numerem IP, tak aby był rozpoznawany jako ktoś inny. Należy jednak pamiętać, że ponieważ atakujący tym sposobem ukrywa się pod „podrobionym” numerem IP, to odpowiedź na jego próbę połączenia jest wysyłana na adres sfałszowany, a nie jego.
Przykład prezentuje rysunek 7. Atakujący wysyła do Janka pakiet ze sfałszowanym numerem IP. Janek otrzymuje pakiet, ale odpowiada na numer IP, który został mu podany, a zatem nie adres atakującego. W takiej sytuacji haker nie otrzymuje żadnej odpowiedzi od Janka.
Ta metoda nosi również nazwę podrabiania na ślepo lub „ataku jednokierunkowego”, ponieważ można wysyłać tylko pakiety do ofiary (Janek), nie uzyskując żadnej odpowiedzi.
Rys. 9. Atakujący wysyłający fałszywy pakiet
Źródło: Opracowanie własne
Jeśli natomiast atakującemu uda się ulokować na drodze pomiędzy komputerem ofiary, a komputerem na który wskazuje podrobiony adres, jest w stanie uzyskać pakiety będące odpowiedzią. Tego typu pozycja hakera nosi często nazwę „man in the middle” (człowiek w środku) i widoczna jest na rysunku 8. Jest oba podobna do przejmowania sesji (session hijacking), która opisze w dalszej części pracy. Różnica polega na tym, że tutaj atakujący nie doprowadza do zerwania połączenia komputerów, na których się koncentruje.
Rys. 10. Ulokowanie atakującego w metodzie „man in the middle”.
Źródło: Opracowanie własne
DNS-spoofing
Jest to atak na serwer DNS (ang. Domain Name System), który posiada bazę danych zawierającą spis numerów IP adresów mnemonicznych. Atak DNS-spoofing polega na modyfikacji poszczególnych wpisów w tablicy DNS tak, aby klient zamiast do komputera docelowego, został skierowany do komputera hakera.[20]
komputer docelowy serwer DNS klient
komputer hakera
Rys.11. Zasada działania DNS-spoofing
Źródło: Opracowanie własne
Istnieją pewne sposoby, które mogą ochronić przed atakiem podrobienia. Ważnym zaznaczenia jest fakt, że można ochraniać komputer, poprzez który haker próbuje wykonać atak, natomiast nie ma recepty w przypadku, gdy atakujący używając swojego komputera i podrabia adres IP. W sytuacji, gdy celem ataku może być jakaś firma posiadająca sieć wewnętrzną, można zastosować podstawowe filtry na routerach, które nie przepuszczają pakietów z zewnątrz mających adres źródłowy sieci firmy. Takiego rodzaju filtrowanie nosi nazwę ingress.
Z kolei tzw. filtrowanie engress zapobiega przed użyciem komputerów firmy w celu przeprowadzenia ataku podrabiania. Wtedy routery filtrują wszystkie pakiety wychodzące, sprawdzając, czy adres źródłowy należy do sieci lokalnej. Jeśli nie należy, pakiety zostają odrzucone, gdyż jest wtedy podejrzenie ataku podrobienia.[21]
2.3.2 Przejmowanie sesji
Znalezienie aktualnego hasła, które może posłużyć hakerowi do włamania do systemu, należy do jednych z najtrudniejszych czynności. Gdy używane są silne lub jednorazowe hasła (ang. one-time passwords), nawet jeśli atakujący jest w stanie je podejrzeć metodą sniffingu, stają się one bezużyteczne gdy następny użytkownik zaloguje się do systemu. Aby ominąć ten problem, haker powoduje przerwanie połączenia utworzonego pomiędzy klientem a serwerem, następnie podszywa się pod klienta i podsyła serwerowi własne numery sekwencji. Dzięki temu atakujący nie potrzebuje już hasła, gdyż serwer myśli że jest on użytkownikiem prowadzącym aktywną sesje, która przeszła już przez proces autentyfikacji.
10ms>10ms>10ms>10ms>
Dostları ilə paylaş: |