Duqu - rosszindulatú fészkelő baba

Bevezetés

1. szeptember 2011-jén Magyarországról egy ~DN1.tmp nevű fájl került a VirusTotal weboldalára. Akkoriban a fájlt csak két víruskereső - BitDefender és AVIRA - észlelte rosszindulatúként. Így kezdődött Duqu története. A jövőre nézve el kell mondanunk, hogy a Duqu malware család e fájl nevéről kapta a nevét. Ez a fájl azonban egy teljesen független, keylogger funkciókkal rendelkező spyware modul, amelyet valószínűleg rosszindulatú letöltő-dropper segítségével telepítettek, és csak a Duqu malware által a működése során betöltött „rakománynak” tekinthető, és nem komponensnek ( modul) a Duqu . Az egyik Duqu komponens csak szeptember 9-én került a Virustotal szolgáltatásba. Különlegessége a C-Media által digitálisan aláírt illesztőprogram. Egyes szakértők azonnal analógiákat kezdtek levonni a rosszindulatú programok másik híres példájával - a Stuxnet-tel, amely szintén aláírt illesztőprogramokat használt. A különböző vírusirtó cégek által észlelt Duqu-fertőzött számítógépek száma világszerte több tucatnyi. Sok cég állítja, hogy ismét Irán a fő célpont, de a fertőzések földrajzi eloszlásából ítélve ez nem mondható biztosan.
Duqu - rosszindulatú fészkelő baba
Ebben az esetben magabiztosan csak egy másik cégről beszéljen újszerű szóval APT (fejlett, tartós fenyegetés).

A rendszer bevezetési eljárása

A magyar CrySyS (BME Magyar Kriptográfiai és Rendszerbiztonsági Laboratórium) szakemberei által végzett vizsgálat vezetett a telepítő (cseppentő) felfedezéséhez, amelyen keresztül a rendszer megfertőződött. Ez egy Microsoft Word-fájl volt, amely a win32k.sys illesztőprogram-sebezhetőségét (MS11-087, a Microsoft 13. november 2011-án írta le) kihasználva, amely a TTF betűkészlet-megjelenítési mechanizmusért felelős. Az exploit shellkódja a dokumentumba ágyazott „Dexter Regular” nevű betűtípust használja, és a Showtime Inc. szerepel a betűtípus létrehozójaként. Mint látható, a Duqu alkotóitól nem idegen a humorérzék: Dexter egy sorozatgyilkos, a Showtime által készített, azonos című televíziós sorozat hőse. Dexter csak (ha lehet) bűnözőket öl meg, vagyis törvényt sért a legalitás jegyében. Valószínűleg így a Duqu fejlesztői ironizálják, hogy jó céllal folytatnak illegális tevékenységeket. Az e-mailek küldése céltudatosan történt. A szállítmány nagy valószínűséggel kompromittált (feltört) számítógépeket használt közvetítőként, hogy megnehezítse a nyomon követést.
A Word dokumentum tehát a következő összetevőket tartalmazta:

  • szöveges tartalom;
  • beépített betűtípus;
  • shellcode kihasználása;
  • sofőr;
  • telepítő (DLL könyvtár).

Ha sikeres volt, az exploit shellcode a következő műveleteket hajtotta végre (kernel módban):

  • újrafertőződés ellenőrzése megtörtént, ehhez ellenőrizték a 'CF4D' kulcs meglétét a rendszerleíró adatbázisban a 'HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInternet SettingsZones1' címen; ha ez helyes, a shellkód befejezte a végrehajtást;
  • két fájl visszafejtése megtörtént - az illesztőprogram (sys) és a telepítő (dll);
  • az illesztőprogramot befecskendezték a services.exe folyamatba, és elindították a telepítőt;
  • Végül a shellkód nullákkal törölte magát a memóriából.

Tekintettel arra, hogy a win32k.sys privilegizált „Rendszer” alatt fut, a Duqu fejlesztői elegánsan megoldották mind a jogosulatlan indítás, mind a jogok eszkalációjának problémáját (korlátozott jogokkal rendelkező felhasználói fiók alatt fut).
Az irányítás átvétele után a telepítő visszafejtette a memóriában lévő három adatblokkot, amelyek tartalmazzák:

  • aláírt illesztőprogram (sys);
  • fő modul (dll);
  • telepítő konfigurációs adatai (pnf).

A telepítő konfigurációs adataiban megadtak egy dátumtartományt (két időbélyeg formájában - kezdet és vége). A telepítő ellenőrizte, hogy benne van-e az aktuális dátum, és ha nem, akkor befejezte a végrehajtást. A telepítő konfigurációs adataiban is szerepeltek azok a nevek, amelyeken az illesztőprogram és a fő modul el lett mentve. Ebben az esetben a fő modul titkosított formában került lemezre.

Duqu - rosszindulatú fészkelő baba

A Duqu automatikus indításához egy szolgáltatást hoztak létre egy illesztőprogram-fájl segítségével, amely a rendszerleíró adatbázisban tárolt kulcsok segítségével menet közben visszafejtette a fő modult. A fő modul saját konfigurációs adatblokkot tartalmaz. Első indításkor dekódolták, beírták bele a telepítés dátumát, majd újra titkosította és elmentette a fő modul. Így az érintett rendszerben a sikeres telepítés után három fájl - a meghajtó, a fő modul és annak konfigurációs adatállománya -, az utolsó két fájl pedig titkosított formában került lemezre. Minden dekódolási eljárást csak a memóriában hajtottak végre. Ezzel az összetett telepítési eljárással minimalizálták a víruskereső szoftver általi észlelés lehetőségét.

A fő modul

Fő modul (302. forrás), szerint információ cég Kaspersky Lab, amely az MSVC 2008 használatával íródott tiszta C-ben, de objektum-orientált megközelítéssel. Ez a megközelítés nem jellemző rosszindulatú kódok fejlesztésére. Általában az ilyen kódot C-ben írják, hogy csökkentsék a méretét és megszabaduljanak a C++-ban rejlő implicit hívásoktól. Itt van egy bizonyos szimbiózis. Ezenkívül eseményvezérelt architektúrát használtak. A Kaspersky Lab alkalmazottai hajlanak arra az elméletre, hogy a fő modult egy előfeldolgozó-kiegészítővel írták, amely lehetővé teszi a C kód objektumstílusban történő írását.
A fő modul felelős az operátoroktól érkező parancsok fogadásának folyamatáért. A Duqu számos interakciós módszert kínál: a HTTP és HTTPS protokollok, valamint az elnevezett csövek használatával. A HTTP(S) esetén a parancsközpontok tartományneveit adták meg, és biztosították a proxyszerveren keresztüli munkavégzés lehetőségét – felhasználói név és jelszó lett megadva hozzájuk. A csatorna IP-címe és neve meg van adva. A megadott adatokat a fő modul konfigurációs adatblokkja tárolja (titkosított formában).
A nevesített csövek használatához elindítottuk saját RPC szerver implementációnkat. A következő hét funkciót támogatta:

  • visszaküldi a telepített verziót;
  • szúrjon be egy dll-t a megadott folyamatba, és hívja meg a megadott függvényt;
  • töltse be a dll-t;
  • folyamat elindítása a CreateProcess();
  • olvassa el egy adott fájl tartalmát;
  • írjon adatokat a megadott fájlba;
  • törölje a megadott fájlt.

Az elnevezett csövek használhatók a helyi hálózaton belül a frissített modulok és konfigurációs adatok elosztására a Duqu-fertőzött számítógépek között. Ezenkívül a Duqu proxyszerverként működhetett más fertőzött számítógépek számára (amelyek nem fértek hozzá az internethez az átjáró tűzfalbeállításai miatt). A Duqu egyes verziói nem rendelkeztek RPC funkcióval.

Ismert "hasznos teher"

A Symantec legalább négyféle hasznos terhet fedezett fel, amelyeket a Duqu vezérlőközpont parancsnoksága alatt töltöttek le.
Sőt, közülük csak az egyik volt rezidens, és futtatható fájlként (exe) lett lefordítva, amelyet lemezre mentettek. A maradék három dll-könyvtárként valósult meg. Dinamikusan betöltötték és a memóriában hajtották végre anélkül, hogy lemezre mentették volna őket.

A rezidens "payload" egy kémmodul volt (infolopó) keylogger funkciókkal. A VirusTotalnak való elküldésével kezdődött meg a Duqu-kutatással kapcsolatos munka. A fő kémfunkció az erőforrásban volt, amelynek első 8 kilobájtja az NGC 6745 galaxis fényképének egy részét tartalmazta (álcázás céljából). Emlékeztetni kell arra, hogy 2012 áprilisában egyes médiában olyan információk jelentek meg (http://www.mehrnews.com/en/newsdetail.aspx?NewsID=1297506), hogy Irán ki volt téve néhány „Stars” rosszindulatú szoftvernek. az esetet nem hozták nyilvánosságra. Talán a Duqu „hasznos teher” egy ilyen mintáját fedezték fel akkor Iránban, innen ered a „Stars” elnevezés.
A kémmodul a következő információkat gyűjtötte össze:

  • futó folyamatok listája, információk az aktuális felhasználóról és a tartományról;
  • logikai meghajtók listája, beleértve a hálózati meghajtókat is;
  • képernyőképek;
  • hálózati interfész címek, útválasztási táblák;
  • billentyűleütések naplófájlja;
  • a megnyitott alkalmazásablakok nevei;
  • az elérhető hálózati erőforrások listája (erőforrások megosztása);
  • az összes lemezen lévő fájlok teljes listája, beleértve a cserélhetőeket is;
  • a „hálózati környezetben” lévő számítógépek listája.

Egy másik kémmodul (infolopó) a már leírtak változata volt, de dll-könyvtárként fordították le, a keylogger funkciói, a fájllista összeállítása és a tartományba tartozó számítógépek listázása kikerült belőle.
Következő modul (felderítés) összegyűjtött rendszerinformációkat:

  • hogy a számítógép egy tartomány része-e;
  • elérési útvonalak a Windows rendszerkönyvtáraihoz;
  • operációs rendszer verziója;
  • jelenlegi felhasználói név;
  • hálózati adapterek listája;
  • rendszer és helyi idő, valamint időzóna.

Utolsó modul (élettartam meghosszabbító) olyan funkciót implementált, amely növeli a feladat befejezéséig hátralévő napok (a fő modul konfigurációs adatfájljában tárolt) értékét. Alapértelmezés szerint ez az érték 30 vagy 36 napra volt beállítva a Duqu módosítástól függően, és minden nap eggyel csökkent.

Irányítási központok

20. október 2011-án (három nappal a felfedezéssel kapcsolatos információk közzététele után) a Duqu operátorai eljárást hajtottak végre a parancsnoki központok működésének nyomainak megsemmisítésére. A parancsnoki központok feltört szervereken helyezkedtek el szerte a világon – Vietnamban, Indiában, Németországban, Szingapúrban, Svájcban, Nagy-Britanniában, Hollandiában és Dél-Koreában. Érdekes módon az összes azonosított szerveren a CentOS 5.2, 5.4 vagy 5.5 verziója futott. Az operációs rendszerek 32 és 64 bitesek voltak. Annak ellenére, hogy a parancsnoki központok működésével kapcsolatos összes fájlt törölték, a Kaspersky Lab szakemberei a LOG-fájlok információinak egy részét vissza tudták állítani a szabad helyről. A legérdekesebb tény az, hogy a szervereken a támadók az alapértelmezett OpenSSH 4.3-as csomagot mindig az 5.8-as verzióra cserélték. Ez arra utalhat, hogy az OpenSSH 4.3 ismeretlen biztonsági rését használták fel a szerverek feltörésére. Nem minden rendszert használtak parancsnoki központként. Az sshd naplók hibáiból ítélve, amikor megpróbálták átirányítani a forgalmat a 80-as és a 443-as portokra, egyeseket proxyszerverként használtak a vég parancsközpontokhoz való csatlakozáshoz.

Dátumok és modulok

Egy 2011 áprilisában kiosztott Word dokumentum, amelyet a Kaspersky Lab megvizsgált, egy telepítő letöltő illesztőprogramot tartalmazott, amelynek összeállítási dátuma 31. augusztus 2007. Egy hasonló illesztőprogram (méret - 20608 bájt, MD5 - EEDCA45BD613E0D9A9E5C69122007F17) a CrySys laboratóriumokban talált dokumentumban 21. február 2008-i dátummal rendelkezik. Ezenkívül a Kaspersky Lab szakértői megtalálták az rndismpc.sys automatikus futtató illesztőprogramot (méret - 19968 bájt, MD5 - 9AEC6E10C5EE9C05BED93221544C783E) 20. január 2008-i dátummal. Nem található 2009-es jelzésű alkatrész. A Duqu egyes részeinek összeállításának időbélyegei alapján fejlesztése 2007 elejére nyúlhat vissza. Legkorábbi megnyilvánulása a ~DO típusú (valószínűleg valamelyik spyware modul által létrehozott) ideiglenes fájlok észleléséhez kapcsolódik, amelyek létrehozásának dátuma 28. november 2008.cikk "Duqu & Stuxnet: Érdekes események idővonala"). A Duquhoz kapcsolódó legutóbbi dátum 23. február 2012. volt, amely a Symantec által 2012 márciusában felfedezett telepítő-letöltő illesztőprogramban található.

Felhasznált információforrások:

cikksorozat Duqu-ról a Kaspersky Lab-tól;
Symantec analitikai jelentés "W32.Duqu A következő Stuxnet előfutára", 1.4-es verzió, 2011. november (pdf).

Forrás: will.com

Hozzászólás