Mutacije škodljive kode – nove različice znanih groženj
Nove različice znanih kibernetskih groženj (mutacije) so izredno učinkovite, saj jih določen čas tudi najsodobnejši varnostni sistemi ne znajo ustaviti. Zato je bistveno, da ste takšne poskuse napadov sposobni zaznati in omejiti. V podjetju NIL smo se pred kratkim soočili s takšnim poskusom in ga tudi uspešno preprečili.
30. 7. 2018 smo v NIL-ovem varnostno operativnem centru (angl. Security Operations Center – SOC) zaznali prejem potencialno zlonamerne kode. Žrtev usmerjene »phishing« kampanje so bile naše zaledne službe, kar je nadvse verjetno premišljeno izbran cilj. Vektor dostave (angl. payload delivery vector) je bil na videz popolnoma običajno e-poštno sporočilo s priponko priljubljenega pisarniškega orodja. Z analizo smo v prejeti priponki potrdili vsebovanost makra, ki v primeru zagona omogoča izvršitev poljubne programske kode. Le ostro oko bi opazilo, da je imela priponka končnico .doc, ki jo praviloma uporabljajo starejše različice pisarniških orodij.
POMNI: Tudi če bi naključen uporabnik opazil starejši format datoteke (*.doc), se preteče nevarnosti morebiti ne bi zavedal. Za razliko od novejših formatov datotek, pri katerih moramo za uporabo makro kode v dokumentu tega shraniti v obliki .docm, starejša pisarniška orodja dovoljujejo tudi klasični zapis.
Podrobna analiza in logika napada
Tarča napada je prejela elektronsko sporočilo, ki je v glavi vsebovalo naslednje informacije:
Zadeva: Important account documents Pošiljatelj: no-reply@chase-docs.com Prejemnik: *********@nil.com Ime datoteke: 20987419355.doc
Po zajezitvi varnostnega incidenta, katerega prvenstveni cilj je omejitev dotičnega vektorja dostave in nadaljnjega širjenja škodljive kode, sem začel analizo dokumenta in vsebovanega škodljivega tovora (angl. payload). Izkazalo se je, da šele v dokument vgrajena makro programska logika prenese in zažene dejansko škodljivo kodo (angl. dropper). Uporabljena je ukazna lupina PowerShell, ki je privzeto nameščena na vseh novejših operacijskih sistemih Microsoft Windows in je posledično del večine poslovnih okolij ter zato tudi posebej zanimiva za hekerje.
Podrobnosti PowerShellovega ukaza:
Iz analize HTTP-jevega zahtevka je razvidna dostava dejanske škodljive kode s klasično (nešifrirano, neoverjeno) različico protokola HTTP, ki bi jo lahko moderni varnostni mehanizmi tudi zaznali. Slednje smo preverili v namenskih peskovnikih (angl. sandbox) uveljavljenih rešitev za analizo spletnih ciljev. Na dan analize (30. 7. 2018) so škodljivi spletni cilj prepoznali samo štirje od 67 proizvajalcev varnostnih rešitev. Zastrašujoč podatek, ki le potrjuje potrebo po uveljavljenih procesih zaznave in odziva na varnostne incidente, po tem ko (in ne če) preventiva pade.
Zahtevek HTTP z metodo GET, ki je bila uporabljena za prenos:
Iz zajetih paketov (PCAP) sem pridobil dejansko datoteko bam.jop:
SHA-256:
379f8949ad5abf62d7a4679fc044bbe341f1fe44939e4086d543dad9c3d871b7
MD5:
27a31ad942fe2819b2227c893457083e
Zlonamerno kodo sem v nadaljevanju detoniral v izoliranem peskovniku, ki ga v varnostno operativnem centru uporabljamo v procesu odziva na varnostne incidente z namenom prepoznavanja indikatorjev napada (angl. Indicator of Compromise – IOC). Šlo je za zlonamerno kodo iz družine TrickBot, katere značilnosti so neverjetna modularnost, preplet različnih tehnik nadaljnjega širjena, lateralnega gibanja ipd.
Po zagonu škodljive kode si ta na napadenem sistemu najprej zagotovi dolgoročen obstoj in ustrezno zakritje (angl. obfuscation). Napadalčev motiv sta namreč neprekinjen prevzem in oddaljeno upravljanje žrtvine delovne postaje. Ustvarjeno je opravilo v programu Windows Task Scheduler, ki izvrši kopijo datoteke bam.jop.exe ob zagonu sistema. Škodljiva koda poskuša med drugim tudi onemogočiti storitev privzete protivirusne rešitve Windows Defender:
#powershell Set-MpPreference -DisableRealtimeMonitoring $true
Ukaz ob izpolnjenih pogojih (uspešnost tehnike je namreč odvisna od varnostne politike organizacije) izključi preverjanje datotek v realnem času. Zvito!
Naslednja stopnja (angl. stage) v ciklu škodljive kode je vzpostavitev vzvratnega kanala do napadalčevega ukaznega strežnika. Seja se z namenom prikritja sledi uporabe škodljivih tehnik vzpostavi s transportnimi vrati TCP/443 in je zaščitena z naborom kriptografskih algoritmov TLS. Overjanje strežnika je izvedeno s privzetim samopodpisanim (angl. self-signed) certifikatom. Spodnja slika prikazuje vzpostavitev vzvratnega kanala do ukaznega strežnika v upravljanju napadalca. Komunikacija od tod naprej je šifrirana in kot takšna varnostnim napravam praviloma nevidna.
Na dan incidenta velika večina proizvajalcev varnostnih rešitev zlonamerne kode ni prepoznala. Zakaj smo jo lahko mi?
Zanimivo je dejstvo, da v času prejema e-poštnega sporočila o zlonamerni kodi na spletu ni bilo zapisov (npr. signatur, indikatorjev IOC) z enoznačnim zgoščevalnim povzetkom (angl. hash). Prve analize so bile opravljene šele naslednji dan, v času priprave tega zapisa na blogu pa se je omenjeni rezultat SHA-256 že znašel na večini virov »threat intelligence« (to so baze, v katerih se zapisujejo in objavljajo povzetki zlonamernih kod za njihovo nadaljnje učinkovitejše odkrivanje).
V konkretnem primeru je imel torej napadalec vsaj 24 ur časa, preden bi prve varnostne naprave napad zaznale in ga tudi preprečile. Okno priložnosti je dovolj veliko za eksfiltracijo (neavtorizirano kopiranje, prenašanje ali pridobivanje podatkov) več tisoč megabajtov podatkov različnih stopenj kritičnosti. Potencialna škoda odtekanja podatkov iz organizacije je lahko merljiva v več 100.000 evrih, pri čemer ta ocena (še) ne upošteva dolgoročnega negativnega vpliva na ugled organizacije.
Takšna »mutacija« škodljive kode bi se lahko tudi v našem okolju izmuznila ducat in več varnostnim kontrolam in na koncu dosegla nič hudega slutečega končnega uporabnika, ki ima lahko dostop tudi do kritičnih podatkov organizacije. Toda s kombinacijo tehnik forenzične analize na nivoju omrežja, zapisovanja dogodkov na končnih napravah in zaznave statističnih odstopanj lahko učinkovito prepoznavamo nove grožnje, še preden je strokovna javnost obveščena.
Te naloge v NIL-u izvajamo analitiki kibernetske varnosti v varnostnem operativnem centru, ki opisane in podobne grožnje pravočasno opazimo in se nanje tudi primerno odzovemo.
Tom Kern je analitik kibernetske varnosti v NIL-ovem varnostno operativnem centru.
Kako deluje SOC?
V predavanju Nad napadalce s filozofijo in ne dodatnimi napravami sta Matevž Mesojednik in Matjaž Kosem predstavila, kako deluje NIL-ov varnostno operativni center.