Sality – analiza aktywności botnetu
Botnet – grupa komputerów zainfekowanych złośliwym oprogramowaniem, pozostającym w ukryciu przed użytkownikiem i pozwalającym jego twórcy na sprawowanie zdalnej kontroli nad wszystkimi komputerami w ramach botnetu. Kontrola ta pozwala na ataki z użyciem zainfekowanych komputerów (wysyłanie spamu/phishingu, przeprowadzanie ataków DDoS).
Ta delikatnie podszlifowana definicja z Wikipedii w zasadzie szczegółowo opisuje pojęcie botnetu. By przyjrzeć się jak działa tego typu sieć, zajęliśmy się w ostatnich tygodniach botnetowi Sality. To rodzina złośliwego oprogramowania komunikującego się metodą peer-to-peer (P2P, w taki sposób, jak np. pliki pobierane z sieci Bittorrent) – inaczej, niż w przypadku scentralizowanego botnetu, z jednym lub kilkoma serwerami C&C (Command&Control, Dowodzenie i Kontrola). Sality działa jako platforma dystrybucji malware. Po zainfekowaniu komputera ofiary dołącza go do sieci P2P, co pozwala botmasterowi (przestępcy, kontrolującemu botnet) wydawać komendy poszczególnym grupom, bądź pojedynczym urządzeniom. Może m.in. instalować kolejne moduły malware’u, czy używać zainfekowanego urządzenia do ataków DDoS. Poświęciliśmy trochę czasu, by dokładnie przyjrzeć się aktywności botnetu.
Jak ochronić się przed Sality?
Obecnie w sieci funkcjonują dwie wersje Sality – 3 i 4. Przedmiotem naszej analizy jest ta pierwsza. Komunikacja danych między zainfekowanymi urządzeniami odbywa się przy użyciu protokołu UDP (używanego m.in. przy telefonii internetowej), którego charakterystyka niemal idealnie nadaje się do tego typu zastosowań. Między węzłami botnetu (de facto zainfekowanymi komputerami) przesyłane są podpisane cyfrowo tzw. UrlPacki, czyli krótkie pliki, zawierające łączą do plików binarnych z faktycznym złośliwym kodem. Znakomita większość węzłów nie jest widoczna z internetu jako część botnetu. Jedynie tzw. supernodes – czyli część węzłów (ok. 2 rzędy wielkości mniej, niż pozostałych) – to komputery ze statycznymi adresami IP (w przeciwieństwie do pozostałych), które mogą pełnić rolę serwerów w sieci P2P.
Czy efektywna ochrona przed Sality v3 jest możliwa? Tak, pod warunkiem, że dostawca internetu stosuje sinkholing (tj. blokowanie transmisji) zarówno z adresami, zawartymi w aktualnych UrlPackach, jak i tymi, wykorzystywanymi przez moduły służące bezpośredniej kontroli lub wykorzystaniu już zainfekowanych komputerów. Istotne jest również zabezpieczenie naszych urządzeń końcowych. Poza oczywistymi powodami, jest to też istotne ze względu na to, że Sality dysponuje modułem do infekcji routerów i zmiany na nich – oczywiście bez wiedzy użytkownika – adresów serwerów DNS. Choć w sprzedawanych przez Orange Polska Funboxach 2/3 i Liveboxach 3 adresy DNS są ustawione „na sztywno” i tak warto zmieniać na naszych urządzeniach domyślne hasło dostępu do panelu administracyjnego.
A może by tak zajrzeć do botnetu?
Czy da się zajrzeć do środka botnetu? My zaczęliśmy od odnalezienia dostępnych publicznie tzw. pcapów (skrót od ang. packet capture, zarchiwizowanych fragmentów ruchu sieciowego), odnoszących się do Sality v3 i zawierających UrlPacki. Okazało się, że spośród 3170 supernode’ów z 2014 roku 5 było wciąż aktywnych. Najnowszy UrlPack, który pojawił się w środę 7 marca, zawierał następujące adresy:
- hxxp://www.mesabillar.es/blog/wp-content/themes/PersonalPress/epanel/images/bottom.gif
- hxxp://vandeldencompany.com/wordpress/wp-content/themes/blue-black/images/bottom.gif
- hxxp://x1oil.com/wp-content/themes/x1oil/image.gif
- hxxp://mojporadca.sk/blog/wp-content/themes/simple-portal/images/bottom.gif
- hxxp://cestdelamerde.net/wordpress/wp-content/themes/twentyfourteen/images/image.gif
Nawet przy znajomości adres ściągnięcie plików nie jest jednak takie łatwe. By się udało, niezbędna jest znajomość odpowiedniej „flagi” User-Agent, czyli de facto musimy się „podszyć” pod konkretne, (oczywiście absolutnie niestandardowe) urządzenie sieciowe. Następnie dane trzeba rozszyfrować (klucz RC4 znany jest z wcześniejszych analiz Sality), by ostatecznie uzyskać liczący zaledwie 5 kilobajtów plik wykonywalny. Po przetestowaniu go przy użyciu „multi-antywirusa” VirusTotal, okazało się, że był wykrywany zaledwie przez kilka z 67 silników antywirusowych.
Zrób swój własny botnet
Skoro już zerknęliśmy z wierzchu na botnet Sality, warto spróbować zająć się tym nieco poważniej. W tym celu stworzyliśmy system monitorujący botnet, stając się de facto jednym z supernode’ów. Naszym zadaniem było pobieranie najnowszych adresów URL wykorzystywanych przez botnet i (to już akurat nasz pomysł) monitorowanie skali propagacji. Nasz węzeł komunikował się z innymi węzłami w botnecie zgodnie z zaimplementowanym w Sality protokołem, uwzględniając oczywiście normy etycznego hackingu (np. nie propagując nowych adresów URL ani informacji o węzłach, co przedłużałoby „żywotność” botnetu).
Jak wyglądała aktywność, przechodząca przez „nasz” node botnetu P2P? Jak widać na poniższym GIFie, z naszym węzłem Sality w ciągu zaledwie 3 dni aktywności łączyły się komputery praktycznie z całego globu – zabrakło dosłownie kilku ze 194 krajów świata.
Kilka ciekawostek, dotyczących połączeń do naszego węzła:
- 18 domen *.pl (z najpopularniejszą naszą Neostradową – neoplus.adsl.tpnet.pl)
- 19 adresów z domen gov (witryny rządowe) – z Ukrainy, Egiptu, Filipin, Sri Lanki, Indonezji (6), Brazylii (6) i Nepalu
- 18 adresów z domen edu (szkoły i uczelnie wyższe), w tym prawdopodobnie któryś ze studentów Politechniki Warszawskiej, łączący się przez adres mikrus.nat.student.pw.edu.pl
Trzeba jednak zaznaczyć, iż powyższe wyniki to efekt zapytań reverse DNS (pozwalających przyporządkować domenę adresowi IP, np. revDNS dla 80.48.169.1 da wynik http://www.orange.pl), a jak pokazują inne obserwacje, odpowiednie skonfigurowanie tej usługi wydaje się przerastać niektórych administratorów. Aż 732 spośród zebranych (w ciągu pierwszych dni) przez nasz węzeł adresów IP w odpowiedzi na RevDNS przekierowywały na „adres” localhost, czyli zachowywały się tak, jakby nie były wystawione do internetu. Kolejne interesujące spostrzeżenie pojawiło się w efekcie analizy adresów odpowiadających na niestandardowe sposoby (inne wzorce komunikacji, brak losowego przydzielania portów i długości komunikatów, niskie wersje ogłaszanych UrlPacków, inne reakcje na brak odpowiedzi na niektóre zapytania). Okazało się, że nie tylko my wpadliśmy na pomysł podsłuchiwania Sality – jeden z adresów należy do walczącej z cyberprzestępczością organizacji Shadowserver, dwa inne zaś to narzędzia pracy zespołu Matthiasa Fischera z Wydziału Informatyki Uniwersytetu w Hamburgu.
Podążanie śladami cyberprzestępców to wartościowa aktywność przede wszystkim dla jednostek CERT, firm antywirusowych i organów ścigania. Coraz częściej jednak tym tematem zajmują się również naukowcy – samo monitorowanie botnetów P2P jest podstawą kilku prac doktorskich z ostatnich lat. Czytelników zainteresowanych tematem zachęcamy do przejrzenia dostępnych w internecie publikacji na ten temat, a studentów informatyki „zarażamy” temat potencjalnej pracy magisterskiej.