Stan zagrożeń w internecie znajduje się obecnie na poziomie standardowym. Nie występują duże epidemie a eksperci z Kaspersky Lab nie zanotowali żadnych poważnych incydentów związanych z bezpieczeństwem. Poziom zagrożenia: 1

Identyfikowanie botnetów rozsyłających spam z wykorzystaniem metody "skoordynowanych dystrybucji"


Andrey Bakhmutov

Powszechnie wiadomo, że ogromne ilości spamu są obecnie rozsyłane przez sieci zainfekowanych komputerów, które mogą być zdalnie kontrolowane przez osoby lub organizacje. Sieci te nazywane są botnetami i stanowią nieustanne źródło zmartwień dla ekspertów ds. bezpieczeństwa na całym świecie.

Artykuł ten prezentuje metodę automatycznego izolowania i blokowania tych sieci w czasie rzeczywistym. Metoda ta opiera się na podejściu statystycznym, które wykorzystuje fakt, że komputery w botnecie muszą wykazywać pewne podobieństwo zachowań. Monitorując ruch pocztowy z różnych źródeł przez pewien okres czasu, można zauważyć, że strumienie wiadomości z niektórych źródeł mają wspólne cechy, które odróżniają je od innych komputerów wysyłających wiadomości email. W zależności od sposobu porównywania tych strumieni, liczby wiadomości w każdym strumieniu oraz liczby wyizolowanych źródeł, można stwierdzić z większym lub mniejszym prawdopodobieństwem, że źródła te tworzą sieć komputerów "zombie" - botnet.



Wprowadzenie

Spośród takich działań przestępczych, jak ataki DDoS, kradzież tożsamości, podsłuchiwanie ruchu, rozprzestrzenianie szkodliwego oprogramowania, wysyłanie spamu to najpopularniejszy sposób wykorzystania botnetów. Znaczący wzrost aktywności spamowej związany jest obecnie z coraz bardziej intensywnym wykorzystywaniem botnetów przez spamerów. Duże rozproszone sieci komputerów są trudne do wyśledzenia, a dynamiczny charakter adresów IP komputerów tworzących botnet uniemożliwia wykorzystanie tradycyjnych usług typu czarne listy.

Artykuł ten stanowi wstęp do metody, przy pomocy której można wyizolować botnety niemal w czasie rzeczywistym. Jest to metoda statystyczna zakładająca, że możliwe jest monitorowanie dużej ilości wiadomości e-mail z różnych lokalizacji; im więcej analizowanych źródeł oraz przetwarzanych wiadomości z każdego źródła, tym lepsze wyniki.

Głównym założeniem tej metody jest porównywanie dystrybucji niektórych parametrów numerycznych wiadomości e-mail wysyłanych z jednej lokalizacji z tymi samymi dystrybucjami z innych lokalizacji.

W najbardziej trywialnym przypadku, wszystkie komputery z botnetu dystrybuują identyczne kopie jednej wiadomości. Z łatwością moglibyśmy wyśledzić taką sieć, gromadząc i porównując sumy kontrolne wiadomości MD5 z różnych źródeł. Jeżeli setki tysięcy maszyn wysyłają wiadomości z taką samą sumą kontrolną MD5, bez wątpienia mamy do czynienia z botnetem. Jeśli jednak naszym celem jest zwalczanie spamu, a nie badanie botnetów, łatwiej będzie wykorzystać inny rodzaj technologii - Distributed Checksum Clearinghouse (DCC), która blokuje masowe wiadomości e-mail poprzez prowadzenie czarnej listy sum kontrolnych wiadomości.

W praktyce jest to jednak o wiele bardziej skomplikowane. Zawartość wiadomości e-mail znacznie różni się nawet w obrębie tej samej dystrybucji. Elementy i atrybuty wiadomości, które można zmienić, to tekst, liczba i rozmiar załączników, rozmiary grafiki, kodowanie, formaty itd. W rezultacie wiadomości różnią się wieloma parametrami, co utrudnia znalezienie podobnych schematów. W tej sytuacji możemy stworzyć dystrybucję numerów wiadomości według rozmiarów dla każdego źródłowego adresu IP. Dystrybucje te są następnie porównywane ze sobą. Naturalnie dystrybucje z różnych źródeł będą się różnić, będą jednak podobne do siebie o tyle, o ile źródła są z tego samego botnetu. Na tym właśnie polega ta metoda. Porównujemy funkcje, a nie wartości skalarne! Intuicyjnie czujemy, że gdybyśmy żyli w świecie, w którym nie istnieją botnety, wśród kilku milionów losowo wybranych maszyn trudno byłoby znaleźć kilka tysięcy komputerów dystrybuujących niemal identyczne wiadomości. Potwierdzają to dokładne obliczenia oraz liczne eksperymenty - dla niektórych wyizolowanych sieci "fałszywe trafienia" (prawdopodobieństwo umieszczenia "dobrego" komputera w "złej" grupie) były bliskie zeru. Inne sieci wykazały skromniejsze wyniki. Szacowanie fałszywych trafień jest traktowane jako element metody i zostanie omówione później.

Implementacja

System do zwalczania "ataków spamu" z botnetów musi być wysoce rozproszony, ponieważ dotyczy transakcji pocztowych na dużą skalę. Agenty przesyłania poczty (ang. MTA) muszą wysyłać informacje o otrzymywanych wiadomościach do jednej lub większej liczby lokalizacji, w których wiadomości te są gromadzone, a następnie analizowane. Otrzymane grupy adresów IP sklasyfikowanych jako botnety, wraz z liczbami lub wagami określającymi, w jakim stopniu możemy ufać tym grupom, tworzą czarne listy, do których można uzyskać dostęp na przykład poprzez zwykłe zapytania DNS. Głównym problemem jest tu zmienny charakter adresów źródłowych, z którymi mamy do czynienia. Większość zainfekowanych maszyn tworzących botnet to domowe komputery PC podłączone do sieci dostawców usług internetowych za pomocą połączeń telefonicznych, DSL, kablowych lub LAN. Adresy IP często są przydzielane dynamicznie do tych komputerów. To oznacza, że normalny cykl życia danego adresu IP może wynosić kilka dni lub godzin. System musi zareagować szybko, umieszczając adres na czarnej liście natychmiast po rozpoczęciu dystrybuowania przez niego spamu, i usuwając go, jak tylko zdezaktualizuje się.

Kaspersky Lab śledzi botnety masowo wysyłające wiadomości e-mail od października 2006 roku. Na rysunku 1 przedstawiono wykorzystywany w tym celu system. Dla naszych celów, jako system transportowy wykorzystaliśmy istniejący system o nazwie Urgent Detection System (UDS). Wiadomości e-mail są transmitowane ze swoich źródeł (oznaczonych jako "S") do punktów przeznaczenia (oznaczonych jako "D"), którymi są systemy pocztowe chronione przed spamem. W tej implementacji jedynym badanym atrybutem był rozmiar wiadomości. Rozmiary wiadomości, razem z adresami IP źródeł, przekazywane są do jednego z serwerów UDS, gdzie są gromadzone, a następnie przesyłane do analizatora botnetów. Dla każdego źródła analizator sporządza dystrybucje liczb wiadomości według rozmiaru i porównuje je, tworząc czarne listy adresów IP, które mają być blokowane. Dane dotyczące dystrybucji są aktualizowane i przetwarzane co dwie godziny w celu modyfikacji czarnych list, oraz reinicjowane co 24 godziny.

Kilka słów na temat sposobu porównywania zestawów dystrybucji. Bezpośrednie porównywanie kilku milionów dystrybucji typu każda z każdą wymagałoby wielu godzin obliczeń. Prawdziwym wyzwaniem jest stworzenie skutecznego algorytmu, który rozwiązałby ten problem. W obecnej implementacji każda dystrybucja jest dzielona na części. To właśnie takie części z różnych dystrybucji są porównywane po uporządkowaniu. Sam algorytm jest procesem iteracyjnym. Pierwsza iteracja tworzy zestawy adresów IP, które stanowią duże przybliżenia botnetów. Następne iteracje tworzą precyzyjne botnety. Aby przeanalizować dystrybucje z przeciągu jednej doby, potrzeba około 60-90 minut.


Rysunek 1

Fałszywe trafienia

Niezależnie od tego, czy system ten wykorzystujemy do blokowania spamu, czy jedynie do badania botnetów, pozostaje pytanie, na ile możemy ufać wynikom. Musimy oszacować, ile "dobrych" komputerów może zostać omyłkowo umieszczonych w każdym botnecie. Takie szacunki w dużym stopniu zależą od sposobu porównywania dystrybucji. Mówiąc ściśle, musimy określić przestrzeń metryczną, w jakiej żyją nasze dystrybucje. Metryka (tj. funkcja odległości między dwiema dystrybucjami) powinna zostać tak dobrana, aby właściwie odzwierciedlała temat. Rysunek 2. pokazuje, jak wyglądałaby taka przestrzeń metryczna w świecie wolnym od botnetów. Punkty rozmieszczone są raczej równomiernie w obszarze zainteresowania i nie jest możliwe objęcie wielu punktów kulą o stosunkowo niewielkim promieniu (kula o promieniu R w przestrzeni metrycznej stanowi zbiór punktów, których odległość od środka jest mniejsza niż R). W świecie, w którym istnieją botnety (Rysunek 3), są obszary o dużym zagęszczeniu, które można objąć kulą o małym promieniu. Z rysunków tych wynika, że im mniejszy promień, tym mniejsza liczba maszyn oraz prawdopodobieństwo fałszywych trafień.

Zastosowaliśmy praktyczne podejście w tej implementacji szacowania fałszywych trafień, w której przechowywaliśmy dystrybucje z przeciągu 24 godzin spoza wyizolowanego botnetu. Dystrybucje te stanowią nasz świat bez botnetów (Rysunek 2). Za każdym razem, gdy chcemy wykonać szacowanie dla botnetu, przywracamy dystrybucje z 24 godzin dla kilku (im więcej, tym lepiej) dni, które przechowywaliśmy miesiąc lub dwa wcześniej, bierzemy jedną reprezentatywna dystrybucję z botnetu i określamy, ile dystrybucji z przywróconego świata bez botnetów byłoby blisko dystrybucji botnetu. Liczba ta określa, ile "dobrych" komputerów może zostać zaliczonych do botnetu. Dla dobrze "zdefiniowanego botnetu" liczba ta powinna być niewielka (np. 0, 1, 2). Większe liczby oznaczają, że dystrybucja jest zbyt "trywialna", aby ją wykorzystać.

Prostszym podejściem jest szacowanie "złożoności" dystrybucji botnetu. Wiele "złożonych" dystrybucji prawie na pewno oznacza botnet.

Należy wspomnieć również o "pseudo fałszywych trafieniach". Komputer może dystrybuować legalne e-maile z treścią określoną przez właściciela botnetu. Jeśli stanowi to znaczącą część wszystkich wiadomości e-mail, komputer najprawdopodobniej nie będzie przyporządkowany żadnemu botnetowi, ponieważ dodatkowe wiadomości zniekształcają dystrybucję. Nie jest tak jednak w przypadku, gdy legalne wiadomości e-mail znajdują się poza zakresem naszego systemu.


Rysunek 2


Rysunek 3

Wyniki

W przeciągu 24 godzin izolowanych jest średnio kilkadziesiąt sieci. Liczba źródeł w każdej z nich waha się od kilku do kilkuset tysięcy. Jako przykład opisano dwa botnety, które zostały wyizolowane w lipcu 2007 roku. Jeden z nich posiadał do 2 000 adresów, głównie z Rosji, i był monitorowany przez kilka tygodni. Warto wspomnieć, że botnet ten był nieaktywny w dni powszednie i tylko 20-25% adresów przetrwało dłużej niż dzień, w którym zostały wykryte. Inna sieć posiadała około 200 adresów zarejestrowanych w Brazylii, Argentynie, Chinach, Indiach i innych państwach. Ogólnie prawie wszystkie sieci spoza Rosji przedstawione są w sposób niedokładny ze względu na niewystarczające informacje statystyczne. Poniższe diagramy ukazują regionalne dystrybucje tych botnetów.


Rysunek 4-5

Na końcu tego artykułu znajduje się 12 rysunków, które przedstawiają typowe dystrybucje uzyskane dla sześciu przedstawicieli pierwszego i drugiego botnetu. Nagłówek każdego z rysunków pokazuje adres IP, nazwę domeny, region oraz nazwę wiadomości wysłanych przez dany komputer w przeciągu 24 godzin. Oś odciętych reprezentuje rozmiary wiadomości (przedziały 100-bajtowe), natomiast oś współrzędnych pokazuje liczbę wiadomości. Na przykład, punkt o współrzędnych X=5000 i Y=30 oznacza, że komputer wysłał 30 wiadomości o rozmiarach wahających się od 5 000 do 5 099 bajtów. Rysunki pokazują, jak podobne są dystrybucje z tego samego botnetu mimo różnych ilości informacji statystycznych wykorzystanych do stworzenia tych dystrybucji.

Wnioski

Podaliśmy wiele szczegółów dotyczących implementacji tej metody, jednak sporo informacji zostało pominiętych. Mimo to, znając główne założenie metody, można zrozumieć jej zalety i wady. Głównym problemem w implementacji tej technologii jest konieczność posiadania znacznej ilości informacji statystycznych zebranych z różnych źródeł. Aby dobrze przeanalizować dystrybucję dla określonego źródła, należy zebrać informacje z przynajmniej kilkudziesięciu (najlepiej kilkuset) wiadomości wysłanych przez to źródło. Nie zawsze jest to możliwe. Poza tym podczas gromadzenia danych statystycznych wiadomości spamowe bez przeszkód dostarczane są do skrzynek pocztowych użytkowników. Inną wadą jest złożoność algorytmów analizy botnetu, które również wymagają dokładnych testów w celu uzyskania rzetelnych wyników. Zaletą tej metody jest łatwość implementacji po stronie klienta oraz nieznaczna ilość informacji transmitowanych przez klienta. Metoda ta wydaje się być jedną z niewielu, które z pewną precyzją mogą określić granice sieci zombie. Dlatego oprócz filtrowania spamu, metoda ta może zostać wykorzystana do badań botnetów. Dalsza ocena tej technologii będzie prawdopodobnie prowadziła do analizy dystrybucji na podstawie parametrów innych niż rozmiary oraz analizy dystrybucji wektorowych złożonych z kilku właściwości wiadomości.


Rysunek 6


Rysunek 7


Rysunek 8


Rysunek 9


Rysunek 10


Rysunek 11


Rysunek 12


Rysunek 13


Rysunek 14


Rysunek 15


Rysunek 16


Rysunek 17

Źródło:
Kaspersky Lab