Kyberturvallisuustutkintaryhmämme tutki äskettäin verkkoa, joka oli lähes kokonaan kryptoming-viruksen tartuttama keskikokoisessa yrityksessä. Analyysi
kerätyt haittaohjelmanäytteet osoittivat, että uusi muutos oli löydetty
tällaisia viruksia, ns
Tutkimuksen yleiskatsaus
- Varonis-yhtiö on tunnistanut laajamittaisen kryptomineraajien tartunnan: lähes kaikki yrityksen palvelimet ja työasemat ovat saaneet tällaisen ohjelmiston tartunnan.
- Yli vuosi sitten tapahtuneesta ensimmäisestä tartunnasta lähtien modifikaatioiden ja tartunnan saaneiden laitteiden määrä on kasvanut tasaisesti
- Löysimme uuden tyyppisen Moneron kryptominerin (Norman), joka piilottaa sen eri menetelmillä tietoturvaohjelmiston analyysiltä havaitsemisen välttämiseksi.
- Useimmat haittaohjelmaversiot käyttivät DuckDNS:ää (ilmainen dynaaminen DNS-palvelu) yhteyden muodostamiseen ohjauskeskukseen (C&C-palvelimet) ja määritysparametrien hankkimiseen tai uusien tietojen lähettämiseen.
- Norman on korkean suorituskyvyn Monero kryptovaluutan kaivostyöntekijä, joka perustuu avoimen lähdekoodin kaivostyökaluun - XMRig
- Meillä ei vielä ole kiistattomia todisteita kryptomineraajien yhdistämisestä interaktiiviseen PHP-kuoreen. On kuitenkin hyviä syitä uskoa, että ne ovat peräisin samalta hyökkääjältä. Tutkijat keräävät lisätodisteita tällaisen yhteyden olemassaolosta tai puuttumisesta.
- Tässä artikkelissa voit tutustua Varonisin suosituksiin suojautumisesta etäverkkokuorilta ja kryptomineraajilta
tutkimus
Selvitys alkoi seuraavan pilottiprojektin aikana
kyberturvallisuus Varonis
Asiakas huomautti välittömästi, että alustamme tunnistavat laitteet
kuului samoille käyttäjille, jotka ilmoittivat äskettäin sovellusten kaatumisista ja verkon hidastumisesta.
Tiimimme tutki manuaalisesti asiakkaan ympäristöä siirtyen tartunnan saaneelta asemalta toiselle Varonis-alustan luomien hälytysten mukaisesti. Tapahtumavalvontaryhmä on kehittänyt erityissäännön
Tartunnan saaneet solmut löydettiin niiden soittamien puhelujen ansiosta AnkkaDNS, dynaaminen DNS-palvelu, jonka avulla käyttäjät voivat luoda omia verkkotunnuksia ja yhdistää ne nopeasti muuttuviin IP-osoitteisiin. Kuten yllä todettiin, suurin osa tapauksen haittaohjelmista käytti DuckDNS:ää muodostaakseen yhteyden ohjauskeskukseen (C&C), kun taas toiset käyttivät määritysparametreja tai lähettivät uusia tietoja.
Lähes kaikki palvelimet ja tietokoneet olivat haittaohjelmien saastuttamia. Pääasiassa käytetty
kryptomineraajien yleisiä muunnelmia. Muita haittaohjelmia olivat salasanan tyhjennystyökalut ja PHP-kuoret, kun taas monet työkalut olivat toimineet useita vuosia.
Toimitimme tulokset asiakkaalle, poistimme haittaohjelmat heidän ympäristöstään ja pysäytimme lisätartunnat.
Kaikista löydettyjen kryptomineraajien näytteistä yksi erottui joukosta. Nimesimme hänet Normannilainen.
Tavata! Norman. Cryptominer
Norman on XMRig-koodiin perustuva korkean suorituskyvyn Monero kryptovaluutan louhinta. Toisin kuin muut löydetyt kaivosnäytteet, Norman käyttää tekniikoita piilottaakseen sen tietoturvaohjelmiston analyysiltä välttääkseen havaitsemisen ja estääkseen leviämisen.
Ensi silmäyksellä tämä haittaohjelma on tavallinen kaivosmies, joka piileskelee nimellä svchost.exe. Tutkimuksessa kuitenkin havaittiin, että se käyttää mielenkiintoisempia menetelmiä piiloutuakseen havaitsemiselta ja pitääkseen asiat käynnissä.
Tämän haittaohjelman käyttöönottoprosessi voidaan jakaa kolmeen vaiheeseen:
- esitys;
- toteutus;
- kaivostoimintaa.
Askel askeleelta analyysi
Vaihe 1. Toteutus
Ensimmäinen vaihe alkaa suoritettavalla tiedostolla svchost.exe.
Haittaohjelma on käännetty käyttämällä NSIS:ää (Nullsoft Scriptable Install System), mikä on epätavallista. NSIS on avoimen lähdekoodin järjestelmä, jota käytetään Windows-asennusohjelmien luomiseen. Kuten SFX, tämä järjestelmä luo tiedostoista arkiston ja komentosarjatiedoston, joka suoritetaan asennusohjelman ollessa käynnissä. Komentosarjatiedosto kertoo ohjelmalle, mitä tiedostoja on suoritettava, ja se voi olla vuorovaikutuksessa muiden arkiston tiedostojen kanssa.
Huom: Jotta voit hankkia NSIS-komentosarjatiedoston suoritettavasta tiedostosta, sinun on käytettävä 7zip-versiota 9.38, koska uudemmat versiot eivät käytä tätä ominaisuutta.
NSIS:n arkistoitu haittaohjelma sisältää seuraavat tiedostot:
- CallAnsiPlugin.dll, CLR.dll - NSIS-moduulit .NET DLL -toimintojen kutsumiseen;
- 5zmjbxUIOVQ58qPR.dll - päähyötykuorma DLL;
- 4jy4sobf.acz, es1qdxg2.5pk, OIM1iVhZ.txt - hyötykuormatiedostot;
- Retreat.mp3, Cropped_controller_config_controller_i_lb.png ovat vain tiedostoja, jotka eivät liity millään tavalla muuhun haitalliseen toimintaan.
Komento NSIS-skriptitiedostosta, joka suorittaa hyötykuorman, on annettu alla.
Haittaohjelma suoritetaan kutsumalla funktio 5zmjbxUIOVQ58qPR.dll, joka ottaa muut tiedostot parametreiksi.
Vaihe 2. Toteutus
Tiedosto 5zmjbxUIOVQ58qPR.dll on päähyötykuorma, kuten yllä olevasta NSIS-komentosarjasta ilmenee. Metatietojen nopea analyysi paljasti, että DLL:n nimi oli alun perin Norman.dll, joten annoimme sille nimen.
DLL-tiedosto on kehitetty .NET:ssä ja se on suojattu käänteissuunnittelulta kolminkertaisella hämärtymisellä
käyttämällä tunnettua kaupallista tuotetta Agile .NET Obfuscator.
Suorituksen aikana monet itseinjektiotoimenpiteet ovat mukana omassa prosessissaan, samoin kuin muissa prosesseissa. Käyttöjärjestelmän bittisyvyydestä riippuen haittaohjelma toimii
valita eri polkuja järjestelmäkansioihin ja käynnistää erilaisia prosesseja.
Järjestelmäkansiopolun perusteella haittaohjelma valitsee suoritettavaksi erilaisia prosesseja.
Ruiskutetulla hyötykuormalla on kaksi päätoimintoa: kryptominerin suorittaminen ja havaitsemisen estäminen.
Jos käyttöjärjestelmä on 64-bittinen
Kun alkuperäinen svchosts.exe-tiedosto (NSIS-tiedosto) suoritetaan, se luo uuden oman prosessinsa ja lisää siihen hyötykuorman (1). Pian sen jälkeen se käynnistää notepad.exe- tai explorer.exe-tiedoston ja ruiskuttaa kryptominerin siihen (2).
Tämän jälkeen alkuperäinen svchost.exe-tiedosto poistuu, ja uutta svchost.exe-tiedostoa käytetään ohjelmana, joka valvoo kaivosprosessia.
Jos käyttöjärjestelmä on 32-bittinen
Kun alkuperäinen svchosts.exe-tiedosto (NSIS-tiedosto) suoritetaan, se monistaa oman prosessinsa ja syöttää siihen hyötykuorman, aivan kuten 64-bittinen versio.
Tässä tapauksessa haittaohjelma ruiskuttaa hyötykuorman käyttäjän explorer.exe-prosessiin. Sieltä haitallinen koodi käynnistää uuden prosessin (wuapp.exe tai vchost.exe) ja ruiskuttaa siihen kaivosohjelman.
Haittaohjelma piilottaa sen, että se on lisännyt itsensä explorer.exe-tiedostoon korvaamalla aiemmin syötetyn koodin wuapp.exe-polulla ja tyhjillä arvoilla.
Kuten 64-bittisessä ympäristössä suoritettaessa, alkuperäinen svchost.exe-prosessi poistuu, ja toista käytetään haitallisen koodin lisäämiseen explorer.exe-tiedostoon, jos käyttäjä lopettaa prosessin.
Suoritusalgoritmin lopussa haittaohjelma ruiskuttaa aina kryptominerin käynnistämäänsä lailliseen prosessiin.
Se on suunniteltu estämään havaitseminen lopettamalla kaivostyön, kun käyttäjä käynnistää Task Managerin.
Huomaa, että Task Managerin käynnistämisen jälkeen wuapp.exe-prosessi päättyy.
Tehtävienhallinnan sulkemisen jälkeen haittaohjelma käynnistää wuapp.exe-prosessin uudelleen ja uudelleen
kaivosmies ruiskuttaa sen siihen.
Vaihe 3. Kaivosmies
Harkitse edellä mainittua XMRig-kaivostyötä.
Haittaohjelma ruiskuttaa kaivosohjelman naamioidun UPX-version muistikirjaan, exe, explorer.exe,
svchost.exe tai wuapp.exe riippuen käyttöjärjestelmän bittisyvyydestä ja suoritusalgoritmin vaiheesta.
Kaivostyön PE-otsikko on poistettu ja alla olevassa kuvakaappauksessa näemme, että se on peitetty UPX:llä.
Kun luotiin vedos ja rakennettiin uudelleen suoritettava tiedosto, pystyimme ajamaan sen:
On huomattava, että pääsy kohde-XMR-sivustolle on estetty, mikä tehokkaasti neutraloi tämän kaivostyöntekijän.
Kaivostyön kokoonpano:
"url": "pool.minexmr.com:5555","user":
"49WvfokdnuK6ojQePe6x2M3UCD59v3BQiBszkuTGE7wmNJuyAvHM9ojedgxMwNx9tZA33P84EeMLte7t6qZhxNHqHyfq9xA","pass":"x"
Salaperäinen PHP-kuori, joka välittää tietoja C&C:lle
Tämän tutkimuksen aikana rikostekninen tiimimme löysi XSL-tiedoston, joka kiinnitti heidän huomionsa. Näytteen perusteellisen analyysin jälkeen löydettiin uusi PHP-kuori, joka on jatkuvasti yhteydessä ohjauskeskukseen (C&C-palvelin).
Asiakkaan ympäristöstä löytyi useilta palvelimilta XSL-tiedosto, joka käynnistettiin tunnetulla Windowsin suoritettavalla tiedostolla (mscorsv.exe) sysWOW64-hakemiston kansiosta.
Haittaohjelmakansion nimi oli AutoRecover, ja se sisälsi useita tiedostoja:
- XSL-tiedosto: xml.XSL
- yhdeksän DLL-tiedostoa
Suoritettavat tiedostot:
- Mscorsv.exe
- Wmiprvse.exe
XSL-tiedosto
XSL-tiedostot ovat tyylisivuja, jotka ovat samanlaisia kuin CSS:ssä käytetyt, jotka kuvaavat XML-dokumentin näyttämisen.
Notepadin avulla päätimme, että se ei itse asiassa ollut XSL-tiedosto, vaan Zend Guardin hämärtämä PHP-koodi. Tämä utelias tosiasia vihjasi, että se oli
haittaohjelmien hyötykuorma sen suoritusalgoritmin perusteella.
Yhdeksän DLL:tä
XSL-tiedoston alkuperäinen analyysi johti siihen johtopäätökseen, että tällainen numero on olemassa
DLL:illä on tietty merkitys. Pääkansio sisältää DLL-tiedoston nimeltä php.dll ja kolme muuta SSL- ja MySQL-kirjastoa. Asiantuntijat löysivät alikansioista neljä PHP-kirjastoa ja yhden Zend Guard -kirjaston. Kaikki ne ovat laillisia, ja ne saadaan PHP-asennuspaketista tai ulkoisina dll-tiedostoina.
Tässä vaiheessa oletettiin, että haittaohjelma luotiin PHP:n perusteella ja Zend Guard hämärsi sen.
Suoritettavat tiedostot
Myös tässä kansiossa oli kaksi suoritettavaa tiedostoa: Mscorsv.exe ja Wmiprvse.exe.
Analysoituamme mscorsv.exe-tiedoston, päätimme, että Microsoft ei allekirjoittanut sitä, vaikka sen ProductName-parametriksi asetettiin "Microsoft. Net Framework".
Aluksi se vain tuntui oudolta, mutta Wmiprvse.exe-tiedoston analysointi antoi meille mahdollisuuden ymmärtää tilannetta paremmin.
Wmiprvse.exe-tiedosto oli myös allekirjoittamaton, mutta se sisälsi PHP-ryhmän tekijänoikeussymbolin ja PHP-kuvakkeen. Nopea tarkastelu sen riveistä paljasti PHP-ohjeen komennot. Kun se suoritettiin -versiokytkimellä, havaittiin, että se oli suoritettava tiedosto, joka oli suunniteltu suorittamaan Zend Guard.
Kun mscorsv.exe käynnistettiin samalla tavalla, samat tiedot näytettiin näytöllä. Vertasimme näiden kahden tiedoston binääritietoja ja huomasimme, että ne ovat metatietoja lukuun ottamatta identtisiä
Tekijänoikeus ja yrityksen nimi/tuotteen nimi.
Tämän perusteella pääteltiin, että XSL-tiedosto sisälsi PHP-koodia, joka ajettiin Zend Guard -suoritettavalla tiedostolla piilotettuna nimen mscorsv.exe alle.
XSL-tiedoston jäsentäminen
Asiantuntijat saivat nopeasti Internet-haun avulla Zend Guard -deobfuskaatiotyökalun ja palauttivat xml.XSL-tiedoston alkuperäisen ulkoasun:
Kävi ilmi, että haittaohjelma itsessään on PHP-kuori, joka on jatkuvasti yhteydessä ohjauskeskukseen (C&C-palvelin).
Sen lähettämät ja vastaanottamat komennot ja tulosteet ovat salattuja. Koska meillä oli lähdekoodi, meillä oli sekä salausavain että komennot.
Tämä haittaohjelma sisältää seuraavat sisäänrakennetut toiminnot:
- Eval – käytetään yleensä koodissa olevien muuttujien muokkaamiseen
- Paikallinen tiedostotallennus
- Mahdollisuus työskennellä tietokannan kanssa
- Mahdollisuus työskennellä PSEXEC:n kanssa
- Piilotettu suoritus
- Kartoitusprosessit ja -palvelut
Seuraava muuttuja viittaa siihen, että haittaohjelmalla on useita versioita.
Näytteitä kerättäessä löydettiin seuraavat versiot:
- 0.5f
- 0.4p
- 0.4o
Ainoa tehtävä haittaohjelmien jatkuvan läsnäolon varmistamiseksi järjestelmässä on se, että kun se suoritetaan, se luo palvelun, joka suorittaa itsensä ja sen nimen
muuttuu versiosta toiseen.
Asiantuntijat yrittivät löytää samanlaisia näytteitä Internetistä ja löysivät haittaohjelmia
joka heidän mielestään oli olemassa olevan näytteen aiempi versio. Kansion sisältö oli samanlainen, mutta XSL-tiedosto oli erilainen ja sillä oli eri versionumero.
Parle-Vu-haittaohjelma?
Haittaohjelma saattoi olla peräisin Ranskasta tai muusta ranskankielisestä maasta: SFX-tiedostossa oli ranskankielisiä kommentteja, jotka osoittivat, että kirjoittaja käytti sen luomiseen ranskankielistä WinRAR-versiota.
Lisäksi jotkut koodin muuttujat ja funktiot nimettiin myös ranskaksi.
Suorituksen valvonta ja uusien komentojen odottaminen
Asiantuntijat muuttivat haittaohjelmakoodia ja käynnistivät jo muokatun turvallisesti
versio kerätäkseen tietoja vastaanottamistaan komennoista.
Ensimmäisen viestintäistunnon lopussa asiantuntijat huomasivat, että haittaohjelma sai Base64:llä koodatun komennon argumenttina EVAL64-käynnistysavaimelle.
Tämä komento dekoodataan ja suoritetaan. Se muuttaa useita sisäisiä muuttujia (luku- ja kirjoituspuskurin kokoja), minkä jälkeen haittaohjelma siirtyy työjaksoon odottaen komentoja.
Tällä hetkellä uusia komentoja ei ole vastaanotettu.
Interaktiivinen PHP-kuori ja kryptomineri: liittyvätkö toisiinsa?
Varonis-asiantuntijat eivät ole varmoja, liittyykö Norman PHP-kuoreen, koska tämän oletuksen puolesta ja vastaan on vahvoja argumentteja:
Miksi ne voivat olla sukua?
- Mikään haitallisista kryptominointiohjelmistonäytteistä ei kyennyt leviämään itsenäisesti muihin järjestelmiin, vaikka niitä löytyikin useista laitteista eri verkkosegmenteissä. On mahdollista, että hyökkääjä infektoi jokaisen solmun erikseen (ehkä käyttämällä samaa hyökkäysvektoria kuin tartuttaessaan potilasta Zeroa), vaikka olisi tehokkaampaa käyttää PHP-kuorta leviämään koko hyökkäyksen kohteena olevaan verkkoon.
- Laajamittainen, kohdistetut automatisoidut kampanjat, jotka on suunnattu tiettyä organisaatiota vastaan, jättävät usein jälkeensä teknisiä artefakteja tai tunnistettavia kyberturvallisuusuhkien jälkiä. Tässä tapauksessa mitään vastaavaa ei löytynyt.
- Sekä Norman että PHP-kuori käyttivät DuckDNS-palvelua.
Miksi ne eivät voi olla sukua?
- Salaushaittaohjelmaversioiden ja PHP-kuoren välillä ei ole teknisiä yhtäläisyyksiä. Haitallinen kryptomeeri on luotu C++:ssa ja komentotulkki PHP:ssä. Myöskään koodirakenteessa ei ole yhtäläisyyksiä ja verkkotoiminnot on toteutettu eri tavalla.
- Haittaohjelmaversioiden ja PHP-kuoren välillä ei ole suoraa yhteyttä tietojen vaihtamiseksi.
- He eivät jaa kehittäjien kommentteja, tiedostoja, metatietoja tai digitaalisia sormenjälkiä.
Kolme suositusta suojautua etäkuorilta
Haittaohjelmat, jotka vaativat toimiakseen komentoja ohjauskeskuksesta (C&C-palvelimet), eivät ole kuin tavalliset virukset. Hänen toimintansa eivät ole niin ennustettavissa ja muistuttavat enemmän hakkerin tai pentesterin toimia ilman automaattisia työkaluja tai komentosarjoja. Siksi näiden hyökkäysten havaitseminen ilman haittaohjelmaallekirjoituksia on haastavampaa kuin tavallinen virustentorjunta.
Alla on kolme suositusta yritysten suojaamiseksi etäkuorilta:
- Pidä kaikki ohjelmistot ajan tasalla
Hyökkääjät käyttävät usein ohjelmistojen ja käyttöjärjestelmien haavoittuvuuksia levittääkseen organisaation verkossa ja etsiäkseen kiinnostavia tietoja
varkaus. Oikea-aikainen korjaus vähentää merkittävästi tällaisten uhkien riskiä. - Valvo poikkeavia tietojen käyttötapahtumia
Todennäköisimmin hyökkääjät yrittävät viedä organisaation luottamuksellisia tietoja rajojen ulkopuolelle. Näiden tietojen poikkeavien pääsytapahtumien seuranta mahdollistaa
havaita vaarantuneet käyttäjät ja koko joukko kansioita ja tiedostoja, jotka voivat todella joutua hyökkääjien käsiin, eikä vain pitää kaikkia näiden käyttäjien saatavilla olevia tietoja sellaisina. - Valvo verkkoliikennettä
Palomuurin ja/tai välityspalvelimen käyttö voi havaita ja estää haitalliset yhteydet haittaohjelmien ohjauskeskuksiin (C&C-palvelimiin), mikä estää hyökkääjiä suorittamasta komentoja ja vaikeuttaa
kehän tiedot.
Oletko huolissasi harmaan kaivostoiminnan ongelmasta? Kuusi suositusta suojaamiseksi:
- Pidä kaikki käyttöjärjestelmät ajan tasalla
Korjausten hallinta on erittäin tärkeää resurssien väärinkäytön ja haittaohjelmatartuntojen estämiseksi. - Hallitse verkkoliikennettä ja verkkovälityspalvelimia
Tee näin havaitaksesi joitain hyökkäyksiä ja estääksesi osan niistä voit estää liikenteen haitallisia verkkotunnuksia koskevien tietojen perusteella tai rajoittaa tarpeettomia tiedonsiirtokanavia. - Käytä ja ylläpidä virustorjuntaratkaisuja ja päätepisteiden suojausjärjestelmiä (Mutta älä missään tapauksessa rajoita itseäsi vain tämän suojakerroksen käyttämiseen).
Päätepistetuotteet voivat havaita tunnetut kryptomineraajat ja estää infektioita ennen kuin ne vahingoittavat järjestelmän suorituskykyä ja energiankulutusta. Huomaa, että uudet muutokset tai uudet menetelmät havaitsemisen estämiseksi voivat aiheuttaa sen, että päätepisteiden suojaus ei pysty havaitsemaan saman haittaohjelman uusia versioita. - Tarkkaile tietokoneen suorittimen toimintaa
Tyypillisesti krypto-kaivostyöntekijät käyttävät kaivostoimintaan tietokoneen keskusprosessoria. On tarpeen analysoida kaikki suorituskyvyn heikkenemistä koskevat viestit ("Tietokoneeni on alkanut hidastua."). - Tarkkaile DNS:ää dynaamisten DNS-palvelujen (kuten DuckDNS) epätavallisen käytön varalta
Vaikka DuckDNS ja muut dynaamiset DNS-palvelut eivät ole luonnostaan haitallisia järjestelmälle, haittaohjelmien DuckDNS:n käyttö helpotti tutkintaryhmiemme havaitsemaan tartunnan saaneita isäntiä.
- Suunnittele hätätilanteiden torjuntasuunnitelma
Varmista, että sinulla on käytössäsi tarvittavat menettelyt, jotta tällaiset tapaukset havaitsevat, hillitsevät ja vähentävät automaattisesti harmaan kryptolouhinnan uhkaa.
Huomautus Varonis-asiakkaille.
Lähde: will.com