Duqu és una matrioshka maliciosa

Introducció

L'1 de setembre de 2011, es va enviar un fitxer anomenat ~DN1.tmp al lloc web de VirusTotal des d'Hongria. En aquell moment, només dos motors antivirus van detectar el fitxer com a maliciós: BitDefender i AVIRA. Així va començar la història de Duqu. De cara al futur, cal dir que la família de programari maliciós Duqu va rebre el nom d'aquest fitxer. No obstant això, aquest fitxer és un mòdul espia completament independent amb funcions de registre de tecles, probablement instal·lat amb l'ajuda d'un descarregador de goter maliciós, i només es pot considerar com una "càrrega útil" descarregada pel programari maliciós Duqu en el transcurs del seu funcionament, però no una part integral. part (mòdul) de Duqu . Un dels components de Duqu es va enviar al servei Virustotal només el 9 de setembre. La seva característica distintiva és un controlador signat amb una signatura digital de C-Media. Alguns experts immediatament van començar a dibuixar analogies amb un altre exemple conegut de programari maliciós: Stuxnet, que també utilitzava controladors signats. El nombre total d'ordinadors infectats per Duqu, detectats per diverses empreses antivirus d'arreu del món, és de desenes. Moltes empreses afirmen que l'Iran torna a ser l'objectiu principal, però a jutjar per la geografia de la distribució de les infeccions, això no es pot dir amb certesa.
Duqu és una matrioshka maliciosa
En aquest cas, s'ha de parlar amb confiança només d'una altra empresa amb una paraula nova APT (amenaça persistent avançada).

Procediment d'implantació en el sistema

Una investigació realitzada per especialistes de l'organització hongaresa CrySyS (Laboratori Hongarès de Criptografia i Seguretat del Sistema de la Universitat de Tecnologia i Economia de Budapest) va portar al descobriment d'un instal·lador (goper) a través del qual es va infectar el sistema. Es tractava d'un fitxer de Microsoft Word amb un exploit per a la vulnerabilitat del controlador win32k.sys (MS11-087, descrit per Microsoft el 13 de novembre de 2011), que s'encarrega de representar els tipus de lletra TTF. El codi de comandament de l'explotació utilitza un tipus de lletra incrustat al document anomenat "Dexter Regular", i Showtime Inc. s'acredita com a creador del tipus de lletra. Com podeu veure, els creadors de Duqu no són aliens al sentit de l'humor: Dexter és un assassí en sèrie, l'heroi de la sèrie de televisió del mateix nom, filmada per Showtime. Dexter només mata (si és possible) criminals, és a dir, incompleix la llei en nom de la llei. Probablement, d'aquesta manera, els desenvolupadors de Duqu s'ironen que es dediquen a activitats il·legals amb bons propòsits. L'enviament de cartes per correu electrònic es va dur a terme amb propòsit. Per a l'enviament, molt probablement, es van utilitzar ordinadors compromesos (piratejats) com a intermediari per dificultar el seguiment.
Així, el document de Word contenia els components següents:

  • contingut de text;
  • tipus de lletra incrustat;
  • explotar el codi de seda;
  • conductor;
  • instal·lador (DLL).

En cas d'execució correcta, el codi d'intèrpret d'ordres de l'explotació va realitzar les operacions següents (en mode de nucli):

  • es va realitzar una comprovació de reinfecció, per això es va comprovar l'existència de la clau 'CF4D' al registre a 'HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInternet SettingsZones1', si era cert, el shellcode va completar la seva execució;
  • es van desxifrar dos fitxers: controlador (sys) i instal·lador (dll);
  • el controlador es va injectar al procés services.exe i va llançar l'instal·lador;
  • al final, el shellcode es va esborrar amb zeros a la memòria.

En executar win32k.sys com a usuari root "Sistema", els desenvolupadors de Duqu van resoldre amb elegància el problema del llançament no autoritzat i de l'elevació (executant amb un compte d'usuari amb privilegis limitats).
L'instal·lador, després de rebre el control, va desxifrar tres blocs de dades a la memòria que contenien:

  • controlador signat (sys);
  • mòdul principal (dll);
  • dades de configuració de l'instal·lador (pnf).

A les dades de configuració de l'instal·lador, es va especificar un interval de dates (en forma de dues marques de temps: inici i final). L'instal·lador va comprovar si hi correspon la data actual, si no, va completar la seva execució. Així mateix, a les dades de configuració de l'instal·lador, s'indicaven els noms amb els quals s'han desat el controlador i el mòdul principal. En aquest cas, el mòdul principal es va desar al disc en forma xifrada.

Duqu és una matrioshka maliciosa

Per iniciar Duqu automàticament, es va crear un servei que utilitza un fitxer de controlador que desxifra el mòdul principal sobre la marxa, utilitzant les claus emmagatzemades al registre. El mòdul principal conté el seu propi bloc de dades de configuració. Al primer inici, es va desxifrar, es va introduir la data d'instal·lació, després de la qual cosa es va tornar a xifrar i es va guardar pel mòdul principal. Així, al sistema afectat, durant una instal·lació correcta, es van desar tres fitxers: el controlador, el mòdul principal i el seu fitxer de dades de configuració, mentre que els dos últims fitxers es van emmagatzemar al disc en forma xifrada. Tots els procediments de desxifrat es van dur a terme només a la memòria. Aquest complex procediment d'instal·lació es va utilitzar per minimitzar la possibilitat de detecció pel programari antivirus.

El mòdul principal

Mòdul principal (recurs 302), per informació de Kaspersky Lab, escrit amb MSVC 2008 en C pur, però amb un enfocament orientat a objectes. Aquest enfocament no és característic quan es desenvolupa codi maliciós. Com a regla general, aquest codi s'escriu en C per tal de reduir la mida i desfer-se de les trucades implícites inherents a C++. Aquí també hi ha una simbiosi. A més, es va utilitzar una arquitectura orientada a esdeveniments. Els empleats de Kaspersky Lab estan inclinats a la teoria que el mòdul principal s'ha escrit amb un complement de preprocessador que us permet escriure codi en C amb un estil d'objecte.
El mòdul principal és el responsable del procediment per rebre ordres dels operadors. Duqu ofereix diverses maneres d'interaccionar: utilitzant els protocols HTTP i HTTPS, així com utilitzant canonades amb nom (pipe). Per a HTTP(S), s'especifiquen els noms de domini dels centres de comandaments, mentre que era possible treballar mitjançant un servidor intermediari: se'ls va donar un nom d'usuari i una contrasenya. El canal rep una adreça IP i un nom de canal. Les dades especificades s'emmagatzemen al bloc de dades de configuració del mòdul principal (xifrat).
Per utilitzar canonades amb nom, es va llançar una implementació personalitzada del servidor RPC. Va donar suport a les set funcions següents:

  • retornar la versió instal·lada;
  • injecteu dll al procés especificat i crideu la funció especificada;
  • carregar dll;
  • llançar un procés cridant CreateProcess();
  • llegir el contingut del fitxer especificat;
  • escriure dades al fitxer especificat;
  • suprimir el fitxer donat.

Les canonades amb nom es podrien utilitzar dins de la xarxa local per distribuir mòduls actualitzats i dades de configuració entre ordinadors infectats per Duqu. A més, Duqu podria actuar com a servidor intermediari per a altres ordinadors infectats (que no tenien accés a Internet a causa de la configuració del tallafoc a la passarel·la). Algunes versions de Duqu no tenien funcionalitat RPC.

"Càrregues útils" conegudes

Symantec ha identificat almenys quatre "càrregues útils" carregades a comanda des del centre de control de Duqu.
Tanmateix, només un d'ells era resident i compilat com a fitxer executable (exe), que es va desar al disc. Els tres restants es van implementar com a biblioteques dll. Es carregaven dinàmicament i s'executaven a la memòria sense desar-los al disc.

La "càrrega útil" resident era un mòdul espia (robador d'informació) amb funcions de keylogger. Va ser amb l'enviament a VirusTotal que va començar el treball sobre la investigació Duqu. La principal funcionalitat d'espia es trobava al recurs, els primers 8 kilobytes del qual contenien part de la foto de la galàxia NGC 6745 (per emmascarar). Cal recordar aquí que l'abril de 2012, alguns mitjans van publicar informació (http://www.mehrnews.com/en/newsdetail.aspx?NewsID=1297506) que l'Iran estava exposat a algun tipus de programari maliciós Stars, mentre que els detalls de l'incident no es va revelar. És possible que només una mostra de la "càrrega útil" de Duqu es descobrís a l'Iran, d'aquí el nom "Estrelles" (estrelles).
El mòdul espia va recopilar la informació següent:

  • llista de processos en execució, informació sobre l'usuari actual i el domini;
  • llista d'unitats lògiques, incloses les de xarxa;
  • captures de pantalla;
  • adreces de les interfícies de xarxa, taules d'encaminament;
  • fitxer de registre de les pulsacions del teclat;
  • noms de les finestres d'aplicacions obertes;
  • llista de recursos de xarxa disponibles (recursos compartits);
  • una llista completa de fitxers de totes les unitats, incloses les extraïbles;
  • llista d'ordinadors a l'"entorn en xarxa".

Un altre mòdul espia (robador d'informació) era una variació de la ja descrita, però compilada com una biblioteca dll, se'n van eliminar les funcions del keylogger, compilar una llista de fitxers i enumerar ordinadors inclosos al domini.
Mòdul següent (reconeixement) informació del sistema recollida:

  • si l'ordinador forma part d'un domini;
  • camins als directoris del sistema de Windows;
  • versió del sistema operatiu;
  • nom de l'usuari actual;
  • llista d'adaptadors de xarxa;
  • sistema i hora local, així com la zona horària.

Últim mòdul (prolongador de vida útil) va implementar una funció per augmentar el valor (emmagatzemat al fitxer de dades de configuració del mòdul principal) del nombre de dies que queden fins al final del treball. Per defecte, aquest valor es va establir en 30 o 36 dies segons la modificació de Duqu, i es va reduir en un cada dia.

centres de comandament

El 20 d'octubre de 2011 (tres dies després de fer-se públic el descobriment), els operadors de Duqu van dur a terme un procediment per destruir els rastres del funcionament dels centres de comandament. Els centres de comandament es van allotjar en servidors piratejats de tot el món: a Vietnam, Índia, Alemanya, Singapur, Suïssa, Gran Bretanya, Holanda i Corea del Sud. Curiosament, tots els servidors identificats executaven les versions de CentOS 5.2, 5.4 o 5.5. Els sistemes operatius eren de 32 i 64 bits. Malgrat que es van suprimir tots els fitxers relacionats amb el funcionament dels centres de comandament, els especialistes de Kaspersky Lab van aconseguir recuperar part de la informació dels fitxers LOG des de l'espai lliure. El fet més interessant és que els atacants dels servidors sempre han substituït el paquet predeterminat d'OpenSSH 4.3 per la versió 5.8. Això pot indicar que es va utilitzar una vulnerabilitat desconeguda a OpenSSH 4.3 per piratejar servidors. No tots els sistemes es van utilitzar com a centres de comandament. Alguns, a jutjar pels errors dels registres sshd quan es va intentar redirigir el trànsit per als ports 80 i 443, es van utilitzar com a servidor intermediari per connectar-se als centres de comandaments finals.

Dates i mòduls

Un document de Word distribuït l'abril de 2011, que va ser examinat per Kaspersky Lab, contenia un controlador de descàrrega de l'instal·lador amb una data de compilació del 31 d'agost de 2007. Un controlador similar (mida - 20608 bytes, MD5 - EEDCA45BD613E0D9A9E5C69122007F17) al document que va entrar al laboratori CrySys tenia una data de compilació del 21 de febrer de 2008. A més, els experts de Kaspersky Lab van trobar el controlador d'execució automàtica rndismpc.sys (mida - 19968 bytes, MD5 - 9AEC6E10C5EE9C05BED93221544C783E) del 20 de gener de 2008. No s'han trobat components marcats amb 2009. Basat en les marques de temps de compilació de les parts individuals de Duqu, el seu desenvolupament podria datar de principis de 2007. La seva primera manifestació està associada a la detecció de fitxers temporals de la forma ~DO (probablement creats per un dels programes espia), la data de creació del qual és el 28 de novembre de 2008 (article "Duqu & Stuxnet: una cronologia d'esdeveniments interessants"). La data més recent relacionada amb Duqu és el 23 de febrer de 2012, inclosa en un controlador de descàrrega d'instal·lador descobert per Symantec el març de 2012.

Fonts d'informació utilitzades:

sèrie d'articles sobre Duqu de Kaspersky Lab;
Informe d'analista de Symantec "W32.Duqu El precursor del proper Stuxnet", versió 1.4, novembre de 2011 (pdf).

Font: www.habr.com

Afegeix comentari