Diagnoza bez wydatków

Problemy z sieciami można rozwiązywać za pomocą narzędzi dostępnych na bezpłatnych licencjach. W większości przypadków ich możliwości są co najmniej tak duże, jak rozwiązań komercyjnych - a bywa, że większe.

Problemy z sieciami można rozwiązywać za pomocą narzędzi dostępnych na bezpłatnych licencjach. W większości przypadków ich możliwości są co najmniej tak duże, jak rozwiązań komercyjnych - a bywa, że większe.

Każdy administrator staje od czasu do czasu przed wyzwaniem w postaci wykonania diagnostyki sieci. Często jest to zadanie z kategorii "na wczoraj", związane np. z nagłym spadkiem wydajności kluczowej aplikacji biznesowej. Ponieważ sytuacje tego rodzaju nie zdarzają się co drugi dzień, w budżecie IT prawie nigdy nie pojawia się pozycja "analizator sieciowy". W takiej sytuacji można rozeznać się samodzielnie, nie naruszając przy tym żadnych istotnych ustawień konfiguracyjnych. Trzeba jednak wówczas radzić sobie dzięki pomysłowości i programom dostępnym w Internecie.

Przyszpilanie problemu

Najczęściej spotykanym problemem jest utrata połączenia sieciowego. Tutaj oczywiście pierwszym działaniem jest sprawdzenie połączeń na poziomie IP. Do tego celu niemal każdy system operacyjny posiada polecenie ping. Oczywiście, gdy problem dotyczy połączenia między dwoma konkretnymi węzłami, ping zda egzamin. Gdy trzeba przebadać połączenie, które przechodzi przez wiele routerów, sprawa się komplikuje. Bo jeśli ping podaje, że ginie 30% pakietów, to jak prosto i szybko sprawdzić, gdzie konkretnie to następuje?

Diagnoza bez wydatków

Sniffit pracuje w trybie tekstowym, choć korzysta z interfejsu okienkowego.

Ping sprawdzi tylko jedno połączenie pod jeden konkretny adres. Do sprawdzenia całej trasy trzeba użyć tracert (traceroute w systemach typu Unix/Linux). Niestety, informacje o trasie podawanej przez traceroute są statyczne, tzn. że jeśli na jakimś węźle następuje utrata pakietów i program przeskoczył do następnych węzłów, to nie uaktualnia informacji o poprzednio badanych odcinkach łącza.

Inaczej działa mtr (Matt's traceroute) - pracujący w trybie tekstowym lub graficznym program wchodzący w skład większości dystrybucji systemu Linux. Mtr bada całą trasę, jednocześnie uaktualniając za każdym przebiegiem informacje o czasach, utratach pakietów oraz statystykę łącza. Dzięki temu programowi wykrycie węzła, który sprawia problemy, jest znacznie prostsze.

Warto wiedzieć także, że mtr potrafi diagnozować trasę za pomocą znacznie większych pakietów niż standardowe (ping też to potrafi, niemniej mtr wykonuje diagnozę znacznie sprawniej). Mtr to idealne narzędzie do wykrywania sytuacji wysycenia konkretnego odcinka łącza, względnie awarii powodującej utratę pakietów, np. na skutek zrywania synchronizacji łączy modemowych.

Protokoły mają głos

Jedną z ważniejszych analiz, jakie musi przeprowadzić administrator sieci, jest badanie ruchu przechodzącego przez konkretny węzeł. Do tego celu nadaje się dowolny program nasłuchujący (sniffer), którego istotą jest przełączenie interfejsu sieciowego w tryb nasłuchu pasywnego (promiscuous) oraz rejestracja wszystkich przepływających pakietów.

Liderem w tej dziedzinie jest bez wątpienia program tcpdump, który (jak sama nazwa wskazuje) "zrzuca" do pliku informacje o całym ruchu TCP/IP. Program ten bardzo się rozwinął i dzięki niemu znacznie łatwiej wykryć problemy komunikacyjne (np. wielokrotnie wysyłane pakiety), a także kłopoty w konfiguracji sieci (m.in. nieprawidłowe pakiety ARP).

W przypadku pewnych problemów, bardzo trudnych do analizy za pomocą typowych narzędzi (np. problemy z routingiem), tcpdump jest nieoceniony, gdyż można go użyć uruchamiając z konsoli, podczas gdy z drugiej konsoli tej samej maszyny wysyła się pakiety badające połączenie. Odpowiedzi podawane przez program tcpdump niejednokrotnie umożliwiają znacznie szybsze wykrycie problemu, a bywa, że jest to jedyny sposób wykonania szybkiej diagnostyki.

Ten sam tcpdump potrafi także wykryć efekty podszywania się pod urządzenia sieciowe (ARP spoofing). Co jakiś czas należy sprawdzać sieć pod kątem występowania podejrzanych pakietów, gdyż mogą one wskazywać na działanie nowoczesnego sniffera, który potrafi "węszyć" w środowisku sieciowym pracującym przy użyciu przełączników. Wykrycie takiego sniffera powinno być bardzo poważnym ostrzeżeniem, które musi pociągać decyzję o szczegółowym audycie całej sieci. Do tego celu polecam dodatkowo PROdetect - całkiem niezłe narzędzie do wykrywania kart sieciowych pracujących w trybie nasłuchu pasywnego (promiscuous).

Gdy potrzeba jeszcze większej ilości informacji niż podaje tcpdump, ponadto odpowiednio filtrowanej, analizowanej i składanej w bazie danych, wybór jest prawie oczywisty. Program snort, dzięki konstrukcji bazującej na regułach, potrafi analizować ruch, stosując odpowiednie filtry, a wyniki tej analizy składać w bazie danych. Do prostej analizy wystarczy uruchomienie snorta z wiersza poleceń ze wskazaniem na konkretny interfejs sieciowy.

Większość administratorów zastanawia się często nad tym jak zainstalować snorta, gdy na produkcyjnej maszynie nie można instalować oprogramowania innego niż zaakceptowanego "gdzieś na górze". Najprostszym rozwiązaniem jest duplikowanie ruchu na inny port przełącznika sieciowego, względnie użycie urządzenia o nazwie tap. Tap nie ingeruje w ruch przechodzący (jest de facto prostym "drutowym" połączeniem wejścia z wyjściem), wykonuje jedynie kopię ruchu na trzeci interfejs analizujący. Wtedy do tego portu można podłączyć dowolny komputer.

W rękach doświadczonego administratora analizator ruchu w sieci umożliwia wykrycie problemów, które inaczej byłyby nie do uchwycenia, np. tunelu IP-over-DNS, albo pracę niektórych komunikatorów internetowych. Pokazuje on także np. pakiety wielokrotnie przesyłane przez uszkodzone łącze.

Czekając na intruza

W wielu przypadkach ważne są informacje o komputerach w sieci. Typowym podejściem wielu administratorów jest uruchomienie skanera sieciowego, np. Lissovski Scan w systemie Windows czy nmap w środowiskach Unix/Linux. Wyniki dostarczane przez skaner zawierają kompletne informacje o komputerach podłączonych do sieci i generowanym przez nie ruchu. Skaner pokaże zawartość danych przesyłanych w sesjach, a nawet zdekoduje dane protokołu.

Do skutecznego wykrywania nielegalnych komputerów i innych urządzeń (np. routerów udostępniających sieć innej podsieci) potrzeba jednak całkiem innych narzędzi. Do tego celu najlepiej wykorzystać pasywny analizator ruchu. Pasywna analiza jest konieczna, ponieważ skanowanie sieci za pomocą nmap czy innego podobnego narzędzia działającego aktywnie, przekazuje natychmiast intruzowi informacje o tym, że administrator sieci zaczyna coś podejrzewać. Wtedy zazwyczaj odłącza się on od sieci i szanse złapania go na gorącym uczynku są nikłe.

Pasywny analizator nigdy nie wysyła żadnych pakietów. Przykładem takiego programu jest darmowy p0f ( Passive OS Fingerprintinghttp://lcamtuf.coredump.cx/p0f.shtml ) autorstwa Michała Zalewskiego, bardziej znanego jako lcamtuf. Program podaje proste informacje - adres IP, rodzaj systemu, liczbę skoków, czas działania (uptime), istnienie zapory i itp. Dzięki prostocie wyników nawet mało doświadczony administrator wykryje większość amatorskich prób włamań. Podobnie działa Archaeopteryx będący rozwinięciem programu Siphon, ale p0f v. 2 jest znacznie lepszy.

Program p0f może z powodzeniem pracować w trybie ciągłym, zaś wykonanie skryptu porównującego wyniki ze stanem ustalonym zajmuje około godziny (wraz z testami). Gorąco zachęcam do używania tego typu programów niezależnie od wdrożonych w firmie narzędzi IDS, bowiem zdarzały się już przypadki, że komercyjne, bardzo zaawansowane i kosztowne oprogramowanie IDS pomijało wiele istotnych ataków.

Proste narzędzia

Gdy informacje zawierające mnóstwo szczegółów nie przynoszą rezultatów, czasami warto użyć innego programu przeznaczonego do analizy ruchu na wyższym poziomie. Takimi zadaniami jest choćby proste sprawdzenie, czy ruch jest szyfrowany lub zebranie informacji przesyłanych w konkretnej sesji, by móc przejrzeć je na żywo.

Szczególnie ciekawy jest program sniffit (http://reptile.rug.ac.be/~coder/sniffit/sniffit.html ), który uruchomiony z flagą -i (interactive) wyświetla wszystkie połączenia i umożliwia wyświetlenie przesyłanych w nich danych. Sniffit jest bardzo szybki, uniwersalny oraz intuicyjny. Ponadto może pracować w trybie nieinteraktywnym, kopiując ruch do plików. Dzięki temu wychwycenie danych zawierających konkretne słowa jest bardzo proste. Sniffit jest dość starym programem, rozwijanym nieregularnie i stąd czasami zachowuje się niestabilnie, ale dzięki intuicyjnej prostocie do niektórych zadań jest nadal bezkonkurencyjny.

Lista programów-węszycieli jest znacznie dłuższa. Jest sporo oprogramowania dedykowanego do konkretnych zadań hakerskich, np. wychwytywanie haseł z niezaszyfrowanych sesji POP3, SMTP czy FTP, niemniej typowy zestaw administratora sieci obejmuje tcpdump, sniffit, snort, dsniff, ettercap oraz ethereal. Oprócz nich przydatny jest analizator ruchu LANtern. Polecam wszystkie te programy, gdyż są niesłychanie pomocne w diagnostyce nietypowych awarii sieci.

Szczególnie ważnym zadaniem jest sprawdzanie prawidłowości rozwiązywania adresów sprzętowych. Wiele problemów daje się wykryć, analizując informacje o pakietach ARP, do czego można wykorzystać program arpwatch. Jego zadaniem jest sprawdzanie powiązań między adresami IP i adresami MAC kart sieciowych. Pracując praktycznie bezobsługowo, program ten potrafi alarmować w przypadku pojawienia się nieznanej karty sieciowej lub zmiany adresów sprzętowych.

Do kompletu należy jeszcze dodać narzędzia do manipulacji pakietami ARP umożliwiające wysłanie dowolnego pakietu ARP (w celach diagnostycznych, oczywiście), a także symulacje typowych ataków (powódź pakietów, izolacja konkretnej maszyny). Takimi programami są np. arpsweep, ARP Digger i arpoison.

Innym narzędziem jest netdiscover, który umożliwia szybkie wykrycie wszystkich adresacji używanych w danej sieci. Dzięki temu z powodzeniem odkryje podłączone komputery z ustawionymi niestandardowymi adresami IP. W ten sposób można łatwo wykryć nielegalną podsieć o innej adresacji, uruchomioną wewnątrz danej sieci lokalnej. Warto wiedzieć, że netdiscover nie wysyła żadnego pakietu IP, korzysta jedynie z zapytań ARP. Zatem dla większości węszycieli oraz systemów IDS wychwytujących jedynie pakiety IP jest niewidoczny.

Efekty bez opłat

Jak widać narzędzia dostępne na mocy licencji open source mają bardzo szerokie możliwości, w wielu zastosowaniach nie ustępują rozwiązaniom komercyjnym, a w niektórych zadaniach bywają od nich znacznie lepsze. W arsenale narzędzi administratora sieci powinny znaleźć się tego typu programy, gdyż zdecydowanie ułatwiają diagnostykę.

Argument, że Linux jest trudny w instalacji i konfiguracji, należy do przeszłości - nowoczesne dystrybucje, takie jak Ubuntu, Fedora czy Aurox, pokazują to dobitnie. Ponadto administrator sieci może użyć dystrybucji live uruchamianej z płytki CD. Jednym z takich projektów jest specjalizowana do audytu bezpieczeństwa dystrybucja AuditorCD.

Uzupełnienie sniffera

Razem ze snifferem w komplecie występuje często oprogramowanie umożliwiające wysłanie dowolnego pakietu. Tutaj liderem pozostaje hping, który umożliwia wysłanie dowolnego pakietu - można wybrać sfałszowany adres źródłowy, dowolny adres docelowy (w tym także broadcast) i itp. Szczególna siła takiego zestawienia polega na możliwości sprawdzenia jak zachowa się sieć. Oprócz hpinga godny polecenia jest program packet generator oraz pierf, który jest szczególnie przydatny w problemach z lokalną siecią na poziomie Ethernetu. Z powodzeniem można użyć skanowania nmapem, jednocześnie analizując przepływające pakiety za pomocą sniffera uruchomionego w drugiej konsoli.


TOP 200