Duqu är en illvillig matryoshka

Inledning

Den 1 september 2011 skickades en fil med namnet ~DN1.tmp från Ungern till VirusTotal-webbplatsen. Vid den tiden upptäcktes filen som skadlig av endast två antivirusmotorer - BitDefender och AVIRA. Så här började historien om Duqu. När man ser framåt måste det sägas att Duqu malware-familjen döptes efter namnet på denna fil. Den här filen är dock en helt oberoende spionprogrammodul med keylogger-funktioner, installerad, förmodligen, med en skadlig nedladdnings-dropper, och kan endast betraktas som en "nyttolast" som laddas av Duqu malware under dess drift, och inte som en komponent ( modul) av Duqu. En av Duqu-komponenterna skickades till Virustotal-tjänsten först den 9 september. Dess särdrag är en drivrutin digitalt signerad av C-Media. Vissa experter började genast dra analogier med ett annat känt exempel på skadlig programvara - Stuxnet, som också använde signerade drivrutiner. Det totala antalet Duqu-infekterade datorer som upptäckts av olika antivirusföretag runt om i världen är tiotals. Många företag hävdar att Iran återigen är huvudmålet, men att döma av den geografiska spridningen av infektioner kan detta inte sägas säkert.
Duqu är en illvillig matryoshka
I det här fallet bör du med säkerhet bara tala om ett annat företag med ett nymodigt ord APT (avancerat ihållande hot).

Procedur för systemimplementering

En undersökning gjord av specialister från den ungerska organisationen CrySyS (Hungarian Laboratory of Cryptography and System Security vid Budapest University of Technology and Economics) ledde till upptäckten av installationsprogrammet (dropper) genom vilken systemet infekterades. Det var en Microsoft Word-fil med en exploatering för win32k.sys-drivrutinssårbarheten (MS11-087, beskriven av Microsoft den 13 november 2011), som är ansvarig för TTF-fontåtergivningsmekanismen. Exploateringens skalkod använder ett teckensnitt som heter "Dexter Regular" inbäddat i dokumentet, med Showtime Inc. som är upphovsman till teckensnittet. Som du kan se är skaparna av Duqu inte främmande för humor: Dexter är en seriemördare, hjälten i tv-serien med samma namn, producerad av Showtime. Dexter dödar bara (om möjligt) brottslingar, det vill säga han bryter mot lagen i laglighetens namn. Förmodligen, på det här sättet, är Duqu-utvecklarna ironiska att de är engagerade i illegala aktiviteter för goda syften. Att skicka e-postmeddelanden gjordes målmedvetet. Försändelsen använde sannolikt komprometterade (hackade) datorer som mellanhand för att göra spårningen svår.
Word-dokumentet innehöll alltså följande komponenter:

  • textinnehåll;
  • inbyggt typsnitt;
  • utnyttja skalkod;
  • förare;
  • installationsprogram (DLL-bibliotek).

Om den lyckades utförde exploateringsskalkoden följande operationer (i kärnläge):

  • en kontroll gjordes för återinfektion, för detta kontrollerades närvaron av 'CF4D'-nyckeln i registret på adressen 'HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInternet SettingsZones1'; om detta var korrekt slutförde skalkoden sin exekvering;
  • två filer dekrypterades - drivrutinen (sys) och installationsprogrammet (dll);
  • drivrutinen injicerades i services.exe-processen och startade installationsprogrammet;
  • Slutligen raderade skalkoden sig själv med nollor i minnet.

På grund av det faktum att win32k.sys körs under den privilegierade användaren 'System', har Duqu-utvecklarna elegant löst problemet med både obehörig lansering och eskalering av rättigheter (som körs under ett användarkonto med begränsade rättigheter).
Efter att ha tagit emot kontroll dekrypterade installationsprogrammet tre block av data som finns i det i minnet, innehållande:

  • signerad förare (sys);
  • huvudmodul (dll);
  • installationskonfigurationsdata (pnf).

Ett datumintervall specificerades i installationsprogrammets konfigurationsdata (i form av två tidsstämplar - start och slut). Installationsprogrammet kontrollerade om det aktuella datumet var inkluderat i det, och om inte, slutförde det körningen. Även i installationsprogrammets konfigurationsdata fanns namnen under vilka drivrutinen och huvudmodulen sparades. I det här fallet sparades huvudmodulen på disken i krypterad form.

Duqu är en illvillig matryoshka

För att autostarta Duqu skapades en tjänst med hjälp av en drivrutinsfil som dekrypterade huvudmodulen i farten med hjälp av nycklar lagrade i registret. Huvudmodulen innehåller ett eget konfigurationsdatablock. När den först lanserades dekrypterades den, installationsdatumet skrevs in i den, varefter den krypterades igen och sparades av huvudmodulen. Sålunda, i det drabbade systemet, efter framgångsrik installation, sparades tre filer - drivrutinen, huvudmodulen och dess konfigurationsdatafil, medan de två sista filerna lagrades på disken i krypterad form. Alla avkodningsprocedurer utfördes endast i minnet. Denna komplexa installationsprocedur användes för att minimera möjligheten för upptäckt av antivirusprogram.

Huvudmodulen

Huvudmodul (resurs 302), enl Information företaget Kaspersky Lab, skrivet med MSVC 2008 i ren C, men med ett objektorienterat tillvägagångssätt. Detta tillvägagångssätt är okarakteristiskt när man utvecklar skadlig kod. Som regel skrivs sådan kod i C för att minska storleken och bli av med de implicita anrop som är inneboende i C++. Det finns en viss symbios här. Dessutom användes en händelsestyrd arkitektur. Kaspersky Lab-anställda är benägna till teorin att huvudmodulen skrevs med hjälp av ett pre-processor-tillägg som låter dig skriva C-kod i en objektstil.
Huvudmodulen ansvarar för proceduren för att ta emot kommandon från operatörer. Duqu tillhandahåller flera metoder för interaktion: att använda HTTP- och HTTPS-protokollen, såväl som att använda namngivna rör. För HTTP(S) specificerades domännamn för kommandocentraler, och möjligheten att arbeta via en proxyserver tillhandahölls - ett användarnamn och lösenord angavs för dem. IP-adressen och dess namn anges för kanalen. Angivna data lagras i huvudmodulens konfigurationsdatablock (i krypterad form).
För att använda namngivna pipes lanserade vi vår egen RPC-serverimplementering. Den stödde följande sju funktioner:

  • returnera den installerade versionen;
  • injicera en dll i den angivna processen och anropa den angivna funktionen;
  • ladda dll;
  • starta en process genom att anropa CreateProcess();
  • läsa innehållet i en given fil;
  • skriva data till den angivna filen;
  • radera den angivna filen.

Namngivna rör kan användas inom ett lokalt nätverk för att distribuera uppdaterade moduler och konfigurationsdata mellan Duqu-infekterade datorer. Dessutom kunde Duqu fungera som proxyserver för andra infekterade datorer (som inte hade tillgång till Internet på grund av brandväggsinställningarna på gatewayen). Vissa versioner av Duqu hade inte RPC-funktionalitet.

Kända "nyttolaster"

Symantec upptäckte minst fyra typer av nyttolaster som laddades ner under kommando från Duqus kontrollcenter.
Dessutom var bara en av dem hemmahörande och kompilerad som en körbar fil (exe), som sparades på disk. De återstående tre implementerades som dll-bibliotek. De laddades dynamiskt och kördes i minnet utan att sparas på disk.

Den inhemska "nyttolasten" var en spionmodul (infostelare) med keylogger-funktioner. Det var genom att skicka det till VirusTotal som arbetet med Duqu-forskning började. Den huvudsakliga spionfunktionaliteten fanns i resursen, vars första 8 kilobyte innehöll en del av ett foto av galaxen NGC 6745 (för kamouflage). Det bör påminnas här att i april 2012 publicerade vissa medier information (http://www.mehrnews.com/en/newsdetail.aspx?NewsID=1297506) om att Iran utsatts för skadlig programvara "Stars", medan detaljer om händelsen avslöjades inte. Kanske var det just ett sådant prov av Duqus "nyttolast" som upptäcktes då i Iran, därav namnet "Stars".
Spionmodulen samlade in följande information:

  • lista över pågående processer, information om den aktuella användaren och domänen;
  • lista över logiska enheter, inklusive nätverksenheter;
  • skärmdumpar;
  • nätverksgränssnittsadresser, routingtabeller;
  • loggfil med tangenttryckningar;
  • namn på öppna programfönster;
  • lista över tillgängliga nätverksresurser (delningsresurser);
  • en komplett lista över filer på alla diskar, inklusive flyttbara;
  • en lista över datorer i "nätverksmiljön".

Ytterligare en spionmodul (infostelare) var en variant av det som redan beskrivits, men kompilerat som ett dll-bibliotek; funktionerna för en keylogger, kompilering av en lista över filer och listning av datorer som ingår i domänen togs bort från den.
Nästa modul (erkännande) samlad systeminformation:

  • om datorn är en del av en domän;
  • sökvägar till Windows systemkataloger;
  • operativsystemversion;
  • nuvarande användarnamn;
  • lista över nätverkskort;
  • system och lokal tid, samt tidszon.

Sista modulen (livslängdsförlängare) implementerade en funktion för att öka värdet (lagrat i huvudmodulens konfigurationsdatafil) för antalet dagar som återstår tills jobbet är slutfört. Som standard var detta värde inställt på 30 eller 36 dagar beroende på Duqu-ändringen och minskade med en varje dag.

Kommandocentraler

Den 20 oktober 2011 (tre dagar efter att informationen om upptäckten spridits) genomförde Duqu-operatörer en procedur för att förstöra spår av ledningscentralernas funktion. Kommandocentraler fanns på hackade servrar runt om i världen - i Vietnam, Indien, Tyskland, Singapore, Schweiz, Storbritannien, Holland och Sydkorea. Intressant nog körde alla identifierade servrar CentOS version 5.2, 5.4 eller 5.5. OS:en var både 32-bitars och 64-bitars. Trots att alla filer relaterade till driften av kommandocentraler raderades, kunde Kaspersky Labs specialister återställa en del av informationen från LOG-filer från trångt utrymme. Det mest intressanta är att angripare på servrar alltid ersatte standardpaketet OpenSSH 4.3 med version 5.8. Detta kan tyda på att en okänd sårbarhet i OpenSSH 4.3 användes för att hacka servrar. Alla system användes inte som ledningscentraler. Vissa, att döma av felen i sshd-loggarna när de försökte omdirigera trafik för portarna 80 och 443, användes som en proxyserver för att ansluta till slutkommandocentralerna.

Datum och moduler

Ett Word-dokument som distribuerades i april 2011, som granskades av Kaspersky Lab, innehöll en installationsdrivrutin för nedladdning med ett kompileringsdatum 31 augusti 2007. En liknande drivrutin (storlek - 20608 byte, MD5 - EEDCA45BD613E0D9A9E5C69122007F17) i ett dokument som hittades i CrySys laboratorier hade ett sammanställningsdatum den 21 februari 2008. Dessutom hittade Kaspersky Labs experter autorun-drivrutinen rndismpc.sys (storlek - 19968 byte, MD5 - 9AEC6E10C5EE9C05BED93221544C783E) med datumet 20 januari 2008. Inga komponenter märkta 2009 hittades. Baserat på tidsstämplarna för sammanställningen av enskilda delar av Duqu, kan dess utveckling gå tillbaka till början av 2007. Dess tidigaste manifestation är associerad med upptäckten av temporära filer av typen ~DO (förmodligen skapade av en av spionprogrammodulerna), vars skapelsedatum är 28 november 2008 (artikel "Duqu & Stuxnet: A Timeline of Interesting Events"). Det senaste datumet associerat med Duqu var den 23 februari 2012, inkluderat i en installationsdrivrutin som upptäcktes av Symantec i mars 2012.

Använda informationskällor:

serie artiklar om Duqu från Kaspersky Lab;
Symantecs analytiska rapport "W32.Duqu Föregångaren till nästa Stuxnet", version 1.4, november 2011 (pdf).

Källa: will.com

Lägg en kommentar