Sekcje

Przejdź na skróty do treści. | Przejdź do nawigacji


Baza wiedzy Publikacje Analiza komunikacji sieciowej - argus

Analiza komunikacji sieciowej - argus

Wstęp

Jednym z aspektów monitorowania sieci pod względem bezpieczeństwa  (czy to podczas normalnego działania sieci, czy w trakcie analizy powłamaniowej) jest zagregowana analiza komunikacji sieciowej. Zagregowana, czyli zsumowana pod względem pewnych czynników. Stopień agregacji zależy od konkretnego celu jaki chcemy osiągnąć podczas analizy.

Pobieranie danych do analizy

Teoretycznie, jednym z prostszych sposobów kolekcjonowania oraz analizy ruchu jest wykorzystanie oprogramowania typu tcpdump -  i w kolejnym kroku agregowanie danych w pożądanym przez nas stopniu. Jednak w takim przypadku, monitorując nawet niewielką sieć możemy natknąć się na ograniczenia pojemnościowe (pełna komunikacja w niewielkiej sieci może bez problemu przekroczyć rozmiar kilkunastu GB danych dziennie). Analiza tak dużych plików może być w dużym stopniu uciążliwa...

Argus

Jednym z ciekawych narzędzi, umożliwiających zagregowaną analizę komunikacji sieciowej jest mało znane (choć rozwijane już przez około 10 lat) oprogramowanie argus. W przypadku tego oprogramowania, agregacja danych następuje na poziomie 'przepływów sieciowych' (ang. 'flow'). Przy czym 'przepływ' definiowany jest jako komunikacja między nadawcą a odbiorcą w oparciu o pewien protokół. Co więcej, komunikacja nie musi być zrealizowana z wykorzystaniem protokołów typowo połączeniowych (jak np. TCP). Równie dobrze może to być choćby ARP.

Argus składa się z dwóch głównych modułów:

  • Serwer (umożliwiający gromadzenie danych w czasie rzeczywistym - lub konwersję pliku w formacie libpcap).
  • Konsolowe narzędzia klienckie - umożliwiające operacje na uzyskanych danych.

W przypadku serwera argus, instalacja jest relatywnie prosta, a wykorzystanie podobne do uruchomienia w tle oprogramowania tcpdump.

W wyniku pracy serwera otrzymujemy plik z zagregowanymi danymi, który możemy analizować narzędziami klienckimi. Samych narzędzi klienckich argus oferuje przeszło 10, poniżej prezentuję przykładowe sposoby wykorzystania kilku z nich.

Wszystkie przykłady bazują na zebraniu komunikacji ze stacji roboczej za pomocą oprogramowania tcpdump, a następnie konwersji pliku wynikowego na format zgody z argus (argus -r logs.cap -w argus.log). Korzystając z tego typu "kompresji", w wielu przypadkach otrzymujemy plik około 100 razy mniejszy niż standardowy "zrzut" z wykorzystaniem tcpdumpa (!).

ra + rasort

Ra służy do wyświetlenia przepływów sieciowych zebranych w logach. Przykład wykorzystania narzędzia wygląda następująco:

$ ra -r argus.log -L0 |less

monitoring bezpieczeństwa sieci - argus 1

"L0"  powoduje wygenerowanie również opisu wyświetlanych kolumn, co pozwala na określenie jakie dane mamy prezentowane na ww. prostym raporcie.

 

$ ra -r argus.log -w - - udp or tcp | rasort -m bytes -L0 |less

monitoring bezpieczeństwa sieci - argus 2

"-w -"  wygeneruj plik w formacie argus na standardowe wyjście (który następnie będzie przeprocesowany przez kolejne narzędzie z suity klienckiej argusa - rasort)

"- udp or tcp" wykorzystanie filtru do ograniczenia analizy (chcemy analizować tylko komunikację TCP lub UDP). Przy okazji warto zauważyć, że filtry te zgodne są z notacją używaną np. w tcpdump.

"-m bytes" - sortuj po całkowitej ilości bajtów wchodzących w skład danej konwersacji.

racluster

Narzędzie klienckie racluster umożliwia agregację danych na jeszcze wyższym poziomie niż pojedyncze przepływy sieciowe. W poniższym przykładzie agregacja przepływów następuje na poziomie źródłowego adresu IP:

$racluster -r argus.log -m saddr -L0 | less

 monitoring bezpieczeństwa sieci - argus 3

"-m saddr" - pogrupuj wszystkie konwersacje po adresie źródłowym

Kolejny przykład stanowi połączenie wykorzystania narzędzi racluster oraz rasort do uzyskania statystyki ilości przesłanych danych oraz natężenia ruchu (bity / sekundę) w obrębie różnych protokołów sieciowych:

 

$racluster -r argus.log -m proto -w - |rasort -m bytes -s proto,bytes.load -L0 |less

monitoring bezpieczeństwa sieci - argus 4

 

"-s" - określa jakie dane powinny być wyświetlone w raporcie

Podsumowanie

Argus umożliwia zagregowaną analizę komunikacji sieciowej. Udostępnia element serwerowy zapewniający kolekcję próbki danych. Sposób składowania tego typu danych umożliwia analizę nawet bardzo intensywnej komunikacji, przy względnej oszczędności zasobów dyskowych. Co więcej, narzędzie udostępnia bardzo elastyczne konsolowe narzędzia umożliwiające niemal dowolną obróbkę i agregację zebranych danych.

W kolejnym tekście zaprezentuję inne narzędzia klienckie argus, umożliwiające np. anonimizację prezentowanych wyników czy generację graficznej reprezentacji wyników. Pokażę też kolejne praktyczne przykłady wykorzystania argus - np. do wykrycia skanowania portów czy innych anomalii.

Więcej informacji

 

-- Michał Sajdak (michal.sajdak@securitum.pl)

 

 

Przydatne informacje? Polub nas na facebooku.

Nawigacja
 
Darmowy magazyn o ITsec

zine
Subskrybuj RSS:
RSS