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

Historia zamknięcia botnetu: jak Kaspersky Lab wyłączył botnet Hlux/Kelihos

Tillmann Werner
Kaspersky Lab Expert
Dodany 4 października 2011, 10:44 CEST

Na początku ubiegłego tygodnia Microsoft poinformował o wyłączeniu niebezpiecznego botnetu odpowiedzialnego za wysyłanie spamu, kradzież poufnych informacji finansowych, oszustwa typu “pump-and-dump” oraz strony internetowe promujące wykorzystywanie seksualne dzieci.

Kaspersky Lab odegrał kluczową rolę w zlikwidowaniu tego botnetu, kierując takimi działaniami, jak inżynieria wsteczna szkodliwego bota, złamanie protokołu komunikacji oraz rozwój narzędzi pozwalających na uderzenie w infrastrukturę peer-to-peer. Ściśle współpracowaliśmy z działem Microsoftu odpowiedzialnym za przestępczość cyfrową, przekazując mu istotne informacje oraz zapewniając dostęp do naszego systemu śledzenia botnetów w czasie rzeczywistym.

Kluczowym elementem tych wysiłków było „zasysanie” botnetu. Należy podkreślić, że botnet nadal istnieje – jest jednak kontrolowany przez Kaspersky Lab. Podczas gdy Microsoft zwrócił się do amerykańskiego systemu sądowego o pozwolenie na dezaktywację domen, zaczęliśmy „zasysać” botnet. Obecnie co minutę do naszego leja przyłączanych jest 3 000 hostów. W tym poście opisaliśmy, jak działał botnet oraz nasze wysiłki, aby uniemożliwić mu dalsze działanie.

Zacznijmy od nakreślenia tła technicznego: Hlux (według nazewnictwa Microsoftu – Kelihos) to botnet peer-to-peer o architekturze podobnej do tej, jaką posiadał botnet Waledac. Sieć ta składa się z warstw węzłów różnego typu: kontrolerów, routerów oraz stacji roboczych. Kontrolery to maszyny, które prawdopodobnie są obsługiwane przez gang stojący za tym botnetem. Ich funkcją jest wydawanie poleceń botom oraz nadzorowanie dynamicznej struktury sieci peer-to-peer. Routery to zainfekowane maszyny o publicznych adresach IP. Uruchamiają one bota w trybie routera, hostują usługi proxy, uczestniczą w grupie fast-flux itd. Z kolei robotnicy to w dużym skrócie zainfekowane maszyny, które nie działają w trybie routera. Są wykorzystywane do rozsyłania spamu, gromadzenia adresów e-mail, przechwytywania danych uwierzytelniających użytkowników ze strumienia sieciowego itd. Poniżej znajduje się schemat architektury warstwowej, na którym górna warstwa składa się z czterech kontrolerów, a stacje robocze zostały zaznaczone na zielono.



Rysunek 1: Architektura botnetu Hlux

Stacje robocze

Wiele komputerów, które mogą zostać zainfekowane szkodliwym oprogramowaniem, nie posiada bezpośredniego połączenia z Internetem. Są ukryte za bramami internetowymi, serwerami proxy lub urządzeniami, które przekładają adresy sieciowe. W efekcie, nie jest możliwe uzyskanie dostępu do takich maszyn z zewnątrz, chyba że zostaną zastosowane specjalne środki techniczne. Stanowi to problem dla botów, które łączą zainfekowane maszyny w sieci peer-to-peer, ponieważ niezbędne są serwisy hostingowe, do których mogą podłączyć się inne komputery. Z drugiej strony, maszyny te zapewniają dużą moc obliczeniową oraz przepustowość sieci. Maszyna, która uruchamia bota Hlux, sprawdza, czy można uzyskać do niego dostęp z zewnątrz, a jeśli nie, przełącza się w tryb działania stacji roboczej. Stacje robocze utrzymują listę peerów (innych zainfekowanych maszyn z publicznymi adresami IP) i żądają od nich wykonania zadań. Zadanie obejmuje np. instrukcje rozsyłania spamu lub udziału w atakach denial-of-service. Można również polecić botowi pobranie uaktualnienia i zastąpienia się nową wersją.

Routery

Routery stanowią pewnego rodzaju warstwę szkieletową botnetu Hlux. Każdy router utrzymuje listę peerów zawierającą informacje o innych peerach, podobnie jak stacje robocze. Jednocześnie, każdy router działa jak proxy HTTP, który tuneluje połączenia przychodzące do jednego z kontrolerów. Routery również mogą wykonywać zadania, jednak istnieją głównie po to, aby stanowić warstwę proxy przed kontrolerami.

Kontrolery

Kontrolery stanowią górną warstwę botnetu. Hostują serwer HTTP nginx i dostarczają wiadomości o zadaniach. Nie uczestniczą w sieci peer-to-peer i przez to nigdy nie występują na listach peerów. Zwykle jest ich sześć, rozprzestrzeniają się parami w różnych zakresach adresów IP w różnych krajach. Każde dwa adresy IP z pary mają wspólny klucz SSH RSA, dlatego za każdą parą adresów w rzeczywistości może kryć się tylko jeden komputer. Od czasu do czasu niektóre z kontrolerów są zastępowane nowymi. Bezpośrednio przed zdjęciem botnetu lista zawierała następujące wpisy:

193.105.134.189
193.105.134.190
195.88.191.55
195.88.191.57
89.46.251.158
89.46.251.160
</dir>

Sieć peer-to-peer

Każdy bot zawiera do 500 wpisów na lokalnej liście peerów. Lista ta jest przechowywana w rejestrze Windows pod nazwą HKEY_CURRENT_USER\Software\Google wraz z innymi danymi konfiguracyjnymi. W momencie uruchomienia się po raz pierwszy na niedawno zainfekowanym komputerze bot inicjuje swoją listę peerów z kilkoma zakodowanymi na stałe adresami zawartymi w pliku wykonywalnym. Najnowsza wersja bota zawierała w sumie 176 wpisów. Lokalna lista peerów jest uaktualniana o informacje o peerach otrzymywane z innych hostów. Za każdym razem, gdy bot łączy się z routerem, wysyła do 250 wpisów ze swojej aktualnej listy peerów, a zdalny peer wysyła z powrotem 250 ze swoich wpisów. Poprzez wymianę list peerów za pośrednictwem botnetu rozprzestrzeniane są adresy aktualnie aktywnych routerów. Wpis peera przechowuje informacje zaprezentowane w następującym przykładzie:

m_ip: 41.212.81.2
m_live_time: 22639 seconds
m_last_active_time: 2011-09-08 11:24:26 GMT
m_listening_port: 80
m_client_id: cbd47c00-f240-4c2b-9131-ceea5f4b7f67
</dir>

Zaletą architektury peer-to-peer wykorzystywanej przez botnet Hlux jest duża odporność na próby wyłączenia. Dynamiczna struktura pozwala na szybkie reakcje w przypadku zaobserwowania nieprawidłowości. Kiedy bot chce zażądać wykonania zadań, nigdy nie łączy się bezpośrednio z kontrolerem, niezależnie od tego, czy działa w trybie stacji roboczej czy routera. Żądanie wykonania zadania jest zawsze wysyłane poprzez inny router. Dlatego nawet jeśli kontrolery zostaną odłączone od Sieci, warstwa peer-to-peer pozostaje aktywna i stanowi sposób zapowiadania i rozprzestrzeniania nowego zestawu kontrolerów.

Sieć usługi Fast-Flux

Botnet Hlux obsługuje również kilka domen fast-flux, które są ogłaszane w systemie nazw domen o wartości TTL równej 0 w celu uniemożliwienia buforowania. W wyniku zapytania dla jednej z takich domen zostaje zwrócony pojedynczy adres IP, który należy do zainfekowanej maszyny. Domeny fast-flux zapewniają kanał awaryjny, który może być wykorzystywany przez boty do odzyskania dostępu do botnetu, na wypadek gdy wszystkie peery na ich lokalnej listach były nieosiągalne. Każda wersja bota zawiera indywidualną zakodowaną na stałe domenę awaryjną. Microsoft wyrejestrował te domeny, likwidując tym samym kanał awaryjny. Poniżej przedstawiamy nazwy DNS, które były aktywne przed likwidacją – na wypadek, gdybyście chcieli monitorować swój DNS resolver. Jeżeli zobaczycie, że maszyny proszą o jeden z nich, prawdopodobnie są zainfekowane Hluxem i należy coś z nimi zrobić.

hellohello123.com
magdali.com
restonal.com
editial.com
gratima.com
partric.com
wargalo.com
wormetal.com
bevvyky.com
earplat.com
metapli.com
</dir>

Botnet wykorzystał następnie setki subdomen ce.ms oraz cz.cc, które można zarejestrować bezpłatnie. Jednak domeny te były wykorzystywane tylko do dystrybucji uaktualnień, nie zaś jako zapasowe połączenie z botnetem.

Likwidacja botnetu

Bot, który może przyłączyć się do sieci peer-to-peer, nie będzie „rozwiązywał” żadnej z domen awaryjnych, ponieważ nie musi. Nasz monitor botnetu nie zarejestrował ani jednej próby uzyskania dostępu do kanału zapasowego w czasie siedmiu miesięcy swojego działania, ponieważ zawsze dostępny był co najmniej jeden inny peer.

Podczas komunikacji służącej do ładowania początkowego i otrzymywania poleceń wykorzystywany jest specjalny protokół, który implementuje format wiadomości, szyfrowanie, kompresję oraz serializację. Kod bota zawiera dyspozytor protokołowy przydzielający wiadomości przychodzące (wiadomości ładowania początkowego, zadań, komunikacji SOCKS) do odpowiednich funkcji, a wszystko jest obsługiwane na jednym porcie. Wykonaliśmy inżynierię wsteczną tego protokołu i stworzyliśmy kilka narzędzi do odkodowania ruchu botnetowego. Śledzenie wiadomości ładowania początkowego i zadań dla zainfekowanej maszyny pozwala uzyskać obraz tego, co działo się z botnetem, kiedy były dystrybuowane uaktualnienia, jakie zmiany architekturalne zostały wprowadzone oraz, do pewnego stopnia, ile zainfekowanych maszyn uczestniczy w botnecie.



Rysunek 2: Liczba maszyn, które trafiły do „leja” na minutę

W ubiegły poniedziałek zaczęliśmy rozprzestrzeniać specjalny adres peer. Niedługo po tym adres ten stał się najbardziej rozpowszechniony w Internecie. W rezultacie, boty „rozmawiały” tylko z naszą maszyną. Eksperci określają taki proces jako sinkholing (zasysanie) – boty komunikują się z lejem (sinkhole) zamiast z rzeczywistymi kontrolerami. Jednocześnie dystrybuowaliśmy specjalnie stworzoną listę serwerów zadań, aby zamienić oryginalny serwer na wymienione wcześniej adresy i uniemożliwić botom żądanie poleceń. Od tego momentu botnet nie mógł już być kontrolowany przez cyberprzestępców. Ponieważ boty kontaktują się teraz z naszą maszyną, możemy wykonać tzw. drążenie danych i śledzić infekcje, np. według państwa. Jak dotąd zliczyliśmy 49 007 różnych adresów IP. Firma Kaspersky Lab współpracuje z dostawcami usług internetowych, dzięki czemu może informować właścicieli sieci o infekcjach.



Rysunek 3: Liczba „zassanych” adresów IP według państwa

Co teraz?

Najważniejsze pytanie brzmi: co teraz? Z pewnością nie możemy „odsysać” Hluxa bez końca. Zastosowane obecnie środki stanowią jedynie rozwiązanie tymczasowe i tak naprawdę nie likwidują problemu, ponieważ wymagałoby to wyczyszczenia zainfekowanych maszyn. Spodziewamy się, że liczba maszyn trafiających do naszego leja będzie się stopniowo zmniejszać, ponieważ komputery są „czyszczone” przez użytkowników, a systemy przeinstalowywane. Microsoft ogłosił, że centrum Malware Protection Center dodało bota do swojego narzędzia usuwania szkodliwych programów. Biorąc pod uwagę rozpowszechnienie tego narzędzia, powinno to mieć natychmiastowy wpływ na liczbę infekcji.

Warto wspomnieć, że teoretycznie istnieje jeszcze jeden sposób likwidacji Hluxa. Ponieważ wiemy, w jaki sposób działa proces aktualizacji bota, moglibyśmy udostępnić naszą własną aktualizację, która usunęłaby infekcje, a następnie zlikwidowałaby samą siebie. Jednak byłoby to nielegalne w większości państw, dlatego pozostanie rozwiązaniem teoretycznym.

Podziękowania

Obsługa “leja” botnetu, który potrafi obsługiwać dużą liczbę połączeń, wymaga odpowiednich zasobów. Chcielibyśmy podziękować SURFnet za ich wsparcie w naszej operacji, w szczególności za dostarczenie doskonałej infrastruktury umożliwiającej obsługę leja.