Postati del rešitve, ne samo problema
Acros je na globalni varnostni zemljevid zašel pred skoraj natanko šestimi leti, ko so v mariborski družbi preizkusili 220 programov za Okna in praktično v vseh našli razpoke v varnosti. Ta koncept podtikanja zlobne kode so tedaj poimenovali binary planting in pritegnili pozornost vseh večjih svetovnih tehnoloških medijev. Pred meseci so zagnali nov množični varnostni projekt, imenovan 0patch.
Mitja Kolšek, Acros Security
0patch, za začetek razčistimo, kaj natanko je to? Nekakšno »naredi sam« popravljanje programske opreme?
No, 0patch ni samo to, je pa tudi to. Naš izdelek omogoča nameščanje in odstranjevanje mikropopravkov programske opreme. To so majhne spremembe strojne kode aplikacij, ki se izvajajo v računalniku. Torej, namesto da bi se vsak drugi torek v mesecu zamenjalo pol operacijskega sistema, z 0patchem zelo usmerjeno, kirurško popravimo vse tiste napake, ki jih sicer pozneje zaobjamejo obsežni uradni popravki. Ker se ti mikropopravki nameščajo v pomnilniku in kar med izvajanjem aplikacije, jih ni treba zaustaviti ali znova zaganjati, prav tako ni treba na novo zaganjati računalnika. Seveda pa lahko take popravke tudi preprosto odstranimo. Prednosti novih modelov rabe, ki jih prinaša tak način, je kar nekaj. Ponudniki programske opreme, ki se jim zgodi napaka, lahko to z mikropopravkom precej učinkoviteje popravijo in popravek spravijo do uporabnikov, namesto da bi, denimo, še enkrat pošiljali naokoli celoten izdelek.
Druga prednost pa se skriva v tem, da lahko tak popravek namesto kakega velikega podjetja napravi kar kak posameznik, ki pozna strojni jezik in ima nekaj izkušenj z obratnim inženirstvom.
Ja, hecno se sliši, da bi lahko sami popravljali take stvari, toda tudi ko se nam pokvari hladilnik, ne pričakujemo, da nam ga bo popravil ravno izdelovalec; to lahko postori vsakdo, ki to zna.
No, a drobovje hladilnika je precej manj zaščiteno kakor koda programske opreme.
Varnostni raziskovalci, ki znajo najti napake v izvorni kodi, znajo navadno tudi zelo dobro razumeti potek izvajanja kode. Še enkrat pa naj ponovim, da gre za zelo preproste popravke, nekaj strojnih ukazov, zato je to mogoče popraviti na ta način.
Končni cilj vsakega učinkovitega popravka je, da se koda popravi tam, kjer se izvaja, torej v pomnilniku. Mi samo preskočimo mučni proces popravljanja izvorne kode, pa potem pripravljanja, preizkušanja in distribucije novega paketa popravkov – a gremo namesto tega neposredno v pomnilnik. S tem tudi ohranimo integriteto originalne programske kode na disku. V resnici ničesar ne spreminjamo v sistemu, spremenimo samo aplikacijo, in to samo tisti trenutek, ko teče.
Je bilo že kaj odzivov ponudnikov?
Imamo kar nekaj odzivov in praktično vsi so pozitivni, nekaj pa je celo zelo spodbudnih. Je pa treba reči, da se ponudniki malce obotavljajo, čakajo, kam bo krenila ta tehnologija. Računamo, da bodo odzivi pogostejši, ko bomo napravili popravek za kakega konkretnega izdelovalca. Tu celo pričakujemo, da utegne biti odziv malce negativen, češ nekdo se je lotil popravljanja nečesa, kar smo doslej popravljali samo mi … Verjamemo pa, da bodo hitro ugotovili, da smo vsi na istem bregu, oboji rešujemo zagato njihovega uporabnika. Lahko pa bodo celo ugotovili, da je naš način boljši in hitrejši od klasičnega, torej krpanja z obsežnimi popravki, ki naslavljajo tistih nekaj popravljenih ukazov.
Hitrost je dober argument, toda ali je to dovolj, da bi se uporabnik ob uradnih popravkih zanašal še na tale vaš 0patch?
Uradnih popravkov včasih sploh ni. Poglejva primer Oken XP, ki so še vedno široko uporabljan operacijski sistem, ki poganja tudi še marsikateri računalnik, ki deluje v kakem kritičnem segmentu; torej pri stvareh, ki zelo bolijo, če ne delujejo pravilno. Takih primerov programske opreme brez podpore je še veliko.
Uradni popravki so večinoma glomazni. Če postrežem s primerjavo: greste k zdravniku, ker vas boli koleno, in uradni popravek bi vam v tem primeru zamenjal kar vso nogo, namesto da bi vam mikrokirurško popravil samo napako v kolenu. Ta velikost ima za posledico še počasnost pri nameščanju popravkov. Ko, denimo, Microsoft izda svoj torkov paket, si podjetja ne upajo teh popravkov takoj v celoti razširiti po vseh strojih v podjetju. Večinoma je treba prej opraviti preizkuse na manjših skupinah, to pa lahko traja tudi več mesecev in tolikšna doba je pri varnostnih vrzelih nevarna. Večinoma so namreč javne in nepridipravi imajo dovolj časa, da jih izkoristijo.
Nekateri uradni popravki tudi vplivajo na funkcionalnost izdelka in to uporabnikom ni všeč. Predstavljajte si, da vam zaradi neke malenkosti zamenjajo kar različico Worda, ki ste jo dotlej uporabljali. Vam je šlo le za varnostne popravke, spremenilo pa se je cel kup funkcionalnosti.
Za nameček se pogosto tudi zgodi, da uporabniki sploh ne morejo namestiti uradnih posodobitev ali nove, popravljene različice, ker jim neka draga oprema deluje samo s staro – ranljivo – različico. Vsak skrbnik v večji organizaciji bo tule pomislil: Java.
Ker ti mikropopravki prek vaše skupnosti postanejo javni, bi lahko bilo to tudi nevarno? Jih je mogoče izkoristiti tudi v zlobne namene, torej za nehoteno spreminjanje programske opreme?
No, naše podjetje je pogosto v vlogi napadalca, saj nas najemajo za najrazličnejše penetracijske preizkuse, zato smo zelo dobro proučili, ali bi bilo 0patch mogoče zlorabiti v tej smeri. Da bi kaj takega preprečili, vse popravke podpišemo s svojim digitalnim ključem in skrbimo za to, da naš agent ne bo namestil nobenega popravka, ki ne bo ustrezno podpisan. S tem zagotavljamo, da sovražna programska oprema ne more zlorabiti naše tehnologije za prikrivanje. Sicer pa, vsako tehnologijo je mogoče zlorabiti, ne nazadnje tudi protivirusne programe. Sploh zadnje čase pogosto beremo o razpokah v varnostni programski opremi.
Kakšen pa je odziv skupnosti, potencialnih skupin in posameznikov, ki bi bili pripravljeni delati na mikropopravkih?
Oglasilo se nam jih že kar nekaj. Pa moram reči, da doslej niti še nismo kaj dosti vabili, kaj šele oglaševali. Upamo celo, da bomo našli veliko takih, ki bi bili pripravljeni to početi, v naši slovenski varnostni skupnosti. Ta tehnologija namreč omogoča nekaj, kar doslej ni bilo mogoče: torej da si del rešitve, ne samo del problema. Naj pojasnim: če si doslej odkril kako ranljivost, te pri ponudniku niso bili najbolj veseli. No, seveda so bili, samo zanje kljub vsemu na neki način pomeniš težave in dodatno delo. Zdaj pa jim lahko ponudiš tudi že kar rešitev, to pa je – priznajte – nekaj povsem drugega.
Tudi ko se nam pokvari hladilnik, ne pričakujemo, da nam ga bo popravil ravno izdelovalec; to lahko postori vsakdo, ki to zna.
Za zdaj stroj šele zaganjamo, zato trenutno večino popravkov napišemo sami. Sicer pa je naša vloga v tem modelu bolj v tem, da priskrbimo in vzdržujemo programsko opremo, ki bo to izdelovanje popravkov omogočala drugim. Denimo, tisočem varnostnih raziskovalcev po vsem svetu, vedno več jih je in imajo željo in sposobnosti, da take popravke izdelajo. To opažamo. Če pa jim zdaj ponudimo možnost, da s tem tudi nekaj zaslužijo, mislim, da imamo vse nastavljeno tako, da bi iz tega lahko nastal neki globalni imunski sistem.
Aha, kako pa tu v enačbo pride denar?
Za zdaj smo v odprti beta fazi, zato denar še ne teče niti k nam, niti od nas. No, to drugo že (smeh). Naša zamisel je, da bi postali vmesni povezovalni člen v okoljih, kjer je veliko varnostnih raziskovalcev in na drugi strani veliko uporabnikov, ki so izpostavljeni napadom. Torej, ti drugi bodo za učinkovito reševanje varnostnih težav plačevali storitev prvim. Imamo torej ponudbo in povpraševanje, manjkal je samo še nekakšen vezni člen med njima.
Zakaj pa menite, da bodo uporabniki zaupali takim »garažnim« popravkom?
To vprašanje zelo pogosto slišimo in odgovor je preprost. Ti mikropopravki so zares mali popravki, vsak, ki se spozna na strojno kodo, si jih lahko ogleda in potrdi njihovo nedolžnost. Večinoma gre za nekaj ukazov. Enega smo objavili kar na Twitterju, pa bi v bistvu lahko to storili z vsemi, tako kratki so. Skratka, vedno si uporabnik lahko v skrajnem primeru na hitro najame poznavalca, ki bo v pol ure potrdil, da je s popravkom vse v redu. Kot rečeno, pa naša vloga ni v delanju popravkov, to bodo počeli drugi. In ti drugi lahko sčasoma postanejo tudi ugledna podjetja. Tako se bo ustvarilo zaupanje, ki bo morda celo večje, če bo to kako resno globalno podjetje, ne pa neka mala firma iz nekega Maribora.
In kakšna bo prihodnost mikropopravkov po vašem? Kaj bi prerokovali, če vam dovolimo sanjati?
Mi za zdaj podpiramo Okna, od XP naprej pa vse do desetice, in seveda tudi vso ponudbo na strežniški strani. Razvijamo tudi agenta za Linux in MacOS, na voljo pa je tudi že del rešitve za Androide. Naše sanje so, da bi mikropopravki postali realnost vsakega računalnika. Danes, v času IoT, vemo, da je računalnik pravzaprav že vsaka žarnica, in če ne bomo poskrbeli, da bo napake mogoče poceni in enostavno odpravljati, bomo sčasoma obdani s samimi ranljivimi stroji. In ni si težko predstavljati, da življenje v takem svetu ne bo preveč lepo. Ti stroji namreč že danes fizično vplivajo na naša življenja in ni prijetna misel, da bi lahko z njimi po svoji volji upravljal prav vsak, ki ve za kako ranljivost.
Mi si torej želimo, da bi to postalo realnost. Pa saj nismo edini. Na področju IoT so potem, ko smo videli, kam vodijo stvari, vzniknile številne varnostne pobude. Ne k internetu stvari, temveč v internet nevarnih stvari. Preprosto, ker izdelovalci te opreme niso motivirani oz. nagrajeni na trgu za varen odnos. Uspejo tisti, ki naredijo zgolj funkcionalnosti, ne poskrbijo pa za varnost. Izdelek je tako hitreje narejen in hitreje prodan, in to je trend, ki ga mi želimo spremeniti.
Naš cilj pa ni samo vzpostavitev t. i. crowdpatching skupnosti, ki bo delala popravke, temveč prepričati izdelovalce programske opreme, naj tudi sami delajo mikropopravke namesto dosedanjih obsežnih paketov. Ti veliko stanejo njih, še več pa čakajoče uporabnike.
Dosedanje pobude ponudnikov, imenovane bug bounty, torej lov na ranljivosti v njihovih izdelkih, ki najditelju prinese večinoma denarno nagrado, bi na neki točki lahko nadgradili tako, da bi začeli preprosto razpisovati nagrade za popravke. Zdaj na začetku jih bodo ponudniki od naše skupnosti dobili kar zastonj, sčasoma pa utegnejo ugotoviti, da je tudi zanje najceneje, če to delo namesto njih za nekaj dolarjev postori kdo drug in je težava rešena.
Ker – kot vsi na področju varnosti – v Acrosu delujete zelo skrivnostno in pod radarjem, naj izkoristimo ta pogovor in povprašamo, kako pa kaj drugače?
Imamo zelo delovno poletje, to je najmanj, kar lahko rečem, pa seveda preostanek leta je tudi že zapolnjen. Vseh ponujenih projektov pravzaprav sploh ne upamo prevzeti. Večinoma delamo aplikacijske analize in penetracijske preizkuse, pretežno za podjetja iz Silicijeve doline. Sicer pa veliko predavamo na konferencah po ZDA, no, pa tudi doma. Pripravljamo tudi kar nekaj treningov za 0patch, na katerih bomo usposabljali varnostne raziskovalce in bodoče avtorje popravkov. Veliko časa posvečamo tudi mreženju in vzpostavljanju povezav, ki so doslej manjkale, med strokovnjaki in potencialnimi 0patch strankami. Da bi lahko nastale, je doslej manjkal en člen, do zdaj je bil med raziskovalci in uporabniki vedno še izdelovalec. Zdaj pa smo mi poskrbeli za to, da se lahko povežejo sami, neposredno. Vsak prosti trenutek posvetimo 0patchu in pravzaprav se moramo kar prisiliti, da damo na stran nekaj klasičnega dela.