Duqu er en ondsindet matryoshka

Indledning

Den 1. september 2011 blev en fil med navnet ~DN1.tmp sendt til VirusTotal-webstedet fra Ungarn. På det tidspunkt blev filen opdaget som ondsindet af kun to antivirusmotorer - BitDefender og AVIRA. Sådan begyndte historien om Duqu. Når man ser fremad, må det siges, at Duqu malware-familien blev opkaldt efter denne fil. Denne fil er imidlertid et fuldstændigt uafhængigt spionmodul med keylogger-funktioner, sandsynligvis installeret ved hjælp af en ondsindet dropper-downloader, og kan kun betragtes som en "nyttelast" downloadet af Duqu malware i løbet af dens drift, men ikke en integreret del (modul) af Duqu. En af Duqu-komponenterne blev først sendt til Virustotal-tjenesten den 9. september. Dens kendetegn er en driver signeret med en digital signatur fra C-Media. Nogle eksperter begyndte straks at tegne analogier med et andet velkendt eksempel på malware - Stuxnet, som også brugte signerede drivere. Det samlede antal computere, der er inficeret af Duqu, opdaget af forskellige antivirusfirmaer rundt om i verden, er i tiere. Mange virksomheder hævder, at Iran igen er hovedmålet, men at dømme ud fra geografien af ​​fordelingen af ​​infektioner kan dette ikke siges med sikkerhed.
Duqu er en ondsindet matryoshka
I dette tilfælde bør man trygt kun tale om et andet firma med et nymodens ord APT (avanceret vedvarende trussel).

Implementeringsprocedure i systemet

En undersøgelse udført af specialister fra den ungarske organisation CrySyS (Hungarian Laboratory of Cryptography and System Security of the Budapest University of Technology and Economics) førte til opdagelsen af ​​en installatør (dropper), hvorigennem systemet var inficeret. Det var en Microsoft Word-fil med en udnyttelse af sårbarheden af ​​win32k.sys-driveren (MS11-087, beskrevet af Microsoft den 13. november 2011), som er ansvarlig for gengivelse af TTF-skrifttyper. Udnyttelsens shellcode bruger en skrifttype indlejret i dokumentet kaldet 'Dexter Regular', og Showtime Inc. krediteres som skaberen af ​​skrifttypen. Som du kan se, er skaberne af Duqu ikke fremmede for en sans for humor: Dexter er en seriemorder, helten i tv-serien af ​​samme navn, filmet af Showtime. Dexter dræber kun (hvis det er muligt) kriminelle, det vil sige bryder loven i lovens navn. Sandsynligvis, på denne måde, er udviklerne af Duqu ironiske over, at de er engageret i ulovlige aktiviteter til gode formål. Afsendelse af breve på e-mail blev udført målrettet. Til afsendelse blev kompromitterede (hackede) computere højst sandsynligt brugt som mellemled for at gøre sporing vanskelig.
Word-dokumentet indeholdt således følgende komponenter:

  • tekstindhold;
  • indlejret skrifttype;
  • udnytte silkekode;
  • chauffør;
  • installationsprogram (DLL).

I tilfælde af vellykket eksekvering udførte udnyttelsens shellcode følgende operationer (i kernetilstand):

  • en kontrol for geninfektion blev udført, for dette blev eksistensen af ​​'CF4D'-nøglen kontrolleret i registreringsdatabasen på 'HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInternet SettingsZones1', hvis det var sandt, fuldførte shell-koden sin udførelse;
  • to filer blev dekrypteret - driver (sys) og installationsprogram (dll);
  • driveren blev injiceret i services.exe-processen og lancerede installationsprogrammet;
  • i slutningen slettede shell-koden sig selv med nuller i hukommelsen.

Ved at køre win32k.sys som root-brugeren 'System' løste Duqus udviklere elegant problemet med både uautoriseret lancering og elevation (kører under en brugerkonto med begrænsede privilegier).
Installationsprogrammet, efter at have modtaget kontrol, dekrypterede tre datablokke i hukommelsen indeholdende:

  • underskrevet driver (sys);
  • hovedmodul (dll);
  • installationsprogrammets konfigurationsdata (pnf).

I installationsprogrammets konfigurationsdata blev der angivet et datointerval (i form af to tidsstempler - start og slut). Installationsprogrammet kontrollerede, om den aktuelle dato falder ind i det, hvis ikke, afsluttede det sin udførelse. Også i installationsprogrammets konfigurationsdata blev de navne, som driveren og hovedmodulet blev gemt under, angivet. I dette tilfælde blev hovedmodulet gemt på disken i krypteret form.

Duqu er en ondsindet matryoshka

For at autostarte Duqu blev der oprettet en tjeneste, der bruger en driverfil, der dekrypterer hovedmodulet på farten, ved hjælp af nøgler gemt i registreringsdatabasen. Hovedmodulet indeholder sin egen konfigurationsdatablok. Ved første start blev den dekrypteret, installationsdatoen blev indtastet i den, hvorefter den blev krypteret igen og gemt af hovedmodulet. I det berørte system blev tre filer gemt under en vellykket installation - driveren, hovedmodulet og dets konfigurationsdatafil, mens de sidste to filer blev gemt på disken i krypteret form. Alle dekrypteringsprocedurer blev kun udført i hukommelsen. Denne komplekse installationsprocedure blev brugt til at minimere muligheden for påvisning af antivirussoftware.

Hovedmodulet

Hovedmodul (ressource 302), af oplysninger af Kaspersky Lab, skrevet ved hjælp af MSVC 2008 i ren C, men ved hjælp af en objektorienteret tilgang. Denne tilgang er ukarakteristisk ved udvikling af ondsindet kode. Som regel skrives en sådan kode i C for at reducere størrelsen og slippe af med de implicitte kald, der er iboende i C++. Her er også en symbiose. Derudover blev der brugt en begivenhedsorienteret arkitektur. Kaspersky Lab-medarbejdere er tilbøjelige til teorien om, at hovedmodulet blev skrevet ved hjælp af en pre-processor-tilføjelse, der giver dig mulighed for at skrive kode i C i en objektstil.
Hovedmodulet er ansvarlig for proceduren for modtagelse af kommandoer fra operatører. Duqu giver flere måder at interagere på: ved at bruge HTTP- og HTTPS-protokollerne samt ved at bruge navngivne rør (pipe). For HTTP(S) er kommandocentrenes domænenavne angivet, mens det var muligt at arbejde gennem en proxyserver - de fik et brugernavn og en adgangskode. Kanalen får en IP-adresse og et kanalnavn. De angivne data gemmes i hovedmodulets konfigurationsdatablok (krypteret).
For at bruge navngivne rør blev en tilpasset implementering af RPC-serveren lanceret. Det understøttede følgende syv funktioner:

  • returnere den installerede version;
  • injicer dll i den angivne proces og kald den angivne funktion;
  • indlæs dll;
  • start en proces ved at kalde CreateProcess();
  • læse indholdet af den givne fil;
  • skriv data til den angivne fil;
  • slette den givne fil.

Navngivne rør kunne bruges inden for det lokale netværk til at distribuere opdaterede moduler og konfigurationsdata mellem Duqu-inficerede computere. Derudover kunne Duqu fungere som proxyserver for andre inficerede computere (som ikke havde adgang til internettet på grund af firewall-indstillinger på gatewayen). Nogle versioner af Duqu manglede RPC-funktionalitet.

Kendte "nyttelaster"

Symantec har identificeret mindst fire "nyttelaster" indlæst på kommando fra Duqus kontrolcenter.
Imidlertid var kun én af dem hjemmehørende og kompileret som en eksekverbar fil (exe), som blev gemt på disken. De resterende tre blev implementeret som dll-biblioteker. De blev indlæst dynamisk og udført i hukommelsen uden at blive gemt på disken.

Den residente "nyttelast" var et spionmodul (infotyver) med keylogger-funktioner. Det var med at sende det til VirusTotal, at arbejdet med Duqu-forskningen begyndte. Den vigtigste spionfunktionalitet var i ressourcen, hvoraf de første 8 kilobyte indeholdt en del af fotoet af galaksen NGC 6745 (til maskering). Det skal her erindres, at nogle medier i april 2012 offentliggjorde oplysninger (http://www.mehrnews.com/en/newsdetail.aspx?NewsID=1297506), at Iran var udsat for en slags Stars-malware, mens detaljerne vedr. hændelsen blev ikke afsløret. Det er muligt, at netop en sådan prøve af Duqus "nyttelast" blev opdaget dengang i Iran, deraf navnet "Stars" (stjerner).
Spionmodulet indsamlede følgende oplysninger:

  • liste over kørende processer, information om den aktuelle bruger og domæne;
  • liste over logiske drev, inklusive netværksdrev;
  • skærmbilleder;
  • adresser på netværksgrænseflader, routingtabeller;
  • logfil med tastaturtryk;
  • navne på åbne programvinduer;
  • liste over tilgængelige netværksressourcer (deling af ressourcer);
  • en komplet liste over filer på alle drev, inklusive flytbare;
  • liste over computere i "netværksmiljøet".

Endnu et spionmodul (infotyver) var en variation af den allerede beskrevne, men kompileret som et dll-bibliotek, blev funktionerne i keyloggeren, kompilering af en liste over filer og opregning af computere inkluderet i domænet fjernet fra det.
Næste modul (rekognoscering) indsamlede systemoplysninger:

  • om computeren er en del af et domæne;
  • stier til Windows-systemmapper;
  • version af operativsystemet;
  • navnet på den aktuelle bruger;
  • liste over netværksadaptere;
  • system og lokal tid, samt tidszonen.

Sidste modul (levetid forlænger) implementeret en funktion til at øge værdien (gemt i konfigurationsdatafilen for hovedmodulet) af antallet af resterende dage indtil afslutningen af ​​arbejdet. Som standard var denne værdi sat til 30 eller 36 dage afhængigt af ændringen af ​​Duqu, og faldet med én hver dag.

kommandocentre

Den 20. oktober 2011 (tre dage efter opdagelsen blev offentliggjort) gennemførte Duqu-operatører en procedure for at ødelægge spor af kommandocentrenes drift. Kommandocentre blev hostet på hackede servere rundt om i verden - i Vietnam, Indien, Tyskland, Singapore, Schweiz, Storbritannien, Holland, Sydkorea. Interessant nok kørte alle identificerede servere CentOS version 5.2, 5.4 eller 5.5. OS'er var både 32-bit og 64-bit. På trods af at alle filer relateret til driften af ​​kommandocentre blev slettet, lykkedes det Kaspersky Lab-specialister at gendanne nogle af oplysningerne i LOG-filer fra snæver plads. Det mest interessante er, at angribere på servere altid har erstattet standard OpenSSH 4.3-pakken med version 5.8. Dette kan indikere, at en ukendt sårbarhed i OpenSSH 4.3 blev brugt til at hacke servere. Ikke alle systemer blev brugt som kommandocentre. Nogle, at dømme efter fejlene i sshd-logfilerne, når de forsøgte at omdirigere trafik til porte 80 og 443, blev brugt som en proxyserver til at oprette forbindelse til de endelige kommandocentre.

Datoer og moduler

Et Word-dokument, der blev distribueret i april 2011, og som blev undersøgt af Kaspersky Lab, indeholdt en driver til download af installationsprogrammet med en kompileringsdato 31. august 2007. En lignende driver (størrelse - 20608 bytes, MD5 - EEDCA45BD613E0D9A9E5C69122007F17) i dokumentet, der kom ind i CrySys-laboratoriet, havde en kompileringsdato 21. februar 2008. Derudover fandt Kaspersky Lab-eksperter autorun-driveren rndismpc.sys (størrelse - 19968 bytes, MD5 - 9AEC6E10C5EE9C05BED93221544C783E) dateret 20. januar 2008. Ingen komponenter mærket 2009 blev fundet. Baseret på kompileringstidsstemplerne for de enkelte dele af Duqu kan dets udvikling gå tilbage til begyndelsen af ​​2007. Dens tidligste manifestation er forbundet med påvisningen af ​​midlertidige filer af formen ~DO (sandsynligvis oprettet af en af ​​spyware), hvis oprettelsesdato er den 28. november 2008 (artiklen "Duqu & Stuxnet: A Timeline of Interesting Events"). Den seneste dato relateret til Duqu er den 23. februar 2012, indeholdt i en driver til installationsdownload, opdaget af Symantec i marts 2012.

Brugte informationskilder:

serie af artikler om Duqu fra Kaspersky Lab;
Symantec-analytikerrapport "W32.Duqu Forløberen til det næste Stuxnet", version 1.4, november 2011 (pdf).

Kilde: www.habr.com

Tilføj en kommentar