Vijagra, magija i Pegaz - šta je zero-day exploit
Magija ipak postoji u IT svetu. Mali broj ljudi zna da je prizove i aktivira doduše. Hajde da vidim da li mogu da vam donekle dosadnu stvar, tj dosadnu ako niste iz IT-ja, približim na zanimljiv način.
Vijagra i akutni visinski otok pluća
Da bi razumeli šta je zero day exploit mislim da je najbolje krenuti od vijagre. Vijagra je ona plava tableta koju je istorijski razvio Fajzer (što bi RTS davno rekao, Pfizer) početkom 1990-ih u Engleskoj. Ideja nije bila da se sredi erektilna disfunkcija kod muškaraca, već se radilo na nekom leku koji bi pomogao kod visokog krvnog pritiska i angine pektoris, to jest bolova u grudima usled nekih srčanih problema. Dok taj tada eksperimentalni lek nije previše pomogao u lečenju problema zbog kojih je razvijan, kod muškaraca je primećena jedna neočekivana nuspojava: polni organi su iznenada i neočekivano počeli da se pridižu i ostaju u tom položaju. Zvanični sajt Vijagre nije naveo kakva je bila nuspojava kod žena, ali ono što su ukapirali jeste da se ovaj eksperimentalni lek može upotrebiti na totalno drugačiji način od onog koji je prvobitno zamišljen.1
Ja sam za ovo prvobitno dejstvo Vijagre saznao preko Top Gear-a kada su bili u Boliviji. Ne mogu da se setim da li je ovo bilo na B92 ili na pokojnoj Ultri, ali se sećam da su u ovoj epizodi išli putem koji je na velikoj nadmorskoj visini na Andima, i da su producenti dali Klarksonu, Meju i Hamondu Vijagru kako ne bi dobili akutni visinski otok pluća.2
Hemiju prezirem od osnovne škole i ne mogu da vam sa stručne strane ovo objasnim, ali sajt britanskog državnog zdravstva, NHS, kaže da je Vijagra bazirana na jedinjenju (ili leku, šta ga znam) Sildenafil koji kada se unese u telo širi i krvne sudove u plućima. Pored tog dejstva, ima i ono daleko poznatije dejstvo kod muškaraca.3
Sad kada ste se upoznali sa istorijom Vijagre, hajde sad da pređemo na zero-day exploit-e (ili exploit-ove).
Zero-day exploit
Zero-day exploit je neki nepoznat, neočekivan ili neobjavljen način rada nekog programa ili uređaja koji omogućava pristup osetljivim podacima, ili omogućava ponašanje za koje nekad ni originalni stvaralac tog programa ili uređaja nije znao. Termin zero-day ima neka dva porekla:
- Taj propust je oduvek bio tu, tj od nultog ili 0-day
- Imate tačno 0 dana da ga popravite, odnosno što bi se reklo, odmah morate da ga sredite
Dobro to sad, koja su ta neočekivana ponašanja i kako se mogu zloupotrebiti? Pa jedno takvo neočekivano ponašanje se desilo na parlamentarnim izborima 2003. u Belgiji, gde ste imali mogućnost da glasate i elektronskim putem. Po okončanju izbora je jedna mala stranka u jednoj izbornoj jedinici dobila tačno 4096 glasova više, što je daleko veći broj od broja kandidata koje je ta stranka imala na listi. Belgija je koristila mešoviti izborni sistem sa izbornim jedinicama i rangiranim glasanjem. Zvanično objašnjenje je bilo da se na poziciji 13 spontano stvorio bit koji je dodao 4096, jer je 2 na 12 stepen 4096 (ide se od 0, zato nije 2 na 13, već 2 na 12). Nije poznato kako se ovo desilo, ali jedna teorija je da je kosmičko zračenje nekako uspelo da stvori električni impuls koji je promenio taj bit.4
Neki drugi primer toga ide još malo nazad u prošlost, kada su neki prvi hakeri uspeli da provale telefonske mreže u SAD 1970-ih i 1980-ih, pa su zviždanjem u slušalicu uspeli da besplatno razgovaraju (tzv phreaking), ali bih ovo ipak sačuvao za neki budući video klip jer je zanimljiva tema i može se dobro ilustrovati snimkom.5
Magično ubacivanje programa
Pegaz i Zero-day exploit
Postoji nekoliko vrsta ovih exploit-ova, ali najvredniji su tzv zero-click exploit-ovi, budući da se za njihovo ubacivanje u uređaje ne zahteva korisnićka akcija poput klika, dodira ili unosa nečega. Ali ako ne radite ništa, kako onda ovo uspe da uđe u neke elektronske uređaje?
Pa najbolje je objasniti Pegaz, jedan od najpoznatijih takvih virusa. Pegaza je napravila NSO grupa iz Izraela. Prema njihovom sajtu, oni se bave isključivo bezbednošću na internetu (cybersecurity), i rade isključivo sa vladama suverenih država i njihovim službama bezbednosti. Nakon licenciranja programa nemaju uvid u njegovu upotrebu, ne skupljaju njihove podatke, niti znaju kako se taj program koristi. Tvrde da je Pegaz razvijen kako bi se razbijala enkripcija koja se može koristiti u komunikacijama između raznih terorističkih grupa i drugih ozbiljnih zločina. Zanimljivo, navodi se da je tehnološki nemoguće da program radi na teritoriji SAD-a ni na njihovom pozivnom broju +1, sem ako ga ne koristi neka američka policijska služba.6
Na svom sajtu su izbacili i da neke novinske agencije koje povremeno pišu o štetnom radu NSO-a ne mogu da razlikuju njegove alate od alata drugih takvih kompanija u praksi, i da su to samo spekulacije zasnovane na verovatnoći i posrednim protokolima, a ne na forenzici.7 Takođe su rekli da neće više da odgovaraju medijima o tom pitanju zbog toga što neke od tih napada smatraju orkestriranim od strane specijalnih interesnih grupa, koje u potpunosti zanemaruju činjenice i misiju kompanije NSO.8 Uprkos tome, američko ministarstvo za Trgovinu (Department of Commerce) je ovu grupu ubacilo na svoju crnu listu zbog zlonamernih sajber aktivnosti.9
Kako uopšte ubaciti nešto bez saglasnosti?
Tehnikalije na stranu, kako vi uopšte možete da ubacite nekome nešto a da to on ne zna? Još bolje, kako to uraditi a da korisnik uopšte ne pipne ništa kada mu ciljaju telefon?
Pa sama kompanija koja je napravila Pegaza nije dala puno informacija na svom sajtu. U jednom saopštenju su naveli da se on u uređaje ubacuje na osnovu mobilnih telefona, i da se nikako ne može ubaciti na brojeve koji dolaze iz SAD-a, odnosno sa pozivnim brojem +1.10
Međutim nakon što je WhatsApp, odnosno Meta (rođ. Facebook) koja je njegov vlasnik tužila ovu grupu, i nakon što su grupe poput CitizenLab iz Kanade i Guglov ProjectZero istražile ovo, otprilike se saznalo za jedan način kako se ovaj program može ubaciti kod korisnika bez njegove saglasnosti.
CitizenLab je ovaj exploit, odnosno zloupotrebu (ne znam baš sjajan prevod za ovo), nazvao FORCEDENTRY, i ona targetira Eplove uređaje, mada i neke verzije Androida mogu biti meta ovoga.11 Project Zero je dodatno pojasnio kako ovo radi, i dok ja sad nisam na tom nivou stručan za hardver i softver, odnosno ne bih mogao da ovo sam napravim (bar ne još :-P), evo kako sam ja razumeo njihovo objašnjenje a da vas ne smorim.12
Pegaz se ovim putem ubacuje preko SMS poruke, odnosno Eplove aplikacije iMessage tako što pošaljete GIF, što znači da vam je za napad potreban broj telefona ili AppleID korisničko ime. iMessage ima native podršku za GIF, sto znači da ne morate da instalirate neku treću aplikaciju koja bi vam to obradila i prezentovala. Epl je hteo da ima mogućnost da vam se poslati GIF stalno iznova pokreće, odnosno da radi u petlji tj loop-u.
Kako bi iMessage obradio taj GIF, on koristi CoreGraphicsAPI koji od originalnog fajla pravi kopiju u memoriji na nekoj zadatoj odredišnoj putanji uz pomoć Eplove biblioteke ImageIO. ImageIO treba da na osnovu fajla provali o kom tipu se radi, i sad vi tu pored GIF-a imate i PDF format, XML, XSL i šta sve ne, kao i neke jako egzotične i retke formate poput sada već zastarelog JBIG2.
Jedan od problema sa ovim je to što kad vi dobijete nešto sa ekstenzijom, tj završetkom .gif, uopšte ne mora da znači da ste zapravo dobili GIF, već uz to može da se nešto prošvercuje. U ovom slučaju, JBIG2 komande. JBIG2 se dekodira u segmentima, i ti segmenti sadrže komande poput "nacrtaj ovo ovde", "sad ovo iskopiraj", "dekodiraj ovo" itd. Pošto se iz izvora kopira na novu adresu u memoriji, tehnički imate prostora da nešto odradite ako program nije dobro napisan, ili ako se nešto zanemarilo ili preskočilo.
Stvar koja je ovde omogućila ubacivanje Pegaza je bio Integer overflow, odnosno prekoračenje memorije koja je predviđena za Integer. Zamislite pokazivač kilometraže od 6 cifara u automobilima. Kada on dođe na 999 999, sledeći kilometar ga prebacuje na 1 000 000, ali pošto nema prostora za tu jedinicu za milion, pokazivač pokazuje 000 000. U svetu kompjutera i telefona, ta jedinica ode "tamo negde u memoriji", i u opštem slučaju ne znate gde je.
Ono što je ovde genijalno, i istovremeno zastrašujuće što bi Project Zero rekao, je to što je taj deo programa bio javno dostupan, pa su hakeri uspeli da preko ovog integer overflow-a ubace niz instrukcija koje su menjale originalni poslat lažni GIF, u stvari JBIG2 komande, koje se posle prepisuju u memoriju uređaja. Tu sad imate drugi problem, jer često vi nemate pojma gde se tačno nalazi memorijska adresa tog prekoračenog podatka koji ste upisali.
Ali tu sad ide druga genijalnost: ekipa iza ovog programa je uspela da JBIG2 segmentne komande organizuje na takav način da vam bukvalno naprave logička kola na uređaju, a kad imate logička kola možete da napravite i neke elemente poput registara, sabirača i komparatora, a na kraju i samu virtuelnu procesorsku arhitekturu koja radi na random komadima radne memorije uređaja. Ovo je izuzetno genijalan postupak sa inženjerske strane gledano.
JBIG2 sam po sebi nema mogućnosti da bude sopstveni programski jezik, ali ako preko njega ubacite komande pomoću kojih napravite sopstveni procesor u virtuelnoj memoriji od individualnih logičkih kola i elemenata - praktično je dosta toga moguće. U ovom exploit-u, koga je Epl zakrpio u međuvremenu, su pronašli više od 70.000 segmentnih komandi koje definišu strujna kola, od kojih je bio napravljen praktično jedan procesor sa 64-bitnim sabiračem i komparatorom, koji se uz još neku logiku može upotrebiti da se pronađu random delovi programa koji su razbacani po radnoj memoriji. Na taj način vi tehnički skrpite Pegaza, i on sada radi i na vašem uređaju, a dovoljno je da primite SMS poruku koju, ako sam ovo dobro razumeo, možda ne morate ni da otvorite.
Koliko ovo košta?
Ovo definitivno nije jeftina stvar, a pošto mi ovaj program ne treba uopšte, nisam se ni raspitivao koliko je otprilike i da li daju pogodnosti poput plaćanja na rate ili popusta. Naravno ovakve programe verovatno nećemo kupiti vi (bar ogromna većina vas koja ovo čita) ili ja (?), već to kupuju ili prodaju neke specijalizovane organizacije poput obaveštajnih službi ili državnih vlada.
Kako bi stekli neku perspektivu oko toga kako se kreću cene ovih exploit-ova, možete pogledati Zerodium, odnosno njegov arhivirani sajt.13 Zerodium je osnovan 2015. u Vašingtonu, glavnom gradu SAD-a, i on se upravo bavio razvojem i kupovinom ovih zero-day exploit-ova. Imali su i javno objavljeni cenovnik na svom sajtu, i vi tu možete da vidite da su se cene za ovakve programe 2019. kretale od ispod 10.000 američkih dolara do najviše 2.500.000 američkih dolara. Najjeftiniji programi, odnosno exploit-ovi su bili ovi za desktop, i to nešto za na primer rutere i antiviruse, dok je do 2,5 miliona američkih dolara nuđeno upravo za nešto slično Pegazu, odnosno Zero-click exploit ali za Android.
Januara 2025. je ova kompanija ugasila svoj vebsajt. Ne znam tačan razlog, navodno nisu imali toliko novca više, mada sa ovakvim stvarima ko će znati šta se stvarno dešava.
Izvori
-
Youtube: Scaling the Guallatiri volcano | Now in Full HD | Top Gear | BBC ↑ Nazad na tekst
-
Electronic Voting Random Spontaneous Bit Inversion Explained ↑ Nazad na tekst
-
US Department of Commerce: Commerce Adds NSO Group and Other Foreign Companies to Entity List for Malicious Cyber Activities ↑ Nazad na tekst
-
NSO: Following today’s media reports, NSO Group wishes to clarify the following: ↑ Nazad na tekst
-
CitizenLab: FORCEDENTRY NSO Group iMessage Zero-Click Exploit Captured in the Wild ↑ Nazad na tekst
-
Project Zero: A deep dive into an NSO zero-click iMessage exploit: Remote Code Execution (Ian Beer, Samuel Groß, 15.12.2021) ↑ Nazad na tekst
