Duqu este o matrioșcă rău intenționată

Introducere

La 1 septembrie 2011, un fișier numit ~DN1.tmp a fost trimis pe site-ul web VirusTotal din Ungaria. La acel moment, fișierul a fost detectat ca fiind rău intenționat de doar două motoare antivirus - BitDefender și AVIRA. Așa a început povestea lui Duqu. Privind în viitor, trebuie spus că familia de malware Duqu a fost numită după acest fișier. Cu toate acestea, acest fișier este un modul spion complet independent, cu funcții de keylogger, instalat probabil cu ajutorul unui dropper downloader rău intenționat și poate fi considerat doar o „sarcină utilă” descărcată de malware Duqu în timpul funcționării sale, dar nu o integrală. parte (modul) din Duqu . Una dintre componentele Duqu a fost trimisă către serviciul Virustotal abia pe 9 septembrie. Caracteristica sa distinctivă este un driver semnat cu o semnătură digitală de la C-Media. Unii experți au început imediat să facă analogii cu un alt exemplu binecunoscut de malware - Stuxnet, care folosea și drivere semnate. Numărul total de computere infectate de Duqu, detectate de diverse companii de antivirus din întreaga lume, este de zeci. Multe companii susțin că Iranul este din nou ținta principală, dar judecând după geografia distribuției infecțiilor, acest lucru nu poate fi spus cu siguranță.
Duqu este o matrioșcă rău intenționată
În acest caz, ar trebui să vorbim cu încredere doar despre o altă companie cu un cuvânt nou APT (amenințare persistentă avansată).

Procedura de implementare în sistem

O investigație efectuată de specialiști din cadrul organizației maghiare CrySyS (Laboratorul Ungar de Criptografie și Securitate a Sistemelor al Universității de Tehnologie și Economie din Budapesta) a dus la descoperirea unui instalator (dropper) prin care sistemul a fost infectat. Era un fișier Microsoft Word cu un exploit pentru vulnerabilitatea driverului win32k.sys (MS11-087, descris de Microsoft pe 13 noiembrie 2011), care este responsabil pentru redarea fonturilor TTF. Codul shell al exploit-ului folosește un font încorporat în document numit „Dexter Regular”, iar Showtime Inc. este creditat ca creator al fontului. După cum puteți vedea, creatorii lui Duqu nu sunt străini de simțul umorului: Dexter este un criminal în serie, eroul serialului de televiziune cu același nume, filmat de Showtime. Dexter ucide doar (dacă este posibil) criminali, adică încalcă legea în numele legii. Probabil, în acest fel, dezvoltatorii lui Duqu sunt ironici că sunt angajați în activități ilegale în scopuri bune. Trimiterea scrisorilor prin e-mail a fost efectuată intenționat. Pentru trimitere, cel mai probabil, computerele compromise (pirate) au fost folosite ca intermediar pentru a îngreuna urmărirea.
Documentul Word conținea astfel următoarele componente:

  • continutul textului;
  • font încorporat;
  • exploata silkcode;
  • conducător auto;
  • instalator (DLL).

În cazul execuției cu succes, codul shell al exploit-ului a efectuat următoarele operații (în modul kernel):

  • s-a efectuat o verificare a reinfectării, pentru aceasta s-a verificat existența cheii 'CF4D' în registry la 'HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInternet SettingsZones1', dacă era adevărată, shellcode-ul și-a finalizat execuția;
  • au fost decriptate două fișiere - driver (sys) și program de instalare (dll);
  • driverul a fost injectat în procesul services.exe și a lansat programul de instalare;
  • la sfârșit, codul shell s-a șters cu zerouri în memorie.

Prin rularea win32k.sys ca utilizator root „System”, dezvoltatorii lui Duqu au rezolvat în mod elegant atât problema lansării neautorizate, cât și a ridicării (rulează sub un cont de utilizator cu privilegii limitate).
Instalatorul, după ce a primit controlul, a decriptat trei blocuri de date în memorie care conțineau:

  • driver semnat (sys);
  • modul principal (dll);
  • date de configurare a instalatorului (pnf).

În datele de configurare a instalatorului, a fost specificat un interval de date (sub formă de două marcaje temporale - început și sfârșit). Instalatorul a verificat dacă data curentă se încadrează în ea, dacă nu, și-a încheiat execuția. De asemenea, în datele de configurare a instalatorului au fost indicate numele sub care au fost salvate driverul și modulul principal. În acest caz, modulul principal a fost salvat pe disc în formă criptată.

Duqu este o matrioșcă rău intenționată

Pentru a porni automat Duqu, a fost creat un serviciu care folosește un fișier driver care decriptează modulul principal din mers, folosind cheile stocate în registry. Modulul principal conține propriul bloc de date de configurare. La prima pornire, a fost decriptat, a fost introdusă data instalării, după care a fost din nou criptat și salvat de modulul principal. Astfel, în sistemul afectat, în timpul unei instalări reușite, au fost salvate trei fișiere - driverul, modulul principal și fișierul de date de configurare al acestuia, în timp ce ultimele două fișiere au fost stocate pe disc în formă criptată. Toate procedurile de decriptare au fost efectuate numai în memorie. Această procedură complexă de instalare a fost folosită pentru a minimiza posibilitatea de detectare de către software-ul antivirus.

Modulul principal

Modulul principal (resursa 302), de informații de Kaspersky Lab, scris folosind MSVC 2008 în C pur, dar folosind o abordare orientată pe obiecte. Această abordare nu este caracteristică atunci când se dezvoltă cod rău intenționat. De regulă, un astfel de cod este scris în C pentru a reduce dimensiunea și a scăpa de apelurile implicite inerente în C++. Există și o simbioză aici. În plus, a fost folosită o arhitectură orientată spre evenimente. Angajații Kaspersky Lab sunt înclinați către teoria conform căreia modulul principal a fost scris folosind un add-on pre-procesor care vă permite să scrieți cod în C într-un stil obiect.
Modulul principal este responsabil pentru procedura de primire a comenzilor de la operatori. Duqu oferă mai multe modalități de a interacționa: folosind protocoalele HTTP și HTTPS, precum și utilizarea conductelor numite (pipe). Pentru HTTP(S), sunt specificate numele de domenii ale centrelor de comandă, în timp ce a fost posibil să se lucreze printr-un server proxy - li sa dat un nume de utilizator și o parolă. Canalului i se dă o adresă IP și un nume de canal. Datele specificate sunt stocate în blocul de date de configurare al modulului principal (criptat).
Pentru a utiliza named pipes, a fost lansată o implementare personalizată a serverului RPC. A susținut următoarele șapte funcții:

  • returnează versiunea instalată;
  • injectați dll în procesul specificat și apelați funcția specificată;
  • încărcați dll;
  • lansează un proces apelând CreateProcess();
  • citiți conținutul fișierului dat;
  • scrieți date în fișierul specificat;
  • ștergeți fișierul dat.

Conductele numite ar putea fi utilizate în cadrul rețelei locale pentru a distribui module actualizate și date de configurare între computerele infectate cu Duqu. În plus, Duqu ar putea acționa ca un server proxy pentru alte computere infectate (care nu aveau acces la Internet din cauza setărilor firewall-ului de pe gateway). Unele versiuni de Duqu nu aveau funcționalitatea RPC.

„sarcini utile” cunoscute

Symantec a identificat cel puțin patru „încărcări utile” încărcate la comandă de la centrul de control Duqu.
Cu toate acestea, doar unul dintre ele era rezident și compilat ca fișier executabil (exe), care a fost salvat pe disc. Restul de trei au fost implementate ca biblioteci dll. Au fost încărcate dinamic și executate în memorie fără a fi salvate pe disc.

„sarcina utilă” rezidentă era un modul de spionaj (furt de informații) cu funcții keylogger. Odată cu trimiterea lui la VirusTotal, a început munca la cercetarea Duqu. Principala funcționalitate de spionaj a fost în resursă, primii 8 kiloocteți conținând o parte din fotografia galaxiei NGC 6745 (pentru mascare). Trebuie amintit aici că în aprilie 2012, unele mass-media au publicat informații (http://www.mehrnews.com/en/newsdetail.aspx?NewsID=1297506) că Iranul a fost expus la un fel de malware Stars, în timp ce detaliile despre incidentul nu a fost dezvăluit. Este posibil ca tocmai o astfel de mostră din „sarcina utilă” Duqu să fi fost descoperită atunci în Iran, de unde și numele „Stele” (stele).
Modulul de spionaj a colectat următoarele informații:

  • lista proceselor care rulează, informații despre utilizatorul curent și domeniul;
  • lista de unități logice, inclusiv cele de rețea;
  • capturi de ecran;
  • adrese de interfețe de rețea, tabele de rutare;
  • fișier jurnal al tastelor de la tastatură;
  • numele ferestrelor deschise ale aplicațiilor;
  • lista resurselor de rețea disponibile (resurse de partajare);
  • o listă completă de fișiere de pe toate unitățile, inclusiv cele amovibile;
  • lista de calculatoare din „mediul de rețea”.

Un alt modul de spionaj (furt de informații) a fost o variantă a celei deja descrise, dar compilată ca bibliotecă dll, funcțiile keylogger-ului, compilarea unei liste de fișiere și enumerarea computerelor incluse în domeniu au fost eliminate din ea.
Următorul modul (recunoaștere) informații de sistem colectate:

  • dacă computerul face parte dintr-un domeniu;
  • căi către directoarele de sistem Windows;
  • versiunea sistemului de operare;
  • numele utilizatorului curent;
  • lista de adaptoare de rețea;
  • sistem și ora locală, precum și fusul orar.

Ultimul modul (prelungitor al duratei de viata) a implementat o funcție de creștere a valorii (stocat în fișierul de date de configurare al modulului principal) a numărului de zile rămase până la finalul lucrării. În mod implicit, această valoare a fost setată la 30 sau 36 de zile, în funcție de modificarea lui Duqu, și a scăzut cu una în fiecare zi.

centre de comandă

La 20 octombrie 2011 (la trei zile după ce descoperirea a fost făcută publică), operatorii Duqu au efectuat o procedură de distrugere a urmelor de funcționare a centrelor de comandă. Centrele de comandă au fost găzduite pe servere piratate din întreaga lume - în Vietnam, India, Germania, Singapore, Elveția, Marea Britanie, Olanda, Coreea de Sud. Interesant este că toate serverele identificate rulau versiunile CentOS 5.2, 5.4 sau 5.5. Sistemele de operare erau atât pe 32 de biți, cât și pe 64 de biți. În ciuda faptului că toate fișierele legate de funcționarea centrelor de comandă au fost șterse, specialiștii Kaspersky Lab au reușit să recupereze o parte din informațiile din fișierele LOG din spațiu liber. Cel mai interesant fapt este că atacatorii de pe servere au înlocuit întotdeauna pachetul implicit OpenSSH 4.3 cu versiunea 5.8. Acest lucru poate indica faptul că o vulnerabilitate necunoscută în OpenSSH 4.3 a fost folosită pentru a pirata serverele. Nu toate sistemele au fost folosite ca centre de comandă. Unele, judecând după erorile din jurnalele sshd când încercau să redirecționeze traficul pentru porturile 80 și 443, au fost folosite ca server proxy pentru a se conecta la centrele de comandă finale.

Date și module

Un document Word distribuit în aprilie 2011, care a fost examinat de Kaspersky Lab, conținea un driver de descărcare a programului de instalare cu data de compilare 31 august 2007. Un driver similar (dimensiune - 20608 octeți, MD5 - EEDCA45BD613E0D9A9E5C69122007F17) în documentul care a intrat în laboratorul CrySys avea data de compilare 21 februarie 2008. În plus, experții Kaspersky Lab au găsit driverul de rulare automată rndismpc.sys (dimensiune - 19968 de octeți, MD5 - 9AEC6E10C5EE9C05BED93221544C783E) din 20 ianuarie 2008. Nu au fost găsite componente marcate 2009. Pe baza marcajelor temporale de compilare ale părților individuale ale Duqu, dezvoltarea sa ar putea data de la începutul anului 2007. Cea mai timpurie manifestare a acesteia este asociată cu detectarea fișierelor temporare de forma ~DO (create probabil de unul dintre programele spion), a căror dată de creare este 28 noiembrie 2008 (articol „Duqu & Stuxnet: O cronologie a evenimentelor interesante”). Cea mai recentă dată legată de Duqu este 23 februarie 2012, conținută într-un driver de descărcare de instalare descoperit de Symantec în martie 2012.

Surse de informare utilizate:

serie de articole despre Duqu de la Kaspersky Lab;
Raport Symantec Analyst „W32.Duqu Precursorul următorului Stuxnet”, versiunea 1.4, noiembrie 2011 (pdf).

Sursa: www.habr.com

Adauga un comentariu