Duqu estas malica matrioŝko

Enkonduko

La 1-an de septembro 2011, dosiero nomita ~DN1.tmp estis sendita al la retejo VirusTotal de Hungario. Tiutempe, la dosiero estis detektita kiel malica de nur du antivirusaj motoroj - BitDefender kaj AVIRA. Tiel komenciĝis la rakonto de Duqu. Rigardante antaŭen, oni devas diri, ke la familio de malware Duqu estis nomita laŭ la nomo de ĉi tiu dosiero. Tamen, ĉi tiu dosiero estas tute sendependa spionprogramo kun klavregistraj funkcioj, instalita, verŝajne, uzante malican elŝutilon, kaj povas esti konsiderata nur kiel "utila ŝarĝo" ŝarĝita de la malware Duqu dum ĝia funkciado, kaj ne kiel komponanto ( modulo) de Duqu . Unu el la Duqu-komponentoj estis sendita al la Virustotal-servo nur la 9-an de septembro. Ĝia karakterizaĵo estas ŝoforo ciferece subskribita de C-Media. Iuj spertuloj tuj komencis desegni analogiojn kun alia fama ekzemplo de malware - Stuxnet, kiu ankaŭ uzis subskribitajn ŝoforojn. La totala nombro de Duqu-infektitaj komputiloj detektitaj de diversaj kontraŭvirusaj kompanioj tra la mondo estas en dekoj. Multaj kompanioj asertas, ke Irano denove estas la ĉefa celo, sed juĝante laŭ la geografia distribuado de infektoj, tio ne povas esti certa.
Duqu estas malica matrioŝko
En ĉi tiu kazo, vi devus memfide paroli nur pri alia kompanio kun nova vorto APT (progresinta persista minaco).

Proceduro de efektivigo de sistemo

Enketo farita de specialistoj de la hungara organizo CrySyS (Hungara Laboratorio de Kriptografio kaj Sistemo-Sekureco ĉe la Budapeŝta Universitato de Teknologio kaj Ekonomio) kondukis al eltrovo de la instalilo (gutigilo) per kiu la sistemo estis infektita. Ĝi estis Microsoft Word-dosiero kun ekspluatado por la win32k.sys ŝoforo vundebleco (MS11-087, priskribita fare de Mikrosofto la 13-an de novembro 2011), kiu respondecas pri la TTF-tipara bildiga mekanismo. La ŝelkodo de la ekspluataĵo uzas tiparon nomitan "Dexter Regular" enigita en la dokumento, kun Showtime Inc. listigita kiel la kreinto de la tiparo. Kiel vi povas vidi, la kreintoj de Duqu ne estas fremdaj al sento de humuro: Dexter estas seria murdisto, la heroo de la samnoma televida serio, produktita de Showtime. Dexter mortigas nur (se eble) krimulojn, tio estas, li malobeas la leĝon en la nomo de leĝeco. Probable, tiamaniere, la programistoj de Duqu ironias, ke ili okupiĝas pri kontraŭleĝaj agadoj por bonaj celoj. Sendi retpoŝtojn estis farita celkonscie. La sendaĵo plej verŝajne uzis kompromititajn (piratajn) komputilojn kiel peranto por malfaciligi spuradon.
La Word-dokumento tiel enhavis la sekvajn komponentojn:

  • teksta enhavo;
  • enkonstruita tiparo;
  • ekspluati ŝelkodon;
  • ŝoforo;
  • instalilo (DLL-biblioteko).

Se sukcese, la ekspluata ŝelkodo faris la sekvajn operaciojn (en kerna reĝimo):

  • kontrolo estis farita por reinfekto;por tio, la ĉeesto de la ŝlosilo 'CF4D' estis kontrolita en la registro ĉe la adreso 'HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInternet SettingsZones1';se tio estis ĝusta, la ŝelkodo kompletigis sian ekzekuton;
  • du dosieroj estis deĉifritaj - la pelilo (sys) kaj la instalilo (dll);
  • la ŝoforo estis injektita en la procezon services.exe kaj lanĉis la instalilon;
  • Fine, la ŝelkodo viŝis sin per nuloj en memoro.

Pro la fakto, ke win32k.sys estas ekzekutita sub la privilegiita uzanto 'Sistemo', la programistoj de Duqu elegante solvis la problemon de kaj neaŭtorizita lanĉo kaj eskalado de rajtoj (funkciantaj sub uzantkonto kun limigitaj rajtoj).
Post ricevado de kontrolo, la instalilo malĉifris tri blokojn de datumoj enhavitaj en ĝi en memoro, enhavantaj:

  • subskribita ŝoforo (sys);
  • ĉefa modulo (dll);
  • instalilo agorda datumoj (pnf).

Datintervalo estis specifita en la instalilaj agordaj datumoj (en la formo de du tempomarkoj - komenco kaj fino). La instalilo kontrolis ĉu la nuna dato estis inkluzivita en ĝi, kaj se ne, ĝi kompletigis sian ekzekuton. Ankaŭ en la instalilo-agordaj datumoj estis la nomoj, sub kiuj la ŝoforo kaj ĉefa modulo estis konservitaj. En ĉi tiu kazo, la ĉefa modulo estis konservita sur disko en ĉifrita formo.

Duqu estas malica matrioŝko

Por aŭtomate ekfunkciigi Duqu, servo estis kreita uzante ŝofordosieron, kiu deĉifris la ĉefan modulon sur la flugo uzante ŝlosilojn stokitaj en la registro. La ĉefa modulo enhavas sian propran agordan datumblokon. Unue lanĉita, ĝi estis deĉifrita, la instaldato estis enigita en ĝi, post kio ĝi estis ĉifrita denove kaj konservita de la ĉefa modulo. Tiel, en la tuŝita sistemo, post sukcesa instalado, tri dosieroj estis konservitaj - la ŝoforo, la ĉefa modulo kaj ĝia agorda datuma dosiero, dum la lastaj du dosieroj estis konservitaj sur disko en ĉifrita formo. Ĉiuj malkodaj proceduroj estis faritaj nur en memoro. Ĉi tiu kompleksa instala proceduro estis uzata por minimumigi la eblecon de detekto per antivirusa programaro.

La ĉefa modulo

Ĉefa modulo (rimedo 302), laŭ informo firmao Kaspersky Lab, skribita uzante MSVC 2008 en pura C, sed uzante objekt-orientitan aliron. Ĉi tiu aliro estas nekarakteriza dum disvolvado de malica kodo. Kiel regulo, tia kodo estas skribita en C por redukti la grandecon kaj forigi la implicajn vokojn enecaj en C++. Estas certa simbiozo ĉi tie. Plie, okazaĵ-movita arkitekturo estis uzita. Kaspersky Lab-dungitoj emas al la teorio, ke la ĉefa modulo estis skribita per antaŭprocesora aldonaĵo, kiu ebligas al vi skribi C-kodon en objektostilo.
La ĉefa modulo respondecas pri la proceduro por ricevi komandojn de funkciigistoj. Duqu disponigas plurajn metodojn de interagado: uzante la HTTP kaj HTTPS-protokolojn, same kiel uzante nomitajn pipojn. Por HTTP(S), domajnaj nomoj de komandcentroj estis specifitaj, kaj la kapablo labori per prokura servilo estis disponigita - uzantnomo kaj pasvorto estis specifitaj por ili. La IP-adreso kaj ĝia nomo estas specifitaj por la kanalo. La specifitaj datumoj estas konservitaj en la ĉefa modula agorda datumbloko (en ĉifrita formo).
Por uzi nomitajn tubojn, ni lanĉis nian propran RPC-servilan efektivigon. Ĝi apogis la sekvajn sep funkciojn:

  • redonu la instalitan version;
  • injektu dll en la specifitan procezon kaj voku la specifitan funkcion;
  • ŝargi dll;
  • komenci procezon vokante CreateProcess();
  • legi la enhavon de donita dosiero;
  • skribi datumojn al la specifita dosiero;
  • forigu la specifitan dosieron.

Nomitaj pipoj povus esti uzitaj ene de loka reto por distribui ĝisdatigitajn modulojn kaj agordatumojn inter Duqu-infektitaj komputiloj. Krome, Duqu povus funkcii kiel prokura servilo por aliaj infektitaj komputiloj (kiuj ne havis aliron al la Interreto pro la fajroŝirmilo agordoj sur la enirejo). Kelkaj versioj de Duqu ne havis RPC-funkciecon.

Konataj "utilaj ŝarĝoj"

Symantec malkovris almenaŭ kvar specojn de utilaj ŝarĝoj elŝutitaj sub komando de la Duqu-kontrolcentro.
Krome, nur unu el ili estis loĝanta kaj kompilita kiel rulebla dosiero (exe), kiu estis konservita al disko. La ceteraj tri estis efektivigitaj kiel dll-bibliotekoj. Ili estis ŝarĝitaj dinamike kaj ekzekutitaj en memoro sen esti konservitaj al disko.

La loĝanta "utila ŝarĝo" estis spionmodulo (infoŝtelisto) kun keylogger funkcioj. Estis sendante ĝin al VirusTotal ke la laboro pri Duqu-esplorado komenciĝis. La ĉefa spionfunkcio estis en la rimedo, kies unuaj 8 kilobajtoj enhavis parton de foto de la galaksio NGC 6745 (por kamuflaĵo). Oni devas memori ĉi tie, ke en aprilo 2012, iuj amaskomunikiloj publikigis informojn (http://www.mehrnews.com/en/newsdetail.aspx?NewsID=1297506) ke Irano estis elmontrita al iu malica programaro "Steloj", dum detaloj pri la okazaĵo ne estis malkaŝitaj. Eble estis nur tia specimeno de la "utila ŝarĝo" Duqu, kiu estis malkovrita tiam en Irano, tial la nomo "Steloj".
La spionmodulo kolektis la sekvajn informojn:

  • listo de kurantaj procezoj, informoj pri la nuna uzanto kaj domajno;
  • listo de logikaj diskoj, inkluzive de retaj diskoj;
  • ekrankopioj;
  • reta interfaco-adresoj, enrutaj tabeloj;
  • protokoldosiero de klavaraj klavoj;
  • nomoj de malfermitaj aplikaj fenestroj;
  • listo de disponeblaj retaj rimedoj (kundividaj rimedoj);
  • kompleta listo de dosieroj sur ĉiuj diskoj, inkluzive de forpreneblaj;
  • listo de komputiloj en la "reta medio".

Alia spiona modulo (infoŝtelisto) estis vario de kio jam estis priskribita, sed kompilita kiel dll-biblioteko; la funkcioj de klavregistrilo, kompilante liston de dosieroj kaj listigante komputilojn inkluditajn en la domajno estis forigitaj de ĝi.
Sekva modulo (rekono) kolektis sistemajn informojn:

  • ĉu la komputilo estas parto de domajno;
  • vojoj al Vindozaj sistemdosierujoj;
  • versio de operaciumo;
  • nuna uzantnomo;
  • listo de retaj adaptiloj;
  • sistemo kaj loka horo, same kiel horzono.

Lasta modulo (vivdaŭro plilongigilo) efektivigis funkcion por pliigi la valoron (stokita en la ĉefa modula agorda datumdosiero) de la nombro da tagoj restantaj ĝis la laboro estas finita. Defaŭlte, ĉi tiu valoro estis agordita al 30 aŭ 36 tagoj depende de la Duqu-modifo, kaj malpliiĝis je unu ĉiutage.

Komandcentroj

La 20-an de oktobro 2011 (tri tagojn post kiam informoj pri la malkovro estis disvastigita), Duqu-funkciigistoj efektivigis proceduron por detrui spurojn de la funkciado de la komandcentroj. Komandcentroj troviĝis sur hakitaj serviloj tra la mondo - en Vjetnamio, Barato, Germanio, Singapuro, Svislando, Britio, Nederlando, Sud-Koreio. Kurioze, ĉiuj identigitaj serviloj funkciis kun CentOS-versioj 5.2, 5.4 aŭ 5.5. La OS-oj estis kaj 32-bit kaj 64-bit. Malgraŭ la fakto, ke ĉiuj dosieroj rilataj al la funkciado de komandcentroj estis forigitaj, Kaspersky Lab-specialistoj povis reakiri iujn informojn de LOG-dosieroj el malstreĉa spaco. La plej interesa fakto estas, ke atakantoj sur serviloj ĉiam anstataŭigis la defaŭltan OpenSSH 4.3-pakaĵon per versio 5.8. Ĉi tio povas indiki, ke nekonata vundebleco en OpenSSH 4.3 estis uzata por haki servilojn. Ne ĉiuj sistemoj estis utiligitaj kiel komandcentroj. Iuj, juĝante laŭ la eraroj en la sshd-protokoloj, kiam ili provis redirekti trafikon por havenoj 80 kaj 443, estis uzataj kiel prokura servilo por konekti al la finaj komandcentroj.

Datoj kaj moduloj

Word-dokumento distribuita en aprilo 2011, kiu estis ekzamenita fare de Kaspersky Lab, enhavis instalilon elŝutilon kun kompildato de aŭgusto 31, 2007. Simila ŝoforo (grandeco - 20608 bajtoj, MD5 - EEDCA45BD613E0D9A9E5C69122007F17) en dokumento trovita en CrySys-laboratorioj havis kompildaton de la 21-a de februaro 2008. Krome, spertuloj de Kaspersky Lab trovis la aŭtorundan pelilon rndismpc.sys (grandeco - 19968 bajtoj, MD5 - 9AEC6E10C5EE9C05BED93221544C783E) kun la dato la 20-an de januaro 2008. Neniuj komponentoj markitaj 2009 estis trovitaj. Surbaze de la tempomarkoj de la kompilo de individuaj partoj de Duqu, ĝia evoluo povis deveni de frua 2007. Ĝia plej frua manifestiĝo estas rilata al la detekto de provizoraj dosieroj de la tipo ~DO (verŝajne kreita de unu el la spionaj moduloj), kies kredato estas la 28-a de novembro 2008 (artikolo "Duqu & Stuxnet: Templinio de Interesaj Okazaĵoj"). La plej lastatempa dato asociita kun Duqu estis la 23-an de februaro 2012, enhavita en instalilo elŝuta pelilo malkovrita fare de Symantec en marto 2012.

Fontoj de informoj uzataj:

serio de artikoloj pri Duqu de Kaspersky Lab;
Symantec-analitika raporto "W32.Duqu La antaŭulo al la venonta Stuxnet", versio 1.4, novembro 2011 (pdf).

fonto: www.habr.com

Aldoni komenton