« poprzedni punkt 


3. Techniki wykrywania sniferów

Wiele systemów operacyjnych udostępnia mechanizm pozwalający stwierdzić, czy interfejs sieciowy pracuje w trybie bezładnym. W systemie Linux można to stwierdzić przy pomocy polecenia ifconfig. Gdy interfejs pracuje w tym trybie, to w sekcji atrybutów pojawi się słowo PROMISC. Należy jednak zwrócić uwagę, że jeżeli atakujący przejmie kontrolę nad komputerem, to może podłożyć zastępcze polecenie ifconfig, które nie będzie sygnalizowało trybu bezładnego. W Windows można wykorzystać program PromiscDetect.

Część programów, monitorujących sieć przeprowadza odwrotne przeszukiwanie DNS w momencie generowania raportów wyjściowych. Ma to na celu określenie nazw komputerów o znanych adresach. Generowany jest w ten sposób dodatkowy ruch w sieci związany z DNS. Możliwe jest wobec tego monitorowanie sieci w poszukiwaniu komputerów, które przeprowadzają dużą liczbę wyszukiwań DNS. Jednak oczywiście może to być działanie przypadkowe i nie odnajdziemy podsłuchującego komputera.

Prostszym sposobem byłoby utworzenie fałszywego połączenia z adresem, który nie ma żadnego związku z lokalna siecią. Można wówczas monitorować sieć w poszukiwaniu zapytań DNS, które próbują rozwiązać sfałszowany adres, co automatycznie zdradzi podsłuchującą maszynę.

Kolejną techniką jest badanie różnic w opóźnieniu odpowiedzi na wysyłane pakiety ICMP Echo Request (ping). Na wstępie należy sprawdzić komputer przez próbkowanie czasów odpowiedzi. Potem należy wygenerować w sieci duży ruch tak spreparowany, aby zainteresować potencjalnego snifera. W końcu czas opóźnienia jest próbkowany ponownie w celu porównania, czy zmienił się znacząco. Jednym z problemów tej metody jest fakt, że mogą wystąpić opóźnienia ponieważ medium transmisyjne będzie mocno obciążone i wzrośnie liczba kolizji.

Czasem w detekcji interfejsu pracującego w trybie bezładnym może pomóc błąd sterownika. Odkryto, że w popularnym sterowniku ethernetowym Linuxa, gdy komputer pracował w trybie bezładnym, system operacyjny nie był w stanie przeprowadzać sprawdzeń adresów MAC . Zamiast tego, sprawdzenie było przeprowadzane na poziomie protokołu IP. W normalnej sytuacji, pakiety z obcym adresem MAC zostałyby odrzucone na poziomie sprzętowym. W trybie bezładnym tak się nie dzieje. Można więc określić, czy komputer pracuje w trybie bezładnym przez wysłanie do niej pakietu ICMP Echo Request z poprawnym adresem IP i niepoprawnym MAC. Jeżeli nadejdzie odpowiedź, to oznacza pracę w trybie bezładnym.

Podobnie można wysyłać zapytania ARP nie na adres rozgłoszeniowy, lecz na adres podejrzanego o sniffing komputera. Jeżeli odpowie, to oznacza pracę w trybie bezładnym.

Metoda rutingu źródłowego polega na wypełnieniu w nagłówku IP pola tej opcji. Można to wykorzystać do wykrywania sniferów pracujących w innych segmentach sieci. Wymagane jest utworzenie pakietu ICMP Echo Request do podejrzanego komputera ze wskazaniem trasy typu loose-source w celu wymuszenia jego przekierowania przez inny komputer znajdujący się w tym samym segmencie. Komputer ten powinien mieć jednak wyłączony ruting. Jeśli pojawi się odpowiedź, prawdopodobnie oznacza to, że podejrzany przechwycił pakiet, ponieważ nie mógł go otrzymać z tego routera. Warto również sprawdzić pole TTL, aby upewnić się czy pakiet powrócił z powodu sniffingu. Jeżeli komputer wskazany jako router miałby włączony ruting, to pole TTL wskaże, czy cel odpowiedział z przekierowania czy też bezpośrednio.

Kolejna metoda, metoda destroy działa w środowisku nie tylko sieci lokalnej. Metoda polega na tym, że instaluje się klienta i serwer a następnie klient loguje się do serwera za pomocą Telnetu, POP, IMAP lub innego dowolnego jawnego protokołu. Serwer jest całkowicie wirtualny, to znaczy, że nie musi mieć żadnych kont. Kiedy atakujący przechwyci dane uwierzytelniające, z pewnością spróbuje je wkrótce wykorzystać do zalogowania się. Standardowe IDS mogą zostać skonfigurowane na wyłapywanie takich przypadków.


« poprzedni punkt