U ovom radu je dan kratki pregled povijesnog razvoja ransomware-a te je objašnjeno koja je osnovna ideja. Nabrojane su i ukratko opisane tri velike skupine ransomware-a (scareware, screen locker i encrypting ransomware), načini njihovog širenja i opasnost za žrtvu i datoteke. Detaljnije je opisan Phobos ransomware koji se pojavio krajem 2018. godine, a koji se najviše širi zahvaljujući sigurnosnim propustim RDP-a. Opisan je uz pomoć analize koju je proveo MalwareBytes kako bi se dao uvid u princip enkripcije i rada Phobos-a. Nakon toga je opisana vlastita provedena simulacija u VirtualBox-u na operacijskom sustavu Windows 10 gdje je sustav zaražen Phobos ransomware-om. Uz pomoć alata Everything praćene su promjene na datotekama kao što je ime, brisanje pričuvnih kopija i vremena u kojem se enkripcija događala. Uz pomoć Task managera su praćene dretve koje otvara i kada se pokreće te što se događa nakon završetka enkripcije te nakon ponovnog pokretanja sustava. Krajnji rezultat su enkriptirane datoteke koje imaju novo ime koje sadrži ime originale datoteke, ID napadača i mail adresu te novu ekstenziju .phobos. Otkrivene su specifičnosti u enkriptiranim datotekama ovisno o veličini i vremenu kad su enkriptirane. Simulacija je uspoređena s primjerom iz literature te su otkrivene određene specifičnosti koje imaju različite verzije Phobos-a kao što je ekstenzija, završna ključna riječ i općenito izvođenje.
Ključne riječi: ransomware; Phobos; simulacija; analiza; RDP; malware
Ransom malware odnosno skraćeno ransomware je zloćudni program koji spada u kategoriju kriptovirologije. Ime mu potječe od engleske riječi ransom koja u prijevodu znači otkupnina. Osnovna ideja svakog ransomware-a je ucijeniti žrtvu i tražiti otkupninu na način da blokira korisniku pristup podacima ili općenito rad na računalu, kriptira podatke ili prijeti javnim objavljivanjem povjerljivih podataka. Napadač najčešće traži otkupninu od nekoliko stotina do nekoliko tisuća dolara i na neki način prikaže korisniku upute za sigurno i anonimno plaćanje. Najčešći način plaćanja su digitalne valute (npr. Bitcoin, UKash) što pronalaženje napadača čini još težim. Ransomware najčešće napada računala u manjim, srednjim i velikim poduzećima i organizacijama jer su njima podaci najčešće potrebni u kratkom roku i spremni su platiti koliko napadač traži. Iako većina napadača nakon plaćanja otkupnine omogućava korisniku normalan rad na računalu i pristup podacima, ne postoji garancija za to stoga je najbolje zaštititi se prije nego što dođe do napada. Različite vrste ransomware-a do korisnika dolaze na različite načine od jednostavnijih koji se šire putem elektroničke pošte ili društvenih mreža gdje korisnik preuzima datoteku u kojoj je skriven zloćudni program, do naprednih gdje se prijenos između računala odvija bez interakcije korisnika.
U ovom radu su ukratko opisane vrste i povijest ransomware-a, a detaljnije je opisan Phobos ransomware, koji kriptira žrtvine datoteke. Navedeni su načini na koje ransomware dolazi do žrtvinog računala i koje korake poduzima te je provedena simulacija napada i analiza u virtualnom okruženju na operacijskom sustavu Windows 10.
Prvi ransomware napad zabilježen je 1989. godine i bio je usmjeren na zdravstvo. Poznat je pod nazivom AIDS Trojan ili PC Cyborg, a proširen je preko 20 tisuća disketa koje su sadržavale upitnik s programom koji je procijenio rizik od dobivanja AIDS-a, ali i zloćudni program koji je nakon 90 ciklusa paljenja i gašenja računala blokirao pristup C disku na računalu. Za otključavanje pristupa trebalo je platiti 189 dolara. U sljedećem desetljeću je razvijeno nekoliko sličnih ransomware-a, no ozbiljnija prijetnja je stigla 2004. godine.
Tada je započelo širenje ransomware-a preko interneta, a prvi takav je bio GPCoder Trojan koji je enkriptirao različite datoteke na Windows-u. Koristio je RSA-1024 algoritam za enkripciju datoteka i originalne datoteke je brisao iz memorije, a pohranjivao enkriptirane kopije. Nakon toga se pojavljuje tekstualna datoteka na radnoj površini koja sadrži poruku o otkupnini (ransom note). U slično vrijeme pojavio se i Archievus koji također RSA-1024 algoritmom enkriptira sve datoteke u mapi 'My Documents'. Korisnik je i dalje mogao koristiti računalo, a nakon plaćanja otkupnine se unosi 30-znamenkasti na web stranicu na koju upućuje ransom note. Iako je enkriptirane datoteke bilo gotovo nemoguće otključati bez plaćanja, navedeni ransomware-i su bili vrlo lako otkriveni i blokirani od strane antivirusnih programa pa zarada napadača nije bila velika.
Prve promjene su se dogodile 2009. kada je virus Vundo počeo enkriptirati poneke datoteke i naplaćivati njihovo otključavanje. Razvoj anonimnih online plaćanja je omogućio širenje ransomware-a na širu populaciju kao i napredak samog softvera. U 2012. je crno tržište ransomware-a vrijedilo preko 5 milijuna dolara. U 2011. godini se pojavljuje i nova vrsta ransomware-a The WinLock Trojan odnosno Locker. Njegov cilj nije bio enkriptirati datoteke već onemogućiti žrtvi prijavu u sustav. Nakon toga je započeo trend imitacije stvarnih softvera, npr. lažni Windows Product Activation system koji je zahtijevao poziv na broj koji je žrtvi značajno naplaćen. Slična ideja kao što je imitacija softvera počela se širiti pornografskim stranicama, servisima za dijeljenje datoteka i sličnim platformama koje su nedopuštene ili se smatraju sramotnima. Takav program bi zaključao uređaj i predstavljao se kao policija ili sudstvo te imao potraživanja od žrtve. Jedan od najpoznatijih je Reveton koji se predstavljao kao FBI i tražio 200 dolara od žrtve.
Pojavom CryptoLocker-a nastavlja se razvoj u smjeru enkripcije. Napadač nije više prevarom pokušao iznuditi novac već je enkripcija bila stvarna i poruka programa sadržavala je upozorenje da će u roku od 3 dana enkriptirane datoteke biti izbrisane. Koristili su skrivene Tor mreže i 2048-RSA algoritam. 2014. su se pojavili prvi ransomware-i za Android OS, a 2016. i za MacOS.
Od 2016. godine događa se veliki razvoj ransomware-a koji su počeli koristiti replicirane ključeve registra kako bi se kod reboot-a zloćudni program ponovno pokrenuo što je predstavljalo veću mogućnost za enkripciju (ako primjerice treba Internet za dohvaćanje ključa).
U 2017. godini se pojavljuju WannaCry i Petya koji su koristili sigurnosne propuste na računalima i širili su se mrežom kao worm. Phobos ransomware, koji je obrađen u ovom radu pojavljuje se krajem 2018. godine i za širenje koristi također sigurnosne propuste računala i operacijskih sustava.
Općenito ransomware-e možemo podijeliti u 3 osnovne skupine, a to su scareware, screen lockers i encrypting ransomware (poredani prema opasnosti za žrtvu i podatke):
Scareware je najmanje opasna vrsta zloćudnog programa. Uključuje lažne sigurnosne programe i lažnu tehničku podršku. Njegov se rad temelji na obavještavanju (zastrašivanju) korisnika kako su otkriveni zloćudni programi na računalu i kako je potrebno platiti određeni iznos kako bi ih uklonili. Ako žrtva ne plati iznos koji mu je prikazan, program će nastavljati sa istim obavijestima (ponekad i ako plati), no sve datoteke su sigurne i omogućen je rad na računalu. Ovakve prijetnje se lako otkrivaju i otklanjaju antivirusnim programima.
Screen locker je vrsta ransomware-a koja u potpunosti onemogućava žrtvi korištenje računala. Prilikom pokretanja pojavljuje se prikaz na cijelom ekranu koji često sadrži lažno predstavljanje u ime policije i ostalih sigurnosnih službi te se žrtvi pokušava naplatiti lažna kazna za neku nedopuštenu radnju ili sadržaj na internetu. Oporavljanje sustava (System restore) ili ponovna instalacija Windowsa sa CD-a ili USB-a otklanja navedeni problem i većina podataka ostaje sačuvana, a korisnik bez plaćanja može nastaviti koristiti računalo.
Encrypting ransomware je posljednja skupina koja enkriptira određene datoteke na žrtvinom računalu i zahtijeva otkupninu kako bi se otključale te datoteke. Ovo je najopasnija vrsta jer jednom enkriptirani podaci teško mogu biti otključani i vraćeni (osim plaćanja). Postoje softveri koji omogućuju djelomično otključavanje no podatke zaključane najnaprednijim ransomware-ima je gotovo nemoguće otključati. U ovu skupinu pripada Phobos ransomware.
U ovom poglavlju je opisan način rada Phobos-a i analiza na primjeru MalwareBytes-a (iz tog izvora su preuzete sve slike u ovom poglavlju), dok je u idućem poglavlju opisano ponašanje programa prema vlastitoj provedenoj simulaciji. Phobos ransomware se pojavio krajem 2018. godine, a smatra se da je 8.9% svih ransomware napada u 2019. godini činio Phobos (na slici ispod). Zabilježeno je nekoliko napada Phobos-a koji nakon plaćanja otkupnine nisu otključali datoteke.
Širi se preko Remote Desktop protokola (RDP) kao i mnogi drugi ransomware-i. RDP služi za udaljeni pristup i upravljanje računalom, koristi portove TCP 3389 i UDP 3389 i kada je napadač spojen žrtva ne može to primijetiti. RDP je česti ulazni vektor za zloćudne programe jer ima značajne sigurnosne propuste. Postoji nekoliko načina na koje napadači ulaze u računala pomoću RDP-a: • Skeniranjem portova i brute-force-om pristupnih podataka sa stranica kao što je Shodan • Kupnjom već ukradenih pristupnih podataka na crnom tržištu (xDedic) • Phishing-om jednog korisnika u mreži s ciljem dobivanja pristupa, a zatim brute-force-om pristupnih podataka širenjem na ostala računala u mreži (što je posebno zanimljivo napadačima na tvrtke i organizacije čije lokalne mreže sadrže mnogo računala)
Što je pri prvom pokretanju vidljivo je da Phobos ne koristi nikakve tehnike zaobilaženja UAC (User Account Control) i pri ručnom pokretanju se otvara UAC potvrda.
U slučaju prihvaćanja Phobos stvara svoju kopiju koja ima povećane privilegije, ali i izvršava neke komande putem CMD-a.
Po završetku kriptiranja pojavljuju se dvije poruke, jedna kao tekstualna datoteka, a druga ekstenzije .hte.
Nakon završetka kriptiranja i pojave inicijalne poruke, ransomware nastavlja raditi u pozadini i kriptirati novonastale datoteke. Osim toga koristi razne metode koje mu omogućuju uspješnost napada, dodaje ključ registra kako bi se kod ponovnog pokretanja kriptiranje nastavilo i instalira se u startup direktoriju.
Ono što se analizama pokazalo o Phobos-u jest da može raditi bez internetske veze što znači da enkripcijski ključ ne dohvaća dinamički već je on upisan u izvršnoj datoteci. Svaka datoteka je enkriptirana individualnim ključem ili pak pomoću inicijalizacijskog vektora (gdje isti tekst rezultira različitom šifrom). Nakon kriptiranja imenu datoteke se dodaje jedinstveni identifikacijski broj žrtve, ID verzije, email adresa napadača i nova ekstenzija koja može biti različita u ovisnosti o verziji Phobosa. Općeniti naziv nakon kriptiranja je <original name>.id[<victim ID>-<version ID>][<attacker's e-mail>].<added extention> Enkriptirane datoteke na početku sadrže 16 bajtova (što se pretpostavlja da bi mogao biti inicijalizacijski vektor) koji su jedinstveni za svaku datoteku. Prije kraja datoteke nulama je odvojeno 128 bajtova za koje se pretpostavlja da sadrže enkripcijski ključ jer su jednaki za sve kriptirane datoteke. Zadnjih 6 bajtova sadrži ključnu riječ koja se također javlja u svakoj datoteci (LOCK96).
Kod Phobosa nije zaštićen ni maskiran pa je otkriveno kako program otvara nekoliko dretvi koji služe za gašenje određenih procesa, izvršavanje komandi iz CMD-a i kriptiranje diska, ali i mrežno podijeljenih datoteka. Phobos prije enkripcije provjerava sve datoteke i određuje koje treba enkriptirati.
Iako kod nije zaštićen, neke konstante (npr. String) su enkriptirane i otključavaju se kada je potrebno. Otključavanjem tih stringovama otkrivena je lista koja vjerojatno sadrži ekstenzije koje koriste različite vrste Phobosa (npr. acute, banta, phobos itd.). Osim toga u stringovima je moguće pronaći i formulu prema kojoj se imenuju datoteke nakon kriptiranja: UNICODE “.id[<unique ID>-1096].[lockhelp@qq.com].acute”.
Moguće je pronaći popis procesa koje Phobos gasi kako mu ne bi blokirali pristup datotekama, a popis je sljedeći:
msftesql.exe sqlagent.exe sqlbrowser.exe sqlservr.exe sqlwriter.exe oracle.exe ocssd.exe dbsnmp.exe synctime.exe agntsvc.exe mydesktopqos.exe isqlplussvc.exe xfssvccon.exe mydesktopservice.exe ocautoupds.exe agntsvc.exe agntsvc.exe agntsvc.exe encsvc.exe firefoxconfig.exe tbirdconfig.exe ocomm.exe mysqld.exe mysqld-nt.exe mysqld-opt.exe dbeng50.exe sqbcoreservice.exe excel.exe infopath.exe msaccess.exe mspub.exe onenote.exe outlook.exe powerpnt.exe steam.exe thebat.exe thebat64.exe thunderbird.exe visio.exe winword.exe wordpad.exe
Phobos sprječava oporavak datoteka tako da nakon kriptiranja briše sve prethodne verzije datoteke (shadow copy), sprječava boot u načinu za oporavak (recovery mode), isključuje firewall i briše kataloge sigurnosnih kopija.
Popis ekstenzija koje Phobos napada: 1cd 3ds 3fr 3g2 3gp 7z accda accdb accdc accde accdt accdw adb adp ai ai3 ai4 ai5 ai6 ai7 ai8 anim arw as asa asc ascx asm asmx asp aspx asr asx avi avs backup bak bay bd bin bmp bz2 c cdr cer cf cfc cfm cfml cfu chm cin class clx config cpp cr2 crt crw cs css csv cub dae dat db dbf dbx dc3 dcm dcr der dib dic dif divx djvu dng doc docm docx dot dotm dotx dpx dqy dsn dt dtd dwg dwt dx dxf edml efd elf emf emz epf eps epsf epsp erf exr f4v fido flm flv frm fxg geo gif grs gz h hdr hpp hta htc htm html icb ics iff inc indd ini iqy j2c j2k java jp2 jpc jpe jpeg jpf jpg jpx js jsf json jsp kdc kmz kwm lasso lbi lgf lgp log m1v m4a m4v max md mda mdb mde mdf mdw mef mft mfw mht mhtml mka mkidx mkv mos mov mp3 mp4 mpeg mpg mpv mrw msg mxl myd myi nef nrw obj odb odc odm odp ods oft one onepkg onetoc2 opt oqy orf p12 p7b p7c pam pbm pct pcx pdd pdf pdp pef pem pff pfm pfx pgm php php3 php4 php5 phtml pict pl pls pm png pnm pot potm potx ppa ppam ppm pps ppsm ppt pptm pptx prn ps psb psd pst ptx pub pwm pxr py qt r3d raf rar raw rdf rgbe rle rqy rss rtf rw2 rwl safe sct sdpx shtm shtml slk sln sql sr2 srf srw ssi st stm svg svgz swf tab tar tbb tbi tbk tdi tga thmx tif tiff tld torrent tpl txt u3d udl uxdc vb vbs vcs vda vdr vdw vdx vrp vsd vss vst vsw vsx vtm vtml vtx wb2 wav wbm wbmp wim wmf wml wmv wpd wps x3f xl xla xlam xlk xlm xls xlsb xlsm xlsx xlt xltm xltx xlw xml xps xsd xsf xsl xslt xsn xtp xtp2 xyze xz zip.
Postoji i popis datoteka koje se ne kriptiraju a to su:
i općenito direktorij C:/Windows, odnosne one koje daju ransom note i one koje su neophodne za rad sustava.
Otkriveno je kako datoteke veće od 2 MB nisu u potpunosti enkripritane već samo dijelovi. Detaljnja dubinska analiza enkripcije izlazi iz okvira ovoga rada, a potrebno je napomenuti kako Phobos koristi WindowsCrypto API za kriptiranje datoteka te AES algoritam. Sve datoteke su enkriptirane istim AES ključem koji se generira neposredno prije pokretanja dretve za enkripciju. Neposredno prije otvaranja datoteke koja će se enkriptirati se generira inicijalizacijski vektor koji je jedinstven za svaku datoteku (16 bajta). Osim sadržaja datoteke Phobos enkriptira i metapodatke.
Provedena je simulacija u virtualnom okruženju na operacijskom sustavu Windows 10 Enterprise. U softveru Everything koji služi za pregled datoteka je praćeno stanje i promjene u datotekama (odabran je način prikaza Preview koji automatski ažurira popis u stvarnom vremenu). Preuzet je primjer čija je izvršna datoteka imena system_1.exe. Prije početka simulacije napada preuzeto je ili stvoreno nekoliko datoteka koje će se proučavati kad napad završi. Tako je odabrana .bmp datoteka, jedna prazna tekstualna datoteka od 10 MB, .pdf datoteka i kratka tekstualna datoteka.
Pri ručnom pokretanju ransomware-a javlja se UAC potvrdni prozor što potvrđuje da Phobos ne koristi tehnike zaobilaženja UAC.
Potvrdom na navedenom prozoru u 1:34 se pokreće izvršna datoteka i otvara se prozor prikazan niže na slici.
Kao i u primjeru u prethodnom poglavlju vidljivo je da program stvara svoju kopiju (koja ima veće ovlasti) i izvršava neke komande kroz CMD (na slici ispod).
Pokrenuti zloćudni proces ima PID 952 (slika ispod).
Nakon nekoliko minuta (u 1:36) komandni prozor se zatvara, a proces prelazi u pozadinske procese i tada započinje kriptiranje. Tijekom enkripcije isključena je internetska veza i proces je nastavio s enkripcijom što dovodi do zaključka kako je enkripcijski ključ upisan u izvršnu datoteku (uspješan napad je bio i bez internetske veze od samog početka).
Prva datoteka je kriptirana u 1:37 i to je bila stoppedEvent.js.
Kada kriptiranje završava (u 2:11) otvara se .hte datoteka s porukom o napadaču i detaljima o uplati koju je potrebno ispuniti kako bi se datoteke otključale te obavijest kako je potrebno skinuti Jabber client. Osim .hte datoteke na desktopu se javlja Encrypted.txt datoteka koja sadrži iste informacije. Datoteke su prikazane na slikama niže.
Kada proces jednom izbaci inicijalnu poruku nastavlja se izvršavati u pozadini, no nije zamijećeno da on nastavlja s kriptiranjem sljedećih nekoliko sati. U ovoj varijanti Phobos-a pri ponovnom pokretanju ne dolazi do pokretanja ransomware-a što znači da nije upisan u startup te ga to razlikuje od primjera u prethodnom poglavlju. Prilikom prisilnog zaustavljanja i ponovnog pokretanja izvršne datoteke enkripcija završava puno brže jer program prepoznaje datoteke koje su već enkriptirane Phobos-om i preskače ih.
Phobos kriptiranim datotekama dodaje ekstenziju .phobos, a osim toga novo ime se sastoji od originalnog naziva datoteke i ekstenzije, ključne riječi ID i identifikacijskog broja programa te mail adrese napadača (vidljivo na slici niže). Ukoliko pogledamo unutar datoteka vidjet ćemo kako sve kriptirane datoteke u istom pokretanju ransomware-a sadrže identičan zadnji 141 bajt. Od toga su 3 null bajta koja odvajaju kriptiranu poruku od tog završnog dijela, 129 bajta koji vjerojatno sadrže enkripcijski ključ i odvojena su s 3 null bajta od završne ključne riječi od 6 bajta koja za ovaj primjer Phobosa glasi SKYS28 (na slici niže). Također pri višestrukom pokretanju Phobos-a, dio koji sadrži enkripcijski ključ se mijenja, ali sve datoteke enkriptirane u istom izvršavanju imaju taj dio identičan.
Datoteke veće od 2 MB se ne kriptiraju cijele već samo djelomično pa u njima imamo dijelove koji nisu kriptirani već su sadržaj originalne datoteke. Vidljivo kako nule od početka i dalje ostaju nule u dijelovima datoteke.
Također, takve velike datoteke imaju 4 bajta koja odvajaju ključnu riječ (SKYS28) različite od null što ih razlikuje od manjih datoteka.
Ransomware-i su zloćudni programi koji predstavljaju jednu od najvećih prijeti računalnoj sigurnosti i podacima. Njihov je cilj ucijeniti ili prijetiti žrtvi i na taj način ostvariti financijsku korist. Phobos ransomware, koji je obrađen u ovom radu, pripada u skupinu enkriptirajućih ransomware-a. Phobos pokretanjem na računalu enkriptira određene datoteke (sve koje nisu neophodne za rad sustava) i žrtvi prikaže ransom note u kojem je obavijest o enkripciji, podaci o napadaču i upute za plaćanje. Phobos je specifičan jer može raditi bez internetske veze što ukazuje da je enkripcijski ključ upisan u izvršnoj datoteci. Postoji više različitih verzija Phobosa koje imaju svoje specifičnosti što je potvrđeno usporedbom provedene simulacije s primjerom MalwareBytes-a. Simulacija je provedena u virtualnom okruženju na operacijskom sustavu Windows 10. Pokretanjem Phobosa otvara se nekoliko dretvi koje imaju zadaću da enkripcija uspije (da ne bude spriječena). Nakon 10-ak sekundi Phobos postaje pozadinski proces i enkriptira datoteke. Enkriptirane datoteke imaju novi naziv te ekstenziju .phobos. Enkripcija je trajala nešto više od 30 minuta te je nakon toga prikazana ransom note. Phobos se nastavio izvoditi u pozadini no nije uočeno da nastavlja s kriptiranjem, kao ni pri ponovnom pokretanju sustava. Novo pokretanje ransomware-a rezultira kriptiranjem nekriptiranih datoteka (kriptirane se preskaču) i novom ransom note. Phobos je vrlo opasan ransomware te je otključavanje datoteka bez plaćanja gotovo nemoguće. Kako bi se zaštitili od Phobos-a potrebno je često raditi pričuvne kopije na vanjskom disku ili udaljenom serveru i održavati računalo sigurnim.
[1] Ransomware - Wikipedia, https://en.wikipedia.org/wiki/Ransomware, pristupljeno 6.1.2020.
[2] Ransomware - MalwareBytesLabs, https://www.malwarebytes.com/ransomware/, pristupljeno 6.1.2020.
[3] Ransomware explained: How it works and how to remove it - Josh Fruhlingen, CSO, https://www.csoonline.com/article/3236183, pristupljeno 6.1.2020.
[4] A History of the Ransomware Threat: Past, Present and Future - VPNMentor, https://www.vpnmentor.com/blog/history-ransomware-threat-past-present-and-future/, pristupljeno 6.1.2020.
[5] A deep dive into Phobos ransomware - MalwareBytes, https://blog.malwarebytes.com/threat-analysis/2019/07/a-deep-dive-into-phobos-ransomware/, pristupljeno 6.1.2020.
[6] Phobos ransomware - test findings - Temasoft, https://temasoft.com/information/ranstop-blocks-phobos-ransomware/, pristupljeno 7.1.2020.