Duqu on ilkeä matryoshka

Esittely

1. syyskuuta 2011 Unkarista lähetettiin VirusTotal-verkkosivustolle tiedosto nimeltä ~DN1.tmp. Tuolloin vain kaksi virustentorjuntaohjelmaa - BitDefender ja AVIRA - havaitsivat tiedoston haitalliseksi. Näin Duquin tarina alkoi. Tulevaisuudessa on sanottava, että Duqu-haittaohjelmaperhe on nimetty tämän tiedoston nimen mukaan. Tämä tiedosto on kuitenkin täysin itsenäinen vakoiluohjelmamoduuli, jossa on keylogger-toiminnot ja joka on asennettu luultavasti haitallisen latausohjelman avulla, ja sitä voidaan pitää vain Duqu-haittaohjelman toiminnan aikana lataamana "hyötykuormana", ei komponenttina ( moduuli) Duqu . Yksi Duqu-komponenteista lähetettiin Virustotal-palveluun vasta 9. syyskuuta. Sen erottuva piirre on C-Median digitaalisesti allekirjoittama ajuri. Jotkut asiantuntijat alkoivat heti vetää analogioita toiseen kuuluisaan esimerkkiin haittaohjelmista - Stuxnetiin, joka käytti myös allekirjoitettuja ohjaimia. Eri virustorjuntayhtiöiden eri puolilla maailmaa havaitsemien Duqu-tartunnan saaneiden tietokoneiden kokonaismäärä on kymmeniä. Monet yritykset väittävät, että Iran on jälleen pääkohde, mutta tartuntojen maantieteellisen jakautumisen perusteella tätä ei voida sanoa varmasti.
Duqu on ilkeä matryoshka
Tässä tapauksessa sinun tulee puhua luottavaisesti vain toisesta yrityksestä uudella sanalla APT (edistynyt jatkuva uhka).

Järjestelmän käyttöönottomenettely

Unkarilaisen CrySyS-organisaation (Unkarilainen kryptografian ja järjestelmäturvallisuuden laboratorio Budapestin teknillisen ja taloustieteen yliopistossa) asiantuntijoiden suorittama tutkimus johti asentajan (tiputtajan) löytämiseen, jonka kautta järjestelmä sai tartunnan. Se oli Microsoft Word -tiedosto, jossa hyödynnettiin win32k.sys-ohjainhaavoittuvuutta (MS11-087, Microsoftin kuvaama 13. marraskuuta 2011), joka on vastuussa TTF-kirjasinten toistomekanismista. Hyödyntämisen shellkoodi käyttää kirjasinta nimeltä "Dexter Regular", joka on upotettu dokumenttiin, ja Showtime Inc. on listattu fontin luojaksi. Kuten näette, Duquin luojat eivät ole vieraita huumorintajulle: Dexter on sarjamurhaaja, Showtimen tuottaman samannimisen televisiosarjan sankari. Dexter tappaa vain (jos mahdollista) rikollisia, eli hän rikkoo lakia laillisuuden nimissä. Luultavasti tällä tavalla Duqu-kehittäjät ovat ironisia siitä, että he harjoittavat laitonta toimintaa hyviä tarkoituksia varten. Sähköpostien lähettäminen on tehty tarkoituksella. Lähetyksessä käytettiin todennäköisesti vaarantuneita (hakkeroituja) tietokoneita välittäjänä jäljityksen vaikeuttamiseksi.
Word-asiakirja sisälsi siis seuraavat osat:

  • tekstisisältö;
  • sisäänrakennettu fontti;
  • hyödyntää shell-koodia;
  • kuljettaja;
  • asennusohjelma (DLL-kirjasto).

Jos onnistui, exploit shellcode suoritti seuraavat toiminnot (ydintilassa):

  • tarkistettiin uudelleentartunnan varalta; tätä varten tarkistettiin CF4D-avaimen olemassaolo rekisteristä osoitteessa HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInternet SettingsZones1; jos tämä oli oikein, shell-koodi suoritti suorituksensa.
  • kahden tiedoston salaus purettiin - ohjain (sys) ja asennusohjelma (dll);
  • ohjain lisättiin services.exe-prosessiin ja asennusohjelma käynnistettiin;
  • Lopulta shellkoodi pyyhkiytyi muistista nollilla.

Koska win32k.sys suoritetaan etuoikeutetun käyttäjän "Järjestelmä" alla, Duqu-kehittäjät ovat tyylikkäästi ratkaisseet sekä luvattoman käynnistämisen että oikeuksien eskaloinnin (joka toimii rajoitetuilla oikeuksilla varustetun käyttäjätilin alaisuudessa).
Ohjauksen saatuaan asentaja pursi kolme sen muistissa olevaa tietolohkoa, jotka sisälsivät:

  • allekirjoitettu kuljettaja (sys);
  • päämoduuli (dll);
  • asentajan kokoonpanotiedot (pnf).

Asennusohjelman määritystiedoissa määritettiin ajanjakso (kahden aikaleiman muodossa - alku ja loppu). Asennusohjelma tarkisti, onko nykyinen päivämäärä sisällytetty siihen, ja jos ei, se suoritti sen loppuun. Asentimen asetustiedoissa oli myös nimet, joilla ohjain ja päämoduuli tallennettiin. Tässä tapauksessa päämoduuli tallennettiin levylle salatussa muodossa.

Duqu on ilkeä matryoshka

Duqun automaattista käynnistystä varten luotiin palvelu käyttämällä ohjaintiedostoa, joka pursi päämoduulin salauksen lennossa käyttämällä rekisteriin tallennettuja avaimia. Päämoduuli sisältää oman konfigurointitietolohkonsa. Ensimmäisen käynnistyksen yhteydessä sen salaus purettiin, siihen syötettiin asennuspäivämäärä, minkä jälkeen se salattiin uudelleen ja päämoduuli tallensi. Näin ollen ongelmalliseen järjestelmään onnistuneen asennuksen jälkeen kolme tiedostoa tallennettiin - ohjain, päämoduuli ja sen konfigurointitiedosto, kun taas kaksi viimeistä tiedostoa tallennettiin levylle salatussa muodossa. Kaikki dekoodaustoimenpiteet suoritettiin vain muistissa. Tätä monimutkaista asennusmenettelyä käytettiin minimoimaan virustorjuntaohjelmiston havaitsemismahdollisuus.

Päämoduuli

Päämoduuli (resurssi 302), mukaan tiedotus yritys Kaspersky Lab, kirjoitettu MSVC 2008:lla puhtaalla C:llä, mutta käyttäen oliolähtöistä lähestymistapaa. Tämä lähestymistapa on epätyypillinen haitallista koodia kehitettäessä. Yleensä tällainen koodi kirjoitetaan C:llä koon pienentämiseksi ja C++:n implisiittisten kutsujen poistamiseksi. Tässä on tietty symbioosi. Lisäksi käytettiin tapahtumalähtöistä arkkitehtuuria. Kaspersky Labin työntekijät ovat taipuvaisia ​​siihen teoriaan, että päämoduuli on kirjoitettu käyttämällä esiprosessorilisäosaa, jonka avulla voit kirjoittaa C-koodia objektityyliin.
Päämoduuli vastaa operaattorien komentojen vastaanottamisesta. Duqu tarjoaa useita vuorovaikutustapoja: käyttämällä HTTP- ja HTTPS-protokollia sekä käyttämällä nimettyjä putkia. HTTP(S:lle) määritettiin komentokeskusten domain-nimet ja välityspalvelimen kautta työskentelymahdollisuus - niille määritettiin käyttäjätunnus ja salasana. Kanavalle on määritetty IP-osoite ja sen nimi. Määritetyt tiedot tallennetaan päämoduulin konfigurointitietolohkoon (salatussa muodossa).
Nimettyjen putkien käyttämiseksi lanseerasimme oman RPC-palvelintoteutuksen. Se tuki seuraavia seitsemää toimintoa:

  • palauta asennettu versio;
  • lisää dll määritettyyn prosessiin ja kutsu määritettyä funktiota;
  • lataa dll;
  • aloita prosessi kutsumalla CreateProcess();
  • lukea tietyn tiedoston sisältöä;
  • kirjoittaa tietoja määritettyyn tiedostoon;
  • poista määritetty tiedosto.

Nimettyjä putkia voitaisiin käyttää paikallisessa verkossa päivitettyjen moduulien ja konfigurointitietojen jakamiseen Duqu-tartunnan saaneiden tietokoneiden välillä. Lisäksi Duqu voisi toimia välityspalvelimena muille tartunnan saaneille tietokoneille (joilla ei ollut pääsyä Internetiin yhdyskäytävän palomuuriasetusten vuoksi). Joissakin Duqu-versioissa ei ollut RPC-toimintoa.

Tunnetut "hyötykuormat"

Symantec löysi ainakin neljän tyyppisiä hyötykuormia, jotka oli ladattu komennossa Duqu-ohjauskeskuksesta.
Lisäksi vain yksi niistä oli pysyvä ja käännetty suoritettavaksi tiedostoksi (exe), joka tallennettiin levylle. Loput kolme toteutettiin dll-kirjastoina. Ne ladattiin dynaamisesti ja suoritettiin muistissa ilman, että niitä olisi tallennettu levylle.

Asukas "hyötykuorma" oli vakoilumoduuli (infovarastaja) näppäinlogger-toiminnoilla. Duqu-tutkimuksen työ aloitettiin lähettämällä se VirusTotalille. Pääasiallinen vakoilutoiminto oli resurssissa, jonka ensimmäiset 8 kilotavua sisälsivät osan valokuvasta galaksista NGC 6745 (naamiointia varten). Tässä on syytä muistaa, että huhtikuussa 2012 jotkin tiedotusvälineet julkaisivat tietoa (http://www.mehrnews.com/en/newsdetail.aspx?NewsID=1297506), että Iran oli alttiina joillekin haittaohjelmille "Stars", kun taas yksityiskohtia tapausta ei julkistettu. Ehkä se oli juuri tällainen näyte Duqun "hyötykuormasta", joka löydettiin silloin Iranista, mistä johtuu nimi "Tähdet".
Vakoojamoduuli keräsi seuraavat tiedot:

  • luettelo käynnissä olevista prosesseista, tiedot nykyisestä käyttäjästä ja toimialueesta;
  • luettelo loogisista asemista, mukaan lukien verkkoasemat;
  • kuvakaappauksia;
  • verkkoliitäntäosoitteet, reititystaulukot;
  • näppäimistön näppäinpainallusten lokitiedosto;
  • avointen sovellusikkunoiden nimet;
  • luettelo käytettävissä olevista verkkoresursseista (resurssien jakaminen);
  • täydellinen luettelo tiedostoista kaikilla levyillä, mukaan lukien irrotettavat;
  • luettelo "verkkoympäristössä" olevista tietokoneista.

Toinen vakoojamoduuli (infovarastaja) oli muunnelma jo kuvatusta, mutta dll-kirjastoksi käännettynä, josta poistettiin keyloggerin toiminnot, tiedostoluettelon laatiminen ja verkkotunnukseen kuuluvien tietokoneiden luettelointi.
Seuraava moduuli (tiedustelu) kerätyt järjestelmätiedot:

  • onko tietokone osa toimialuetta;
  • polut Windowsin järjestelmähakemistoihin;
  • käyttöjärjestelmän versio;
  • nykyinen käyttäjänimi;
  • luettelo verkkosovittimista;
  • järjestelmä ja paikallinen aika sekä aikavyöhyke.

Viimeinen moduuli (käyttöiän pidentäjä) otti käyttöön toiminnon, joka lisää työn valmistumiseen jäljellä olevien päivien arvoa (tallennettuna päämoduulin määritystietotiedostoon). Oletuksena tämä arvo asetettiin 30 tai 36 päivään Duqu-muutoksesta riippuen, ja sitä pienennettiin yhdellä joka päivä.

Komentokeskukset

20. lokakuuta 2011 (kolme päivää löytötietojen levittämisen jälkeen) Duqu-operaattorit suorittivat toimenpiteen komentokeskusten toiminnan jälkien tuhoamiseksi. Komentokeskukset sijaitsivat hakkeroiduilla palvelimilla ympäri maailmaa – Vietnamissa, Intiassa, Saksassa, Singaporessa, Sveitsissä, Isossa-Britanniassa, Hollannissa ja Etelä-Koreassa. Mielenkiintoista on, että kaikilla tunnistetuilla palvelimilla oli CentOS-versio 5.2, 5.4 tai 5.5. Käyttöjärjestelmät olivat sekä 32- että 64-bittisiä. Huolimatta siitä, että kaikki komentokeskusten toimintaan liittyvät tiedostot poistettiin, Kaspersky Labin asiantuntijat pystyivät palauttamaan osan tiedoista LOG-tiedostoista tyhjästä tilasta. Mielenkiintoisin tosiasia on, että palvelimien hyökkääjät korvasivat aina oletusarvoisen OpenSSH 4.3 -paketin versiolla 5.8. Tämä saattaa viitata siihen, että OpenSSH 4.3:n tuntematonta haavoittuvuutta käytettiin palvelimien hakkerointiin. Kaikkia järjestelmiä ei käytetty komentokeskuksina. Joitakin sshd-lokien virheistä päätellen, kun yritettiin uudelleenohjata liikennettä portteihin 80 ja 443, käytettiin välityspalvelimena yhteyden muodostamiseen loppukomentokeskuksiin.

Päivämäärät ja moduulit

Huhtikuussa 2011 jaettu Word-asiakirja, jonka Kaspersky Lab tutki, sisälsi asennusohjelman latausohjaimen, jonka käännöspäivä on 31. elokuuta 2007. Samankaltaisen ajurin (koko - 20608 5 tavua, MD45 - EEDCA613BD0E9D9A5E69122007C17F21) CrySysin laboratorioista löytyneen asiakirjan käännöspäivä oli 2008. helmikuuta 19968. Lisäksi Kaspersky Labin asiantuntijat löysivät automaattisen käynnistysohjaimen rndismpc.sys (koko - 5 tavua, MD9 - 6AEC10E5C9EE05C93221544BED783C20E), jonka päivämäärä on 2008. tammikuuta 2009. Yhtään 2007-merkillä varustettua osaa ei löytynyt. Duquin yksittäisten osien kokoamisen aikaleimojen perusteella sen kehitys voi ulottua vuoden 28 alkuun. Sen varhaisin ilmentymä liittyy ~DO-tyyppisten väliaikaisten tiedostojen havaitsemiseen (luultavasti jonkin vakoiluohjelmamoduulin luoma), joiden luontipäivä on 2008. marraskuuta XNUMX (artikkeli "Duqu & Stuxnet: mielenkiintoisten tapahtumien aikajana"). Viimeisin Duqu-ohjelmaan liittyvä päivämäärä oli 23. helmikuuta 2012, joka sisältyi Symantecin maaliskuussa 2012 löytämään asennusohjelman latausohjaimeen.

Käytetyt tietolähteet:

artikkelisarja Duquista Kaspersky Labista;
Symantecin analyyttinen raportti "W32.Duqu Seuraavan Stuxnetin edeltäjä", versio 1.4, marraskuu 2011 (pdf).

Lähde: will.com

Lisää kommentti