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