Duqu është një matrioshka keqdashëse

Paraqitje

Më 1 shtator 2011, një skedar me emrin ~DN1.tmp u dërgua në faqen e internetit të VirusTotal nga Hungaria. Në atë kohë, skedari u zbulua si keqdashës nga vetëm dy motorë antivirus - BitDefender dhe AVIRA. Kështu filloi historia e Duqu-s. Duke parë përpara, duhet thënë se familja e malware Duqu u emërua sipas emrit të këtij skedari. Sidoqoftë, ky skedar është një modul plotësisht i pavarur spyware me funksione keylogger, i instaluar, me siguri, duke përdorur një shkarkues me qëllim të keq, dhe mund të konsiderohet vetëm si një "payload" i ngarkuar nga malware Duqu gjatë funksionimit të tij, dhe jo si një komponent ( moduli) i Duqu . Një nga komponentët Duqu u dërgua në shërbimin Virustotal vetëm më 9 shtator. Karakteristika e tij dalluese është një shofer i nënshkruar në mënyrë dixhitale nga C-Media. Disa ekspertë filluan menjëherë të tërheqin analogji me një shembull tjetër të famshëm të malware - Stuxnet, i cili përdorte gjithashtu drejtues të nënshkruar. Numri i përgjithshëm i kompjuterëve të infektuar me Duqu të zbuluar nga kompani të ndryshme antivirus në mbarë botën është në dhjetëra. Shumë kompani pretendojnë se Irani është sërish objektivi kryesor, por duke gjykuar nga shpërndarja gjeografike e infeksioneve, kjo nuk mund të thuhet me siguri.
Duqu është një matrioshka keqdashëse
Në këtë rast, duhet të flisni me besim vetëm për një kompani tjetër me një fjalë të re APT (kërcënim i përparuar i vazhdueshëm).

Procedura e zbatimit të sistemit

Një hetim i kryer nga specialistë të organizatës hungareze CrySyS (Laboratori Hungarez i Kriptografisë dhe Sigurisë së Sistemit në Universitetin e Teknologjisë dhe Ekonomisë në Budapest) çoi në zbulimin e instaluesit (pikatorit) përmes të cilit sistemi u infektua. Ishte një skedar Microsoft Word me një shfrytëzim për dobësinë e shoferit win32k.sys (MS11-087, i përshkruar nga Microsoft më 13 nëntor 2011), i cili është përgjegjës për mekanizmin e paraqitjes së shkronjave TTF. Shellkodi i shfrytëzimit përdor një font të quajtur 'Dexter Regular' të ngulitur në dokument, me Showtime Inc. të listuar si krijuesi i fontit. Siç mund ta shihni, krijuesit e Duqu nuk janë të huaj për sensin e humorit: Dexter është një vrasës serial, heroi i serialit televiziv me të njëjtin emër, prodhuar nga Showtime. Dexter vret vetëm (nëse është e mundur) kriminelët, d.m.th., ai shkel ligjin në emër të ligjshmërisë. Ndoshta, në këtë mënyrë, zhvilluesit e Duqu janë ironikë që janë të përfshirë në aktivitete të paligjshme për qëllime të mira. Dërgimi i emaileve është bërë me qëllim. Dërgesa ka shumë të ngjarë të përdorte kompjuterë të kompromentuar (të hakuar) si një ndërmjetës për të vështirësuar gjurmimin.
Kështu, dokumenti Word përmbante përbërësit e mëposhtëm:

  • përmbajtja e tekstit;
  • font i integruar;
  • shfrytëzuar shellcode;
  • shofer;
  • instaluesi (biblioteka DLL).

Nëse ishte i suksesshëm, shellcode shfrytëzuar kryente operacionet e mëposhtme (në modalitetin e kernelit):

  • u bë një kontroll për ri-infektim; për këtë, prania e çelësit 'CF4D' u kontrollua në regjistër në adresën 'HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInternet SettingsZones1'; nëse kjo ishte e saktë, kodi i shell-it përfundoi ekzekutimin e tij;
  • u deshifruan dy skedarë - drejtuesi (sys) dhe instaluesi (dll);
  • shoferi u injektua në procesin services.exe dhe nisi instaluesin;
  • Më në fund, shellcode u fshi me zero në kujtesë.

Për shkak të faktit se win32k.sys ekzekutohet nën përdoruesin e privilegjuar 'System', zhvilluesit e Duqu kanë zgjidhur në mënyrë elegante problemin e lëshimit të paautorizuar dhe të përshkallëzimit të të drejtave (që funksionon nën një llogari përdoruesi me të drejta të kufizuara).
Pas marrjes së kontrollit, instaluesi deshifroi tre blloqe të dhënash të përfshira në të në memorie, që përmbanin:

  • shofer i nënshkruar (sys);
  • moduli kryesor (dll);
  • të dhënat e konfigurimit të instaluesit (pnf).

Një interval datash u specifikua në të dhënat e konfigurimit të instaluesit (në formën e dy vulave kohore - fillimi dhe mbarimi). Instaluesi kontrolloi nëse data aktuale ishte përfshirë në të, dhe nëse jo, ai përfundoi ekzekutimin e tij. Gjithashtu në të dhënat e konfigurimit të instaluesit ishin emrat nën të cilët u ruajtën drejtuesi dhe moduli kryesor. Në këtë rast, moduli kryesor u ruajt në disk në formë të koduar.

Duqu është një matrioshka keqdashëse

Për të nisur automatikisht Duqu-në, u krijua një shërbim duke përdorur një skedar drejtuesi që deshifronte modulin kryesor në fluturim duke përdorur çelësat e ruajtur në regjistër. Moduli kryesor përmban bllokun e tij të të dhënave të konfigurimit. Kur u nis për herë të parë, ajo u deshifrua, data e instalimit u fut në të, pas së cilës u kodua përsëri dhe u ruajt nga moduli kryesor. Kështu, në sistemin e prekur, pas instalimit të suksesshëm, u ruajtën tre skedarë - drejtuesi, moduli kryesor dhe skedari i të dhënave të tij të konfigurimit, me dy skedarët e fundit të ruajtur në disk në formë të koduar. Të gjitha procedurat e dekodimit kryheshin vetëm në memorie. Kjo procedurë komplekse instalimi u përdor për të minimizuar mundësinë e zbulimit nga programi antivirus.

Moduli kryesor

Moduli kryesor (burimi 302), sipas informacion Kompania Kaspersky Lab, e shkruar duke përdorur MSVC 2008 në C të pastër, por duke përdorur një qasje të orientuar nga objekti. Kjo qasje nuk është karakteristike kur zhvillohet kodi me qëllim të keq. Si rregull, një kod i tillë shkruhet në C për të zvogëluar madhësinë dhe për të hequr qafe thirrjet e nënkuptuara të qenësishme në C++. Këtu ka një simbiozë të caktuar. Plus, u përdor një arkitekturë e drejtuar nga ngjarjet. Punonjësit e Kaspersky Lab janë të prirur ndaj teorisë se moduli kryesor është shkruar duke përdorur një shtesë para-procesori që ju lejon të shkruani kodin C në një stil objekti.
Moduli kryesor është përgjegjës për procedurën për marrjen e komandave nga operatorët. Duqu ofron disa metoda ndërveprimi: duke përdorur protokollet HTTP dhe HTTPS, si dhe përdorimin e tubave me emër. Për HTTP(S), u specifikuan emrat e domeneve të qendrave të komandës dhe u sigurua aftësia për të punuar përmes një serveri proxy - u specifikuan një emër përdoruesi dhe fjalëkalim për to. Adresa IP dhe emri i saj janë të specifikuara për kanalin. Të dhënat e specifikuara ruhen në bllokun e të dhënave të konfigurimit të modulit kryesor (në formë të koduar).
Për të përdorur tubacione me emër, ne lançuam implementimin tonë të serverit RPC. Ai mbështeti shtatë funksionet e mëposhtme:

  • ktheni versionin e instaluar;
  • injektoni një dll në procesin e specifikuar dhe thirrni funksionin e specifikuar;
  • ngarkoni dll;
  • filloni një proces duke thirrur CreateProcess();
  • lexoni përmbajtjen e një skedari të caktuar;
  • shkruani të dhënat në skedarin e specifikuar;
  • fshini skedarin e specifikuar.

Tuba me emër mund të përdoren brenda një rrjeti lokal për të shpërndarë module të përditësuara dhe të dhëna konfigurimi midis kompjuterëve të infektuar me Duqu. Përveç kësaj, Duqu mund të veprojë si një server proxy për kompjuterë të tjerë të infektuar (të cilët nuk kishin akses në internet për shkak të cilësimeve të murit të zjarrit në portë). Disa versione të Duqu nuk kishin funksionalitet RPC.

"ngarkesat" e njohura

Symantec zbuloi të paktën katër lloje ngarkesash të shkarkuara nën komandë nga qendra e kontrollit Duqu.
Për më tepër, vetëm njëri prej tyre ishte rezident dhe i përpiluar si skedar i ekzekutueshëm (exe), i cili u ruajt në disk. Tre të tjerat u implementuan si biblioteka dll. Ata u ngarkuan në mënyrë dinamike dhe u ekzekutuan në memorie pa u ruajtur në disk.

"Ngarkesa" e banorit ishte një modul spiun (info vjedhës) me funksione keylogger. Ishte duke e dërguar atë në VirusTotal që filloi puna për kërkimin e Duqu. Funksionaliteti kryesor i spiunazhit ishte në burim, 8 kilobajt e parë të të cilit përmbanin një pjesë të një fotografie të galaktikës NGC 6745 (për kamuflim). Kujtojmë këtu se në prill të vitit 2012, disa media publikuan informacione (http://www.mehrnews.com/en/newsdetail.aspx?NewsID=1297506) se Irani ishte ekspozuar ndaj disa softuerëve keqdashës “Stars”, ndërsa detajet e ngjarja nuk u bë e ditur. Ndoshta ishte vetëm një mostër e tillë e "ngarkesës" Duqu që u zbulua atëherë në Iran, prandaj emri "Yjet".
Moduli i spiunazhit mblodhi informacionin e mëposhtëm:

  • lista e proceseve të ekzekutuara, informacioni për përdoruesin dhe domenin aktual;
  • lista e disqeve logjike, duke përfshirë disqet e rrjetit;
  • pamjet e ekranit;
  • adresat e ndërfaqes së rrjetit, tabelat e rrugëzimit;
  • skedari i regjistrit të goditjeve të tastierës;
  • emrat e dritareve të hapura të aplikacioneve;
  • lista e burimeve të disponueshme të rrjetit (burimet e përbashkëta);
  • një listë e plotë e skedarëve në të gjithë disqet, duke përfshirë ato të lëvizshme;
  • një listë e kompjuterëve në "mjedisin e rrjetit".

Një tjetër modul spiun (info vjedhës) ishte një variant i asaj që ishte përshkruar tashmë, por i përpiluar si një bibliotekë dll; funksionet e një keylogger, përpilimi i një liste skedarësh dhe renditja e kompjuterëve të përfshirë në domen u hoqën prej tij.
Moduli tjetër (zbulues) informacioni i mbledhur i sistemit:

  • nëse kompjuteri është pjesë e një domeni;
  • shtigjet drejt drejtorive të sistemit Windows;
  • versioni i sistemit operativ;
  • emri aktual i përdoruesit;
  • lista e përshtatësve të rrjetit;
  • sistemi dhe koha lokale, si dhe zona kohore.

Moduli i fundit (zgjatës i jetëgjatësisë) zbatoi një funksion për të rritur vlerën (të ruajtur në skedarin e të dhënave të konfigurimit të modulit kryesor) të numrit të ditëve të mbetura deri në përfundimin e punës. Si parazgjedhje, kjo vlerë u caktua në 30 ose 36 ditë në varësi të modifikimit Duqu dhe u ul me një çdo ditë.

Qendrat e komandës

Më 20 tetor 2011 (tre ditë pasi u shpërnda informacioni për zbulimin), operatorët e Duqu-së kryen një procedurë për asgjësimin e gjurmëve të funksionimit të qendrave komanduese. Qendrat e komandës ishin të vendosura në serverë të hakuar në të gjithë botën - në Vietnam, Indi, Gjermani, Singapor, Zvicër, Britani të Madhe, Holandë dhe Korenë e Jugut. Interesante, të gjithë serverët e identifikuar po ekzekutonin versionet CentOS 5.2, 5.4 ose 5.5. OS-të ishin 32-bit dhe 64-bit. Përkundër faktit se të gjithë skedarët që lidhen me funksionimin e qendrave të komandës u fshinë, specialistët e Kaspersky Lab ishin në gjendje të rikuperonin disa nga informacionet nga skedarët LOG nga hapësira e lirë. Fakti më interesant është se sulmuesit në serverë gjithmonë zëvendësuan paketën e paracaktuar OpenSSH 4.3 me versionin 5.8. Kjo mund të tregojë se një dobësi e panjohur në OpenSSH 4.3 është përdorur për të hakuar serverët. Jo të gjitha sistemet u përdorën si qendra komanduese. Disa, duke gjykuar nga gabimet në regjistrat sshd kur përpiqeshin të ridrejtonin trafikun për portet 80 dhe 443, u përdorën si një server proxy për t'u lidhur me qendrat e komandës fundore.

Datat dhe modulet

Një dokument Word i shpërndarë në prill 2011, i cili u ekzaminua nga Kaspersky Lab, përmbante një drejtues shkarkimi të instaluesit me datë përpilimi 31 gusht 2007. Një drejtues i ngjashëm (madhësia - 20608 bajt, MD5 - EEDCA45BD613E0D9A9E5C69122007F17) në një dokument të gjetur në laboratorët CrySys kishte një datë përpilimi 21 shkurt 2008. Për më tepër, ekspertët e Kaspersky Lab gjetën drejtuesin autorun rndismpc.sys (madhësia - 19968 bajt, MD5 - 9AEC6E10C5EE9C05BED93221544C783E) me datën 20 janar 2008. Asnjë komponent i shënuar 2009 nuk u gjet. Bazuar në vulat kohore të përpilimit të pjesëve individuale të Duqu, zhvillimi i tij mund të datojë në fillim të vitit 2007. Manifestimi i tij më i hershëm lidhet me zbulimin e skedarëve të përkohshëm të llojit ~DO (ndoshta i krijuar nga një prej moduleve spyware), data e krijimit të të cilit është 28 nëntor 2008 (artikull "Duqu & Stuxnet: Një afat kohor i ngjarjeve interesante"). Data më e fundit e lidhur me Duqu ishte 23 shkurt 2012, e përfshirë në një drejtues shkarkimi të instaluesit të zbuluar nga Symantec në mars 2012.

Burimet e informacionit të përdorur:

seri artikujsh rreth Duqu nga Kaspersky Lab;
Raporti analitik i Symantec "W32.Duqu Pararendësi i Stuxnet-it të ardhshëm", versioni 1.4, Nëntor 2011 (pdf).

Burimi: www.habr.com

Shto një koment