Je odprto res bolj varno?

Objavljeno: 25.5.2009 13:20 | Avtor: Edi Strosar | Kategorija: Varnost | Revija: Junij 2009 | Teme: mnenje, komentar, odprta koda

V majski številki smo objavili članek z naslovom "Znova: odprta koda, da ali ne?", v katerem smo predstavili večno problematiko odprte kode v javni upravi - torej, ali lahko z uvajanjem naveze Linux/FOSS (konkretno Linux/OpenOffice) država prihrani zajeten kupček denarja, ki bi sicer v obliki licenc odtekel k Microsoftu. Pa je ceneje v resnici tudi bolj varno?

V članku je avtor - glede na večinoma pozitivne izkušnje iz tujine - menil, da lahko država s pravilno zastavljenim projektom na dolgi rok veliko prihrani, obenem pa se reši Microsoftove odvisnosti. Popolna zmaga torej.

Če pogledamo na vse skupaj z nekoliko drugačnega zornega kota, je slika precej drugačna. Začnimo s pripombo na legendarno izjavo Eric S. Raymonda iz FOSS biblije "The cathedral and the bazaar", ki se je privrženci odprtokodnega krila oklepajo kakor pijanec plota in jo je v svojem članku navedel tudi sam avtor: "... v odprtokodnih programih so luknje lažje in hitreje odkrite, saj jih ves čas išče veliko oči." Ta izjava preprosto ne drži in je, milo rečeno, zavajajoča. Testiranje z vpogledom v izvirno kodo (white box testing) danes, čeprav je še vedno pomembno, ni več primarni način iskanja varnostnih pomanjkljivosti. Testiranje brez vpogleda v izvirno kodo (black box testing) in testiranje delovanja aplikacije v kaotičnem okolju (fuzzing) dajeta veliko boljše rezultate, pa še dostop do kode ni potreben.

Mnogi se spomnimo, da se je leta 2004 v spletu znašel del izvirne kode Windows 2000. Microsoft je kasneje potrdil, da je šlo za približno 10 % celotne kode. In koliko ranljivosti je bilo odkritih s pregledovanjem tako "uidene" kode? Javno znana je bila le ena: CVE-2004-0566 (gre za prekoračitev celoštevilčnega podatkovnega tipa v IE5). Seveda je odveč omenjati, da je bil Windows 2000 luknjast kakor švicarski sir, vendar je bila plejada drugih ranljivosti odkrita z "black box testingom/fuzzingom" in povratnim inženirstvom (reverse engineering). Čeprav EULA ali "pogodba za končnega uporabnika" izrecno prepoveduje tako početje, se povratno inženirstvo intenzivno uporablja za iskanje pomanjkljivosti v Microsoftovih izdelkih. In ne samo to - kaj menite, kako neki so nastali projekti, kot ReactOS in TinyKrnl? Zanimivo razmišljanje o "konspiraciji zaprte kode" je na svojem blogu objavila tudi priznana strokovnjakinja za računalniško varnost Joanna Rutkowska in seveda dvignila veliko prahu med OSS fundamentalisti:

http://theinvisiblethings.blogspot.com/2009/01/closed-source-conspiracy.html

Odstotek okužb z zlonamerno kodo (infection rate) je v vsaki novejši različici Oken manjši (Vir: Microsoft Security Intelligence Report v6)

Naslednja priljubljena trditev pripadnikov Linux/FOSS plemena je, da so odkrite vrzeli nemudoma zakrpane, vsekakor pa prej kakor pri zaprti kodi, kjer programerji "... včasih tudi nimajo časa prav isti trenutek". Četudi izpustimo podrobnosti in torej to, da morajo vsi Microsoftovi popravki skozi proces SDL (Security Development Lifecycle) in SQA (Software Quality Assurance), je zgornja trditev največkrat popolnoma napačno interpretirana, poudarek je namreč na "nemudoma zakrpane", dejansko pa bi moral biti na "odkrite vrzeli". Znani so primeri pomanjkljivosti v odprtokodnih programih in tudi samem linuxnem jedru, ki so bile v kodi dolga leta, pa jih nihče iz skupnosti OSS ni odkril (dokaj čudno glede na trditev, da jih išče več oči, kajne). Kdove, morda pa so jih odkrili "black hat" hekerji in jih preprosto zadržali zase oz. uporabljali?

Hitro krpanje vrzeli pa ima še eno slabost, ki jo programerji sicer poznajo pod izrazom "nazadovanje" (code regression). Ta se nemalokrat prikrade v popravke, če so objavljeni na vrat na nos, brez predhodnega testiranja. Pa kaj bi izgubljali besede, eden izmed pionirjev spletne varnosti in tudi zagovornik OSS, Steve Bellovin, je problematiko zelo nazorno opisal: http://www.cs.columbia.edu/~smb/blog//2009-04/2009-04-29.html

Seveda enako velja tudi za Microsoft - z eno majhno, a pomembno razliko. Microsoft zelo plodno in uspešno sodeluje s hekerji, medtem ko ima oče Linuxa, g. Linus Torvalds, do strokovnjakov za varnost nadvse aroganten in izrazito negativen pristop. Če sem nekoliko piker, bi lahko dejal, da je g. Linu(x)s z vidika obravnavanja varnostnih incidentov na ravni Microsofta iz leta 1999, po Kübler-Rossovem modelu torej nekje med fazo zanikanja in jeze, gigant iz Redmonda pa je globoko v fazi sprejemanja.

Hitrost krpanja

Krpanje ranljivosti se ponavadi označuje z "0-day". Dve enakovredni razlagi tega termina sta. Po prvi, preprostejši definiciji, ta se pogosteje uporablja "na temni strani", je 0-day pomanjkljivost, ki ni zakrpana in tudi ni javno znana. Druga definicija, v rabi med varnostnimi strokovnjaki, pa označuje pomanjkljivost, ki je ravnokar postala javna, vendar ni tudi zakrpana. Velja omeniti, da je neka pomanjkljivost za širšo javnost lahko 0-day v trenutku, ko je javno razkrita, medtem ko je za neko zaprto skupino to že "n-day", torej stara stvar. Ob "odgovornem razkritju ranljivosti" (responsible disclossure) sta 0-day in popravek objavljena hkrati.

Naj na koncu izpostavim še pomembno dejstvo, ki v članku sploh ni bilo omenjeno: Microsoft državam, vključenim v Government Security Program (GSP), med njimi je tudi Slovenija, dopušča vpogled v izvirno kodo tako Oken kot tudi Pisarne. Sploh pa, kolikšen interes ima Microsoft vzdrževati lokalizirano različico pisarniškega paketa in operacijskega sistema, če država izstopi iz igre? Slovenski trg je namreč hudo premajhen. Čisto mogoče je, da imamo uporabniki slovenska Okna in Pisarno ravno zaradi tega sodelovanja.

Drži, licence niso poceni. Drži tudi, da Microsoftovi operacijski sistemi in programi niso brez varnostnih pomanjkljivosti in tudi nikdar ne bodo, vendar je Microsoft v zadnjih letih delal velikanske korake na področju varnosti, seveda pa mora prehoditi tudi najdaljšo pot. Ne pozabimo tudi, da je Microsoft ravno zaradi razširjenosti lastnih izdelkov in velikanske zbirke uporabnikov najbolj priljubljena tarča napadalcev. Na drugi strani je Linux preprosto zaspal na lovoriki "secure by default".

Mimogrede, ali je kdo opazil, da do zadnjega nisem omenil famoznega fiaska Debian PRNG:-). Sicer pa, vsak "zastonj" ima svojo ceno. Tako vsaj pravijo.

Naroči se na redna tedenska ali mesečna obvestila o novih prispevkih na naši spletni strani!
Prijava

ph

Komentirajo lahko le prijavljeni uporabniki