Pred kratkim je bil Evropski biomolekularni raziskovalni inštitut tarča napada z izsiljevalskim kripto virusom vrste Ryuk. Posledica napada je bila izguba pomembnih raziskovalnih podatkov za vsaj teden dni. Analiza vdora je pokazala na vstopni vektor napadalcev preko RDP protokola z avtentikacijskimi podatki enega od študentov. Napadalci so do njegove gesla prišli z virusom, ki ga je vseboval crack za programsko opremo, ki jo je študent potreboval pri svojem delu. Tudi na SI-CERT redno obravnavamo primere okužb skozi nelegalno programsko opremo. Finančne posledice okužb so dostikrat precej višje kot nakup licence.
Običajna pot škodljive kode do ciljnega računalnika poteka po elektronski pošti z zlonamernimi priponkami, ki so lahko različnih oblik: od izvršljivih datotek (ki se morda predstavljajo kot PDF dokumenti), ZIP/RAR/ISO arhivov, ali pa z Microsoft Office dokumenti, ki vsebujejo makre ali exploit za eno od znanih ranljivosti. Zagon izsiljevalskih virusov je lahko tudi končni korak, ki se začne z vdorom preko oddaljenega dostopa (najpogosteje Windows Remote Desktop s šibkim geslom uporabnika). Lahko pa sami prenesete trojanskega konja (v dokaj izvirnem pomenu besede) na svoj računalnik, če na neuradnih virih (npr. BitTorrent omrežjih ali sumljivih forumih) poiščete razbito verzijo drage programske opreme.
Običajni scenarij
Znašli ste se v situaciji, ko bi morali nujno urediti nek dokument, z zastonjskimi orodji pa to ni izvedljivo? Mogoče bi lahko želeno orodje pridobili na straneh proizvajalca ustrezne programske opreme, ampak ta je na voljo zgolj proti plačilu, cena pa je visoka. Na priljubljenem BitTorrent sledilniku najdete programski paket z zlomljeno licenčno zaščito. Prenos je hiter in vaša težava na prvi pogled izgleda rešena.
Po zagonu prenesene namestitvene datoteke se pojavi in izgine okno ukaznega poziva (Command prompt) nato pa pojavi okno z izpisom napake, da se je program zaustavil in da namestitve ni moč izvesti. Sledi novo iskanje programske opreme, prenos, zagon, rezultat pa dostikrat podobno neuspešen kot v prvem poskusu. Običajno pa se uporabnik niti ne zaveda, da se je nekaj pa le uspešno namestilo na sistem.
V nadaljevanju sledi analiza enega od primerov okužbe sistema skozi škodljivo kodo v nelegalni programski opremi.
Analiza vzorcev
Pridobljena vzorca škodljive kode sta se predstavljala kot namestitveni datoteki programske opreme Adobe Acrobat PRO DC 2020.
Vzorec 1
- File Name: Adobe Acrobat Pro DC 2020 013 20074 Multilingual Portable
- Torrent Info Hash: 6C0C250F0B937B4E0F1C941541F1444EEE5DB08D
- Files: 4
- Size: 340.78 MiB (357338378 Bytes)
Vzorec 2
- File Name: Adobe Acrobat PRO DC 2020.009.20063 FULL [TheWindowsForum]
- Torrent Info Hash: A3624F40AE475BC6E2145EFDA80E6BD40F121B2
- Files: 5
- Size: 925.83 MiB (970807125 Bytes)
V obeh primerih analiziranih vzorcev smo zaznali enako obnašanje in potrdili, da gre za isto vrsto okužbe.
Pri analizi datotek, za katere sumimo, da vsebujejo škodljivo kodo, se najprej odločimo, katero vrsto analize bomo izbrali:
- statična analiza – vzorca analizirane kode ne zaženemo, ampak izvedemo opravimo pregled samih lastnosti in zapisa kode
- dinamična analiza – programsko kodo izvedemo v kontroliranem okolju in opazujemo obnašanje sistema, spremembe na datotečnem sistemu, registru sistema, spremljamo omrežni promet …
Glede na velikost vzorcev bi statična analiza zahtevala veliko časa in bi bila bolj podobna iskanju drobne igle v ogromni kopici sena, zato se odločimo za izvedbo dinamične analize. Uporaba posebej prilagojenih okolij za analizo škodljive kode – peskovnikov (angl. sandbox) – v tem primeru ne pride v poštev, saj imajo ti omejitev velikosti datotek, ki jih še sprejmejo v analizo; običajno je to nekaj 10 MB. Tako s peskovniki hitro opravimo prvo analizo manjših trojancev, ki so ena od bolj pogostih nadlog zlonamerne kode. Tu moramo uporabiti ustrezno izoliran in predpripravljen sistem v laboratoriju SI-CERT.
Ugotovitve dinamične analize
1. korak – analiza okolja
Škodljiva koda na začetku izvede pregled konfiguracije sistema z namenom ugotavljanja, ali je zagnana v virtualiziranem okolju z namenom analize kode. Preverjanje obsega:
- pridobitev imena računalnika s funkcijo GetComputerNameW;
- pridobitev enoličnega identifikatorja računalnika v ključu registra HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\MachineGuid;
- s funkcijo GlobalMemoryStatusEx preveri stanje pomnilnika; virtualni sistemi za analizo škodljive kode imajo običajno dodeljeno manjšo količino pomnilnika;
- preveri velikost nameščenega diska z izrabo funkcije GetDiskFreeSpaceExW (tudi tu velja podobno, kot pri pomnilniku);
- preveri vrsto omrežnega vmesnika s funkcijo GetAdaptersAddresses; preverja, ali gre za uporabo virtualnega omrežnega vmesnika;
- preveri javni IP naslov sistema in iz naslovnega prostora katere države naj bi ta izhajal preko HTTP GET zahteve na http://ipinfo.io/ip, http://ipinfo.io/country in http://checkip.amazonaws.com;
- za pridobljen IP naslov preveri ali se sistem morebiti nahaja za proxy strežnikom https://proxycheck.io/v2/”IP_naslov”?vpn=1&asn=1;
- preveri, ali tečejo procesi orodij, ki se uporabljajo za analizo kode (Win32_Process), kot so npr. razhroščevalniki (debugger), verzijo BIOS-a (spet za zaznavo vizualiziranega okolja), verzijo operacijskega sistema in ime aktivnega uporabniškega računa (Win32_OperatingSystem)
- preveri uporabo virtualizacijskih orodij s funkcijo WNetGetProviderNameW in neposredno s pregledom za prisotnostjo ključev registra HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\VMware, Inc. in HKEY_LOCAL_MACHINE\SOFTWARE\VMware, Inc.
- preveri prisotnost protivirusne zaščite s poizvedbo “AntivirusProduct”, aktivnega požarnega zidu s poizvedbo “FirewallProduct” ter drugih varnostnih orodij s poizvedbo “AntiSpyWare”
2. korak – priprava okolja
Če so preverjanja iz prvega koraka pokazala, da je okolje ustrezno (da torej ni zagnano v analitičnem okolju), na podlagi prej pridobljenih podatkov zaustavi nameščeno protivirusno zaščito s spremembo vrednosti “DisableAntiSpyware” v ključu registra HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\
3. korak – okužba
Prične se okužba sistema, pri čemer se škodljivi tovor (payload) prenese iz oddaljene lokacije, ter zapiše na pot “C:\Program Files (x86)\VR\Versium Research\”. V primeru osnovne datoteke, ki je bila na voljo za prenos preko protokola BitTorrent, gre torej za t.i. downloader. Pričakovano je bilo, da bomo zaznali ustrezne vnose v načrtovalnik opravil (Task Scheduler) ali register, ki bi zagotavljali, da se zlonamerna koda izvede po vsakem zagonu sistema (persistence mechanism), vendar tega nismo potrdili – razlog je opisan v naslednjem koraku.
4. korak – delovanje škodljive kode
Izvede se preverjanje nameščene programske opreme preko ključev registra HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\. Primer preverjanja nameščenih spletnih brskalnikov:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Microsoft Edge\DisplayName
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Google Chrome\DisplayName
Ugotovljene zmogljivosti škodljive kode so:
- iz spletnih brskalnikov pridobi gesla, zgodovino brskanja, piškotke, AutoFill podatke, zgodovino prenosov (podprt je velik nabor spletnih brskalnikov pri čemer Tor brskalnik ni izjema);
- kraja podatkov iz programske opreme za 2FA; targetira specifično Authy (https://authy.com);
- kraja sporočil iz odjemalcev el. pošte in programske opreme za hipno sporočanje (npr. Pidgin, Telegram, Thunderbird, Outlook);
- kraja datotek iz map, npr. %APPDATA%, %DESKTOP%, %DOCUMENTS%, %USERPROFILE% … (podatke o ciljani mapi prejme s strani nadzornega C2 sistema);
- zajem zaslonske slike;
- kraja sredstev iz kripto denarnic (Bitcoin, DashCore, Electron Cash, ElectrumLTC, Litecoin …)
V tretjem koraku pričakovani vnosi za vsakokratni zagon kode (persistence mechanism) pa so se izkazali kot nepotrebni, saj se okužba po zaključeni akciji pridobivanja želenih podatkov in pošiljanju teh na nadzorni C2 strežnik iz sistema samodejno odstrani. V opisanem primeru gre za okužbo z Vidar Information Stealerjem. Ta je na črnem trgu na voljo za 450$.
Za vse, ki vas zanima pravni vidik uporabe zlonamerne kode za okužbo tujega računalnika: kazniva dejanja opisujeta 221. in 306. člen Kazenskega zakonika RS.
5. korak – po okužbi
Kot smo zapisali, se po zaključenih aktivnostih omenjena okužba odstrani iz sistema. Ali to pomeni, da smo sicer izgubili pomembne in občutljive podatke, ampak sistem ni več žrtev okužbe? Ne zares. Nadaljnja analiza je namreč pokazala, da se je po prvotni namestitvi Vidar kradljivca, na sistem namestila še vrsta druge škodljive kode, med katerimi smo našli SmokeLoader stranska vrata ter drugo vohunsko (spyware) in nadležno oglasno (adware) programsko opremo. Skupno se je na sistem preneslo in zagnalo 13 (trinajst) škodljivih izvršljivih binarnih datotek.
Zaključek
Opisani primera obravnavanega incidenta na SI-CERT je izredno bogat z vidika vse škodljive kode, ki se hkrati namesti na okužen sistem. Njena skupna moč je lahko že kar strašljiva zaradi vseh funkcionalnosti, od kraje vseh podatkov, kriptovalut in popolnega nadzora nad okuženim računalnikom. Zato z razlogom poudarjamo, da je potrebno programsko opremo pridobivati zgolj iz preverjenih in zaupanja vrednih virov.
Zgoščene vrednosti nameščenih datotek
filename: 2875050.exe md5: 73c9840752c1afb04f1f6f40f73dcde2 sha1: d9c718e081e54f20e69a7edea96ff1df225798a1 sha256: 7bf53007e6bf58d584796c965980ead8537b70f77d264d10c9933f944921f1ee ssdeep: 384:4NoY4GKSoIvvrbOqMBl9ylqgxKaIhJH4UVsqB0Kiy7Lxm+pD11cL7Gl9rvluHuWg:2oIbbJMCgaRtT+7lMU9rgHuWHA imphash: f34d5f2d4577ed6d9ceec516c1f5a744 filename: 2904437.exe md5: 22e60a4d7f2b078a218220796d19bb6c sha1: b9a761faf8d97638ff26429875099725200dda92 sha256: 15ef7981d49e212d6f204e3a20eb3eff92653e73c5337579169e89338562b648 ssdeep: 12288:smH0Aa5NOY01bXZEheYnaClPyTL07AMnlI9FmGObVsEOrmudCsMZb+ltuUzSZN:da5wkYTL0fI9Fs7OJyctuUzSP imphash: f34d5f2d4577ed6d9ceec516c1f5a744 filename: 3398943.exe md5: 803bced876858aa2ddf93be565840493 sha1: 47ac7e5af302db0ef9a5b4bd5b6a07e395fbc2be sha256: a49a7877b5eab5184ed242e006e2facd4eea7332e3afa87748f384d2f6581280 ssdeep: 3072:qcOPUk7kkF9kfPpLUvkgKtEejYLgwZLvoJq8lN:zEgkF9ARQvk9tohxt8z imphash: f34d5f2d4577ed6d9ceec516c1f5a744 filename: 5291591.exe md5: afb7dc87e6208b5747af8e7ab95f28bf sha1: af2e35b042efcc0c47d31e1747baca34e24a68c1 sha256: a58c95de92eefb42ccff366ae9381c638d425673bd2860256b8263ef7a5609f1 ssdeep: 1536:J95Vd7igCWzx8C0uI5RtZa7lNw7ULPVS1DWbx6u993uUrm0us7kxPa0d8/gt:5ugCa0L33aSnZWFlaaq8It imphash: f34d5f2d4577ed6d9ceec516c1f5a744 filename: jg7_7wjg.exe md5: 25d9f83dc738b4894cf159c6a9754e40 sha1: 152a0e0a8319c8d6bfbe6ae71ae5dda5cba2caca sha256: 8216cf00254d2febdfa67014d7265e008a6f485724c68579c5921f91a0069135 ssdeep: 24576:l2ZxPWAQDkjYKzy2Kqj4RJ2a8cpcf0n/tPAK/+/uBBqtpyLAH3gmrIc5DdKT:l2Fok9y4InB2fYthqtpybmMcDdK imphash: 5d896d72d54d52c501304d9a20fae36f filename: BarSetpFile.exe md5: 7ae9ad9f2524280cf278aa57de6a5c4a sha1: 7fed51d1266dd1ef65b21d0489e0f70031a3871c sha256: 5a114d658820b9b129aa530d8c1ae163dd96e438b73f4662f23bf26d2a2112dd ssdeep: 3072:dsg/dj+9E8w0sxgG0bZrREPEZ4QTXlkfk:ig/djl8wJxgG0bBm6g imphash: f34d5f2d4577ed6d9ceec516c1f5a744 filename: guihuali-game.exe md5: 0dfc2ce0cb243c3ef8abf3f663960c20 sha1: d5d67c97236b4eb0b9d0f4aad312e0d96fce471e sha256: 92d32e77c6779241c1a2d63f6ecb9fa491759c97fb946c2a3898b94d9b7f5a54 ssdeep: 12288:ZjpSgm/s1IyCliC8qGT4znWHrfU4w+s31Ui2IRaboDMYU:zm/s1dC028c4dsyvILI imphash: 51a23103d09c7ff7c83045e21738bf24 filename: jg7_7wjg.exe md5: 25d9f83dc738b4894cf159c6a9754e40 sha1: 152a0e0a8319c8d6bfbe6ae71ae5dda5cba2caca sha256: 8216cf00254d2febdfa67014d7265e008a6f485724c68579c5921f91a0069135 ssdeep: 24576:l2ZxPWAQDkjYKzy2Kqj4RJ2a8cpcf0n/tPAK/+/uBBqtpyLAH3gmrIc5DdKT:l2Fok9y4InB2fYthqtpybmMcDdK imphash: 5d896d72d54d52c501304d9a20fae36f filename: lylal220.exe md5: c48d87153a106d0ce7e7b77464c27c41 sha1: cb5431175d7d94fde7bfb29e705a2d7d540fbc53 sha256: 7d70e071484c5cb607127addf1d6974e07f011dfd69ce05c3aadc361d0f3c08e ssdeep: 6144:d/QiQXCM055m+ksmpk3U9j0IAsoxvjFEOTb9WmZX/8shzdsY4CpHPhnfPHqCp:VQi3M05c6m6UR0IAp1hf39Wkv8xwJXqS imphash: 884310b1928934402ea6fec1dbd3cf5e filename: dp81GdX0OrCQ.exe md5: 96f0b4b4cbfd1c0a79574786b00f6479 sha1: e88c36986166d1aade287325d2a95dc5954b3ccc sha256: 63f7229ebbd45b333527a3ad3cf204c0521065a877d46be7f19626bbc92e8ef2 ssdeep: 6144:gAB7wwiYRdwNOsoa2UMSmNMrgtESuiu9TOw29pbTEPQOugKd5bUjpk1isAm8hQ6:xwwiYPGt2AU6S7B/9pbYzRu5bYk1y imphash: f34d5f2d4577ed6d9ceec516c1f5a744 filename: hjjgaa.exe md5: 0a427bb1c7e314e0225d73690ae697ee sha1: 34e83125b0a48abebd6ebc1292b5baa0a697c846 sha256: 0d0f05d54c10ee2c1dad908972bbec3427ebbe2c15d2e73ad1c1aed9572eb93c ssdeep: 98304:KxWjeHbuYsXlRArFKac1Ogf9H70WTTEa:KxW0K5XltacJPEa imphash: caea2269e89f6a35f79be57ce7bd8282 filename: LabPicV3.exe md5: 35d91d23b766f5d4d3a5efd56fbb9377 sha1: 03470314142f242aa3bbae6b1c9a40cdc0fa568c sha256: b438f14caf213b21e83090c383eb191a0c79796ee86b4883981b5253acf7ba46 ssdeep: 12288:VQi3Cv6m6URA3PhNp1hf39Wkv8xwJOQCr:VQiSChhNpdUMOQ0 imphash: 884310b1928934402ea6fec1dbd3cf5e filename: RunWW.exe md5: 41b56fc9c42da3c80a1bb8a7513c1850 sha1: b0d219a6c445cac068fbf25b8777119d6d91c0c5 sha256: 0694eaeb1a47ccc639703de35f2f1480f22ef1fc5e830377bfe280246d3a7872 ssdeep: 12288:Jhj+yKK/L1yzhVuAKZzKidzxR0FwZrBT:jayf5yzI5dFR0FwRB imphash: 4cb9d63f797831e593075010586be1d1