Detta är ett inlägg skrivet av Kaspersky Lab Expert Tillmann Werner, som först dök upp på Kasperskys Securelist-blogg.

Tidigare i veckan släppte Microsoft ett meddelande om störningen av en farlig botnät som var ansvarig för skräppostmeddelanden, stöld av känslig finansiell information, pump-och-dumpningsbedrägerier och distribuerade deial-of-service-attacker.

Kaspersky Lab spelade en avgörande roll i det här initiativet för botnätverk, vilket ledde till att motverka botmjukvaran, omvandla kommunikationsprotokollet och utveckla verktyg för att attackera peer-to-peer-infrastrukturen. Vi arbetade nära Microsofts Digital Crimes Unit (DCU), delade relevant information och gav dem tillgång till vårt levande botnet tracking system.

En viktig del av denna ansträngning är botnets sänkhål. Det är viktigt att förstå att botnet fortfarande finns - men det styrs av Kaspersky Lab. Tillsammans med Microsofts flytt till det amerikanska domstolssystemet för att inaktivera domänerna började vi sänka botnätet. Just nu har vi 3000 värdar som ansluter till vårt vashål varje minut. I det här inlägget beskrivs botnets inre verkningar och det arbete vi gjorde för att förhindra det från ytterligare drift.

Låt oss börja med en teknisk bakgrund: Kelihos är Microsofts namn för vad Kaspersky kallar Hlux. Hlux är en peer-to-peer botnet med en arkitektur som liknar den som används för Waledac botnet.

Den består av lager av olika typer av noder: kontrollerare, routrar och arbetare. Controllers är maskiner som antagligen drivs av gänget bakom botnet. De distribuerar kommandon till bots och övervakar peer-to-peer-nätverkets dynamiska struktur.

Routrar är smittade maskiner med offentliga IP-adresser. De driver bot i router-läge, värdproxitjänster, deltar i en snabbflödes kollektiv, och så vidare.

Slutligen är arbetare smittade maskiner som inte körs i routermodus, helt enkelt sätt. De används för att skicka ut spam, samla in e-postadresser, sniffa användaruppgifter från nätverksflödet, etc. En skiss av den lagrade arkitekturen visas nedan med en toppnivå av fyra kontroller och arbetarknoder som visas i grönt.

OVAN: Arkitektur av Hlux botnet

Arbetare noder

Många datorer som kan smittas med skadlig programvara har ingen direktanslutning till Internet. De är dolda bakom gateways, proxyer eller enheter som utför nätverksadressöversättning. Följaktligen kan dessa maskiner inte nås från utsidan såvida inte särskilda tekniska åtgärder vidtas.

Detta är ett problem för robotar som organiserar infekterade maskiner i peer-to-peer-nätverk eftersom det kräver hosting-tjänster som andra datorer kan ansluta till. Å andra sidan ger dessa maskiner mycket datakraft och nätverksbandbredd.

En maskin som kör Hlux botten skulle kontrollera om den kan nås från utsidan och om inte, sätta sig i arbetsläget. Arbetstagare behåller en lista med kamrater (andra smittade maskiner med offentliga IP-adresser) och begär jobb från dem. Ett jobb innehåller saker som instruktioner för att skicka ut skräppost eller att delta i angrepp mot beteende. Det kan också berätta för bot att ladda ner en uppdatering och ersätta sig med den nya versionen.

Routernoder

Routrar bildar någon form av ryggradslager i Hlux botnet. Varje router upprätthåller en peer-lista som innehåller information om andra kamrater, precis som arbetarknoder. Samtidigt fungerar varje router som en HTTP-proxy som tunnlar inkommande anslutningar till en av Controllers. Routrar kan också utföra jobb, men deras huvudsyfte är att ge proxyskiktet framför kontrollerna.

controllers

Styrenhetens noder är bottenns övre synliga skikt. Controllers värd en nginx HTTP-server och tjänar jobbmeddelanden. De deltar inte i peer-to-peer-nätverket och visas således aldrig i peer-listorna. Det finns vanligtvis sex av dem, spridda parvis över olika IP-områden i olika länder.

Varje två IP-adresser till ett par delar en SSH RSA-nyckel, så det är troligt att det bara finns en ruta bakom varje adresspar. Från tid till annan ersätts några av kontrollerna med nya. Strax innan botnet togs ut, innehöll listan följande uppgifter:

193.105.134.189
193.105.134.190
195.88.191.55
195.88.191.57
89.46.251.158
89.46.251.160

Peer-to-peer-nätverket

Varje bot håller upp till 500 peer-poster i en lokal peer-lista. Den här listan är lagrad i Windows-registret under HKEY_CURRENT_USER \ Software \ Google tillsammans med andra konfigurationsdetaljer. När en bot startar på en nyinfekterad maskin för första gången, initierar den sin peer-list med vissa hårdkodade adresser som finns i körbarheten.

Den senaste botversionen kom med totalt 176 poster. Den lokala peerlistan uppdateras med peer-information mottagen från andra värdar. När en bot ansluter till en router nod skickar den upp till 250 poster från sin nuvarande peer-lista och fjärrkontrollen skickar 250 av sina poster tillbaka. Genom att utbyta peer-listor sprids adresserna för nuvarande aktiva routernoder i botnätet. En peer-post lagrar informationen som visas i följande exempel:

m_ip: 41,212,81,2
m_live_time: 22639 sekunder
m_last_active_time: 2011-09-08 11:24:26 GMT
m_listening_port: 80
m_client_id: cbd47c00-f240-4c2b-9131-ceea5f4b7f67

Den peer-to-peer-arkitektur som implementeras av Hlux har fördelen av att vara väldigt motståndskraftig mot upptagningsförsök. Den dynamiska strukturen möjliggör snabba reaktioner om oegentligheter observeras. När en bot vill begära jobb kopplas den aldrig direkt till en kontroller, oavsett om den körs i arbetstagare eller routerläge. En arbetsförfrågan skickas alltid via en annan routernod. Så, även om alla kontrollernoderna går off-line, fortsätter peer-to-peer-lagret och ger ett sätt att tillkännage och sprida en ny uppsättning controllers.

Snabbtjänstenätet

Hlux botnet serverar också flera snabbflödesdomener som tillkännages i domännamnssystemet med ett TTL-värde på 0 för att förhindra caching. En fråga för en av domänerna returnerar en enda IP-adress som tillhör en infekterad maskin.

Snabblänkarna ger en back-back-kanal som kan användas av robotar för att återvinna tillgången till botnetet om alla kamrater i sin lokala lista är oåtkomliga. Varje botversion innehåller en individuell, hårdkodad återvändningsdomän.

Microsoft omregistrerade dessa domäner och avvecklade effektivt back-back-kanalen. Här är den uppsättning DNS-namn som var aktiva före nedtagningen - om du vill hålla koll på din DNS-resolver. Om du ser maskiner som frågar efter en av dem, är de sannolikt smittade med Hlux och bör tas om hand.

hellohello123.com
magdali.com
restonal.com
editial.com
gratima.com
partric.com
wargalo.com
wormetal.com
bevvyky.com
earplat.com
metapli.com

Botnet använde vidare hundratals deldomäner av ce.ms och cz.cc som kan registreras utan avgift. Men dessa användes bara för att distribuera uppdateringar och inte som backup-länk till botnet.

motåtgärder

En bot som kan gå med i peer-to-peer-nätverket kommer aldrig någonsin att lösa några av nedgångsdomenerna - det behöver inte. Faktum är att vår botnetskärm inte har loggat ett enda försök att komma åt säkerhetskopieringskanalen under de sju månader som den användes, eftersom åtminstone en annan peer alltid har nått sig.

Kommunikationen för bootstrapping och mottagande kommandon använder ett speciellt anpassat protokoll som implementerar ett strukturerat meddelandeformat, kryptering, komprimering och serialisering. Botkoden innehåller en protokollavsändare för att skicka inkommande meddelanden (bootstrap-meddelanden, jobb, SOCKS-kommunikation) till lämpliga funktioner medan du serverar allt på en enda port.

Vi konverterade detta protokoll och skapade några verktyg för att avkoda botnettrafik. Att kunna spåra uppstart och jobbmeddelanden för en avsiktligt infekterad maskin gav en bild av vad som hände med botnet, när uppdateringar distribuerades, vilka arkitektoniska förändringar gjordes och även för att utsträcka hur många infekterade maskiner som deltar i botnet.

OVAN: Träffar på sinkhålen per minut

Denna måndag började vi sprida en särskild peer-adress. Mycket snart blev den här adressen den mest framträdande i botnet, vilket resulterade i att robotarna pratade med vår maskin och endast på vår maskin. Experter kallar en sådan åtgärd sinkholing - bots kommunicerar med en sinkhole istället för sina riktiga controllers.

Samtidigt distribuerade vi en specialtillverkad lista över arbetsservrar för att ersätta den ursprungliga med de adresser som nämnts tidigare och förhindra att robotarna begär kommandon. Från denna tidpunkt kunde botnet inte längre beordras. Och eftersom vi har botsna kommunicerar med vår maskin nu kan vi göra vissa datavågor och spåra infektioner per land, till exempel. Hittills har vi räknat 49,007 olika IP-adresser. Kaspersky arbetar med Internet-leverantörer för att informera nätverksägare om infektionerna.

OVAN: Sinkholed IP-adresser per land

Vad nu?

Huvudfrågan är nu: vad är nästa? Vi kan uppenbarligen inte sjunka Hlux för evigt. De nuvarande åtgärderna är en tillfällig lösning, men de löser inte i sista hand problemet, eftersom den enda verkliga lösningen skulle vara en sanering av de smittade maskinerna.

Vi förväntar oss att antalet maskiner som slår till vårt sinkhole kommer sakta att sänka över tiden då datorer rengörs och installeras om. Microsoft sa att deras Malware Protection Center har lagt till boten till deras skadliga programvara borttagningsverktyg. Med tanke på spridningen av deras verktyg bör detta ha en omedelbar inverkan på infektionsnummer. Men under de senaste 16 timmarna har vi fortfarande observerat 22 693 unika IP-adresser. Vi hoppas att detta nummer kommer att bli mycket lägre snart.

Intressant finns det ett annat teoretiskt alternativ för att slutligen bli av med Hlux: vi vet hur botens uppdateringsprocess fungerar. Vi kan använda denna kunskap och utfärda vår egen uppdatering som tar bort infektionerna och avslutar sig själv. Detta skulle emellertid vara olagligt i de flesta länder och kommer därmed att förbli teori.