Milijonske luknje
V današnji programski opremi mrgoli lukenj, ki jih proizvajalci bolj ali manj uspešno krpajo. A dokler tega ne storijo – in ne morejo, dokler za luknjo sploh ne vedo –, so ranljivosti lahko vredne tudi milijone. Trg prekupčevanja z varnostnimi ranljivostmi in orodji za njihovo izrabo je od romantičnih začetkov v zadnjem desetletju zrasel v velik posel, v katerem za zaveso sodelujejo akterjih najrazličnejših namenov. Skupni jezik pa so debele denarnice.
Lanskega avgusta je doktorski študent z Georgia Institute of Technology, pred tem pa inženir v enoti za odkrivanje ranljivosti v Amazon Web Services ter ustanovitelj platforme BugPoC, Ryan Pickren, od Appla prejel 100.500 dolarjev. V računalnikih Mac je odkril hrošča pri obravnavi spletne kamere, ki je zaradi več ranljivosti v Safariju hekerjem omogočil dostop do profilov na prizadetem računalniku. Ukrasti je bilo mogoče prijavne podatke za različne profile, denimo Gmail, Facebook in Paypal, vključiti kamero in mikrofon ter vdreti v iCloud. Šlo je za UXSS (universal cross-site scripting), ki je bil izvedljiv zaradi pomanjkljive implementacije lokalnega arhiva v Safariju (webarchive), od koder brskalnik nalaga že obiskane strani. Pred javnim razkritjem ranljivosti je Applu odgovorno prijavil vse podrobnosti, zato je v okviru programa za nagrajevanje hroščev (bug bounty) prejel dotlej najvišjo nagrado.
Podobne programe prijavljanja ranljivosti ima večina proizvajalcev programske opreme, prav tako so primerljivi zneski. Včasih to vodi do nenavadnih situacij, kot je bila letos avgusta odkrita ranljivost v Chromu. Ker jo je odkrila Applova skupina SEAR (Security and Engineering Architecture), je Google dejansko Applu plačal 15.000 dolarjev, saj je Apple našel ranljivost v konkurenčnem brskalniku. Skupno je Google samo za ranljivosti v zadnji različici Chroma izplačal 123.000 dolarjev različnim prijaviteljem. Največ je dobil posameznik z vzdevkom Jerry, ki je za 43.000 dolarjev prijavil dve luknji v pogonu JavaScript V8. Na drugem mestu je bil Man Yue Mo iz GitHub Security Laba, ki je prejel 20.000 dolarjev za eno prijavo v V8.
Večjih razlik med proizvajalci ni. Ponujeni zneski segajo od nekaj tisoč dolarjev do 250.000 za res uničujoče ranljivosti v pomembnih kosih programske opreme. Sliši se veliko – in tudi je povsem spodobno –, dokler ne pogledamo z druge strani. V Applu varnostni inženirji zaslužijo od 150.000 do 250.000 dolarjev na leto, torej prijava povprečno nevarne ranljivosti prinese mesečno plačo ali dve. Podobno velja za Google. Prijav za najvišje nagrade je namreč izredno malo. Z vidika proizvajalcev programske opreme so tovrstni programi skoraj zastonj. Google je za vse prijavljene ranljivosti v zadnji različici Chroma izplačal za polovico ene letne plače nagrad. To so v multinacionalkah zaokrožitvene napake.
Ni torej težko razumeti, zakaj imajo tovrstne programe praktično vsi večji proizvajalci programske opreme. Razmerje med koristjo in stroški je tako močno nagnjeno v prvo smer, da je včasih nefleksibilnost kar težko razumeti. Ko je julija letos Applov strokovnjak Googlu prijavil pred tem neznano ranljivost v Chromu, skupaj s podrobnim opisom in z delujočim konceptom izrabe, je Google zavrnil izplačilo 10.000 dolarjev. Razlog? Prijava je bila prepozna, ker je nekdo drug že prej prijavil tega istega hrošča, četudi je jasno dopisal, da ni avtor, temveč je le slišal zanj na marčevskem tekmovanju Capture the Flag. A Google je bil neomajen in pravemu avtorju nato ni želel izplačati nič. Govorimo o manj kot mesečni plači enega inženirja.
Skromni začetki
Konec 90. let in na prelomu tisočletja, ko se je trg ranljivosti šele vzpostavljal, je bilo vstopnico moč kupiti za dobesedno 10 dolarjev. Za toliko je John Watters leta 2002 odkupil podjetje iDefense, ki je predvsem bankam prodajalo podatke o znanih ranljivostih v programski opremi. Večina teh informacij je bila brezplačno dostopna na forumih, kakršen je bil BugTraq, zato je imel iDefense obilico dolgov in finančnih težav. Podjetje sta Wattersu pomagala oživiti David Endler, ki je svoj čas delal pri NSA, in Sunil James.
Vedela sta, da hekerji širom sveta nimajo nobene resne platforme za trženje svojih odkritij. Proizvajalci programske opreme jih takrat sploh niso jemali resno, še največkrat so jim grozili s pravnimi postopki. Popravki, ki so jih proizvajalci objavljali, pa so bili često še bolj luknjičasti od prvotnih ranljivosti. Tako je iDefense začel enega prvih programov odkupa ranljivosti (bug bounty), ki so jih potem sicer predajali proizvajalcem prizadete programske opreme, a v vmesnem času so svojim strankam nudili podporo in orodja za zaščito. Leta 2003 – to je bilo še pred ustanovitvijo znamenitega Vupena – je iDefense oral ledino. Za ranljivosti so plačevali od nekaj deset do nekaj sto dolarjev. Sčasoma so si ustvarili zvest nabor hekerjev, ki so jim letno prodali več kot tisoč ranljivosti, od katerih je bila približno polovica vsaj pogojno uporabnih.
Nato pa so leta 2004 začela prihajati nespodobna povabila. Vojaški pogodbeniki (defense contractors) so povpraševali, ali bi morda iDefense v zameno za visoko plačilo kakšno ranljivost zamolčal proizvajalcem in drugim strankam ter jo prodal ekskluzivno njim. Ponujali so deset- in večkratnike zneskov, ki jih je iDefense izplačeval hekerjem. Ker bi to vplivalo na celoten poslovni model, je iDefense ponudbo večkrat zavrnil, a duh je že ušel iz steklenice. Tudi hekerji so slišali za te ponudbe in začeli zahtevati bistveno višje zneske. Leta 2005 je Watters podjetje, ki ga je kupil za 10 dolarjev, prodal Verisignu, iztržil 40 milijonov dolarjev in se umaknil. Na trg pa so tedaj že vstopili drugi igralci, denimo Vupen.
Bolj zelena trava
Septembra letos je podjetje Operation Zero iz Sankt Peterburga objavilo 20 milijonov dolarjev težko ponudbo za ranljivosti v iOS in Androidu. To je sicer zgornja meja, a tudi spodnja je visoko – 200.000 dolarjev. Zapisali so, da jih je k temu prisililo veliko povpraševanje na trgu. Odkupujejo tudi ranljivosti v drugi opremi, denimo za virtualizacijo (do milijon dolarjev), v usmerjevalnikih (do 100.000 dolarjev), strežnikih in namiznih računalnikih (do 500.000 dolarjev) itd. Končni uporabniki teh ranljivosti pa so države, ki niso članice zveze Nato. Direktor podjetja, ki je bilo ustanovljeno predlani, Sergej Zelenjuk, je ob tem dejal: »Za to ni nobenih drugih razlogov, razen očitnih.«
Zerodium odkupuje ranljivosti različnih vrst in nevarnosti.
Tako visoke cene so začasne in odsev stanja na trgu, je pojasnil. Cene nihajo skupaj s ponudbo in povpraševanjem, ki sta trenutno v velikem razkoraku. Vdirati v Android in iOS je zelo težko, hkrati pa različni državni akterji to najraje uporabljajo. Marsikateri je pripravljen plačati tudi visoko premijo za ekskluzivnost, kar dodatno napihuje cene.
Sivi trg z varnostnimi ranljivostmi cveti že dve desetletji in ne kaže znakov pešanja. Eden pionirjev na tem področju je bilo francosko podjetje Vupen, ki so ga Chaouki Bekrar in sodelavci ustanovili leta 2004. Glavne stranke so bili organi pregona, obveščevalne službe in druge državne institucije z vsega sveta. Vupen je prenehal delovati leta 2015, ko so njegovi ustanovitelji zagnali novo podjetje Zerodium, ki je bilo registrirano v ZDA.
Zerodium ima zaposlenih dva tisoč svojih raziskovalcev, hkrati pa mesečno porabi od enega do treh milijonov dolarjev za nakupe ranljivosti, ki jih odkrijejo zunanji strokovnjaki. Zerodium ima razpisane stalne programe odkupovanja hroščev, kjer je zgornji znesek 2,5 milijona dolarjev (spodnji pa 2.500), občasno pa razpiše še posebne časovno omejene akcije. Te se pojavijo za programsko opremo, ki običajno ni del njihove ponudbe, ali kadar povišajo nagrade. Trenutno imajo posebne 'akcije' za Microsoft Outlook, Mozillo Thunderbird in WordPress. Redni odkupi pa veljajo za ranljivosti pri popularnih sistemih na osebnih računalnikih, strežnikih, Androidu in iOS.
Še en igralec na tem trgu je Crowdfense iz Združenih arabskih emiratov, ki prav tako ponuja milijonske zneske. Že leta 2019 so najavili 15-milijonski sklad za odkupe, za posamezne ranljivosti pa je bilo na voljo do tri milijone dolarjev. Ponovno so najvišje ovrednoteni napadi na Android in iOS.
Ponudba Operation Zero po višini izstopa, a njihov direktor Zelenjuk meni, da ni tako nenavadna. Prepričan je, da je tudi konkurenca povišala odkupne cene, a svojih javno objavljenih cenikov še ni posodobila. Ti so bolj okvirni, končne cene pa so vedno rezultat pogajanj. Strokovnjaki se dobro zavedajo, kaj so trenutne tržne cene, zato so kakršnikoli ceniki na spletu bolj marketinški trik za stranke kot kaj drugega, je dodal.
Vstopijo države
Velesile imajo svoje hekerske oddelke, za katere so ranljivosti izjemno dobrodošla orodja, zato si jih na več način prizadevajo nakopičiti čim več. En vir podatkov so že objavljene in tudi zakrpane ranljivosti, ki so po eni strani kažipoti, kje bi se utegnila skrivati še kakšna luknja, po drugi strani pa so kot nalašč za napade na nezakrpane sisteme. Ranljivosti so po objavi popravkov javno znane, a uporabniki pri posodabljanju svojih sistemov niso vedno vestni. Mnogokrat sploh ne po svoji krivdi, saj številni proizvajalci androidnih telefonov po letu ali dveh prenehajo nuditi varnostne popravke za starejše modele. To je le najočitnejši primer, v industriji pa je še kup sistemov, ki jih ni mogoče posodobiti.
Zemljevid kitajskih zbirk ranljivosti.
Druga možnost so seveda nakupi ranljivosti na sivem trgu, ki ga sestavljajo podjetja iz prejšnjega poglavja. Ta nakupujejo posamezne ranljivosti, potem pa jih bodisi prodajajo najboljšemu ponudniku bodisi uporabijo za izdelavo pripravljenih orodij za prisluškovanje oziroma vdiranje. Tak primer je bilo milansko podjetje Hacking Team, ki je v letih 2003–2020 državam po vsem svetu prodajalo programsko opremo za nadzor telekomunikacij, dešifriranje, prestrezanje, oddaljeni dostop in vdiranje. Njihovi izdelki so na daljavo aktivirali kamere, beležili pritiske tipk, zbirali elektronska sporočila in drugo komunikacijo, ždeli v BIOS-u, firmwaru in drugih težko dostopnih delih računalnikov (rootkit), kradli kriptovalute in vse drugo, kar počno trojanski konji. Obseg njihovega poslovanja je javnost spoznala leta 2015, ko so neznanci odtujili in na internetu objavili 400 GB poslovnih skrivnosti. Med strankami so bile tako evropske države kakor tudi Združeni arabski emirati, Savdska Arabija, Vietnam, Kazahstan, Maroko in ostale države, kjer spoštovanje človekovih pravic ni na visoki ravni.
Še tretjo možnost pa je iznašla Kitajska. Ta temelji na prisili in je presenetljivo učinkovita. Od 1. septembra 2021 velja zakon o upravljanju varnostnih ranljivosti v omrežni opremi, ki od proizvajalcev zahteva prijavo vseh ranljivosti oblastem. Ko proizvajalec izve za ranljivost v svoji opremi, jo mora v 48 urah prijaviti, četudi zelo verjetno v tem času sploh ne bo mogel zagotoviti popravka. Kitajska tako vzdržuje zbirko, v kateri so zbrane tehnične podrobnosti o ranljivostih.
Ameriško mislišče Atlantic Council je letos septembra objavilo obsežno poročilo, v katerem so opisali pot teh prijavljenih ranljivosti. Po vnosu v zbirko te potujejo med več kitajskimi vladnimi službami. Vidijo jih kitajski CERT, ministrstvo za državno varnost, podjetje Beijing Topsec in univerza Shanghai Jiaotong, ki so v preteklosti že sodelovali v državnih hekerskih napadih.
Multinacionalke imajo torej dve možnosti. Lahko zapustijo Kitajsko ali pa se uklonijo in ranljivosti delijo. Na spletnih straneh kitajskega ministrstva za industrijo in informacijske tehnologije so na seznamu iz julija 2022 tudi podjetja Beckhoff, D-Link, KUKA, Omron, Phoenix Contact in Schneider Electric označena kot sodelujoča v programu deljenja informacij o ranljivostih. Ko jih je Wired izrecno vprašal, ali s kitajsko vlado delijo podatke o nezakrpanih ranljivostih, sta le D-Link in Phoenix Contact to izrecno zanikala. Zelo verjetno tudi druga podjetja ne posredujejo zelo podrobnih informacij o ranljivostih, a že osnove lahko zadostujejo, da začno v državi hekerji gledati v pravo smer. Kitajska pri tem ni izjema, so povedali v japonskem Omronu. Osnovne podatke o ranljivostih posredujejo tudi japonskim in ameriškim oblastem ter jih objavijo na svojih spletnih straneh.
Ponudba ranljivosti na strani 0day.today.
Neučinkovitost trga
Trg varnostnih ranljivosti ima svoje posebnosti, ki jih ekonomisti označijo kot asimetrijo informacij ali neučinkovitost. Poleg tega so ranljivosti hitro pokvarljivo blago, ki z razkrivanjem izgublja vrednost, obenem pa podobno kot diamanti niso fungibilne (zamenljive), saj niti dve nista enaki. Posledici sta težavno vrednotenje in močno nihanje cen.
Med prodajalci in kupci obstoji velika asimetrija informacij, saj vedo prvi bistveno več o ranljivosti, drugi pa o trgu. Kupci pred nakupom zelo težki preverijo, kako resna je neka ranljivost in kako učinkovita je njena izraba. Kot je pokazal George Akerlof, ki je leta 2001 prejel Nobelovo nagrado za ekonomijo, lahko asimetrije odrinejo kakovostne izdelke s trga. Preverjanje kakovosti izdelkov je oteženo, trg pa se zasiči z nizkokakovostnimi izdelki, zato kupci ponujajo malo, kar odžene prodajalce kakovostnih izdelkov.
Kaj je dan nič?
Najvišjo ceno dosegajo ranljivost, ki nosijo oznako dan nič (zero-day). Gre za širok pojem, ki opisuje predhodno neznane in nezakrpane ranljivosti. Ko je proizvajalec (ali širša javnost) obveščen o ranljivosti, se to šteje kot prvi dan – in čez nekaj časa za podprto opremo sledi popravek, ki jo odpravi.
Smernice odgovornega odkrivanja ranljivosti predpisujejo časovno okno, v katerem ima proizvajalec čas odpraviti ranljivost. V praksi to pomeni, da etični hekerji odkrijejo ranljivost in o njej obvestijo samo proizvajalca, javnosti pa jo razkrijejo šele po preteku vnaprej določenega roka. Googlov Project Zero ta rok postavlja na 90 dni. To proizvajalcem omogoča dovolj časa, da pripravijo popravek, ne da bi napadalci širom sveta vedeli, kje je luknja, hkrati pa jih prisili, da popravek sploh izdajo – ker bo po 90 dneh podatek v vsakem primeru javen.
Besedna zveza zero-day poimenuje več pojmov. Ranljivosti (vulnerabilities) so pomanjkljivosti v programski opremi, ki omogočajo napad (attack). Tega napadalci izvedejo z uporabo metode (exploit), ki izkoristi ranljivosti v sistemu. Po definiciji je torej vsaka neprijavljena ranljivost zero-day, a le manjši delež se jih dejansko izkorišča v praksi. Za to je več pogojev, med drugim morajo biti ranljivosti dovolj resne in razširjene, enostavno uporabne ter v ustreznih krogih znane.
Zaradi tega se kupci pogosto odločajo kupovati le od preverjenih, lokalnih ponudnikov. Ameriška vlada kupuje izključno od svojih lokalnih pogodbenih partnerjev (defence contractors). Pomemben dejavnik je lokalna jurisdikcija, ki olajša njihovo preverjanje in morebitno sankcioniranje. Tveganje s tem prevzamejo pogodbeni partnerji, ki morajo ranljivosti pridobiti na mednarodnem sivem trgu. Končni rezultat je dražji, a bistveno predvidljivejši in manj tvegan postopek za državo.
Vidimo, da situacijo na trgu narekujejo kupci (buyers market). Teh je manj kot prodajalcev, hkrati pa imajo bistveno več informacij o potrebah trga in stanju na njem. Prodajalec ranljivosti sicer lahko oceni, kako širok je njen domet, a ne ve, ali je na sivem trgu iskana in ali se zanjo zanimajo državni akterji, kakšne ponudbe dajejo ipd. Te informacije imajo zgolj kupci, ki jih razkrivajo v minimalnem obsegu. Vse to so lastnosti trga z močno asimetrijo informacij, ki je daleč od učinkovitosti v ekonomskem smislu.
Število odkritih ranljivosti raste
Visoke cene nekaterih ranljivosti bi lahko dale napačen vtis, da je teh čedalje manj. Nasprotno, število odkritih ranljivosti iz leta v leto raste. Leta 2018 so odkrili 12 aktivnih ranljivosti, leta 2020 25, leta 2021 že 88. Letos konec septembra je bila ta številka 69, tako da bomo verjetno presegli rekord. Ob tem velja poudariti, da je večina ranljivosti variacija predhodno odkritih. Leta 2021 sta bili le dve resnično novi, lani je bil trend podoben.
Hkrati se je trg v zadnjem desetletju spremenil. Pred dobrimi desetimi leti so varnostni raziskovalci redko priznali, da bi bili pripravljeni odkrite ranljivosti prodati najboljšemu ponudniku. Z vzponom posrednikov, kot sta Zerodium in Operation Zero, je dandanes postopek precej bolj komercializiran in – žal – tudi sprejet. Največji kupci pa ostajajo različne države. Na Zahodu sta to zlasti ameriška in britanska vlada. Te pogosto sploh ne kupujejo ranljivosti, temveč izdelano programsko opremo, kot je bil Pegasus podjetja NSO Group.
Obilico podatkov o dejanskih transakcijah so razkrili dokumenti, ki so leta 2015 pricurljali iz Hacking Teama. Izkazalo se je, da jim je v šestih letih uspelo kupiti le pet ranljivosti, še več težav pa so imeli s prodajo. Posel je torej potencialno dobičkonosen, a trd.
Neprebojna trdnjava
Z istimi težavami kot nevešči prodajalci se srečujejo tudi raziskovalni novinarji, ki želijo pokukati za kulise. Tudi anonimno z njimi noče govoriti skoraj nihče. Pred desetimi leti je bil izjema južnoafriški trgovec z ranljivostmi Grugq, ki je imel močno prisotnost na Twitterju z več kot 100.000 sledilci. Naredil je napako in govoril z novinarjem Andyjem Greenbergom, ki je zgodbo objavil v Forbsu. Grugq je v hipu postal nezaželen, naročila so usahnila, stranke so se usmerile drugam. Njegove napake ni ponovil nihče.
Ameriška preiskovalna novinarka Nicole Perlroth že desetletje preiskuje svet kibernetske varnosti in napadov.
Najdlje v raziskovanju trga kibernetske varnosti in orožij je uspelo Nicole Perlroth, ki je predlani izdala knjigo This Is How They Tell Me the World Ends: The Cyberweapons Arms Race. Nicole Perlroth že več kot desetletje pokriva to tematiko za The New York Times in je v tem času tudi govorila z nekaterimi nekdanjimi igralci s tega skrivnostnega trga. Vsi priznavajo, da se je trg spremenil. Danes na njem ni več nobene romantike, temveč gre za velik in dobro organiziran posel. Spletne strani, kot so Zeronomi.com, Zerodium.com, Pwnables.com, Exodusintel.com ter zloglasna 0day.today in Inj3ct0r Exploit Database, so le simptomi nove dobe. Na drugi strani pa so javne zbirke ranljivosti, denimo exploit-db.com.
Kako se obraniti
Zaščito pred nerazkritimi ranljivostmi lahko primerjamo z nespecifičnim imunskim odzivom pri ljudeh. Po definiciji pred njimi ni posebne zaščite, temveč pomagajo zgolj dobre varnostne prakse. Osnovi sta seveda uporaba posodobljenih programov in namestitev popravkov za znane ranljivosti. Novi načini napadov so včasih derivati starejših lukenj ali pa potrebujejo več ranljivosti, med katerimi so poleg neznanih tudi že zakrpane.
Druga pomembna taktika je zmanjševanje površine, prek katere je mogoč napad. Po domače to pomeni, da uporabljamo zgolj nujno programsko opremo. Vsak dodatni kos predstavlja tveganje, saj lahko vsebuje ranljivosti, zato jih je bolje imeti manj. Požarni zidovi, omejitve privilegijev in drugi načini ločevanja znatno zmanjšajo tako tveganja kot tudi obseg škode, ki ga lahko napadi povzročijo.
Zadnja točka pa je vedno uporabnik, ker so še vedno precej redki napadi, ki ne potrebujejo nobene uporabnikove interakcije. Če nič drugega, mora uporabnik (največkrat, ne pa vedno) obiskati kakšno spletno stran, odpreti kakšno sumljivo povezavo ali kaj namestiti. Izobraževanje uporabnikov je zato ključno pri preprečevanju napadov.
Nekaj realnosti je vendarle treba ohraniti. Trg ranljivosti obvladujejo močni igralci z globokimi žepi in celo države. S preprostimi taktikami se jih bomo težko obranili, a večina nas lahko stavi vsaj na to, da smo irelevantni, naša država pa demokratična. A nič od tega ni samoumevno.