Čudan naslov, ali da - postoji i tržište rupa. U ovom tekstu je reč o tržištu softverskih rupa (ranjivosti) tj. propusta u softveru koji mogu mnogima doneti ozbiljne probleme ili nekima i prednosti i korist, zavisno sa koje strane jednačine se nalazite. Informacije o rupama u bezbednosti softvera su postale roba na tržištu, koje naglo raste. Postoje prodavci, ali i širok krug zainteresovanih kupaca. Ko prodaje, ko kupuje i zašto je to opasno?
Zamislite da ste otkrili vrlo ozbiljan propust odnosno ozbiljnu bezbednosnu rupu u nekom programu (softveru) i da to saznanje može da se iskoristi za različite namene, možda čak neke veoma unosne. Šta biste uradili, kome biste to saopštili i na koji način?
Opcije su različite:
• Da li biste to saznanje sačuvali samo za sebe?
• Ipak, možda biste kontaktirali proizvođača dotičnog softvera ili njegovog predstavnika i upozorili ih da zakrpe rupu?
• Da li biste to saznanje javno obznanili putem medija, otišli na TV, u novine ili preko svog bloga, veb sajta?
• Možda biste to javili nekoj državnoj komisiji, službi, organu, ministarstvu, telu - ali da li takvo telo postoji?
• Možda biste probali da prodate to saznanje na tržištu softverskih ranjivosti i propusta (rupa). A kome biste prodali: hakerima, državnim i tajnim službama, špijunima, kriminalcima?
• Da li ste čuli za pojam društveno odgovornog otkrivanja informacija o propustima u softveru?
Tržište softverskih rupa - ranjivosti postoji i veoma je živo. Nekad su igrači na tom tržištu bili pojedinačni hakeri, koji su se trudili da otkriju što više propusta u poznatim programima i da ih obznane. Tako su sticali slavu u širem krugu poznavalaca ove materije (često i šire u javnosti), a verovatno i mogućnost za dobre poslove u firmama koje su bile zainteresovane za računarsku bezbednost. Mnoge firme su plaćale naknade za otkrivene propuste u softveru, sa ciljem da zainteresuju što više poznavalaca i entuzijasta, kako bi svoj proizvod unapredile. Često su takva otkrića išla vrlo skriveno od očiju javnosti sve dok dotična firma ne bi zakrpila svoj proizvod tj. ispravila propuste. Tek nakon toga bi propust bio objašnjen i javno objavljen. Razlog leži u tome da se spreči zloupotreba ranjivosti koja bi mogla nastupiti ako se informacija objavi pre ispravke i krpljenja.
Polemike
Pre nekoliko godina su se vodile velike polemike oko toga šta je društveno odgovorno ponašanje u odnosu na otkrivanje softverskih ranjivosti. Mnoge firme i ugledni pojedinci su zastupali stav da je preporučljivo ili čak nužno da se informacije o otkrivenim propustima čuvaju u tajnosti, a da se direktno i isključivo dostavljaju proizvođačima. To bi trebalo obavljati tajnim kanalima, da ne bi dospele u javnost pre ispravljanja propusta. Bilo je i pokušaja da se ta materija zakonski reguliše i da se zabrani javno objavljivanje, kao i analize i otkrića koje vode na sigurnosne propuste, a koji bi mogli postati predmet zloupotrebe i napraviti štetu, sve dok se ne napravi neophodna ispravka tj. zakrpa.
Drugi, može se reći suprotni, stav je bio da treba podsticati otkrivanje propusta i rupa u softveru, sa obrazloženjem da je to jedini način da se proizvođači nateraju na ozbiljnije ponašanje, detaljno testiranje pre isporuke i brzi odgovor na otkrivene probleme. U suprotnom, njihova reputacija bi rapidno padala i bili bi kažnjeni zakonima tržišta.
Treći su ponudili međurešenje koje se sastojalo u tome da se proizvođač obavesti o otkrivenom problemu i da mu se da određeno vreme da propust ispravi. Ukoliko bi on ignorisao prijavu problema i ne bi reagovao u zadatom roku, onda bi onaj ko je propust otkrio, imao pravo da ga objavi. Bilo je predloga da ovaj „grejs period" bude 7, 30 ili neki drugi broj dana. Ipak, trka na tržištu sa novim proizvodima i verzijama i potrebom da se brzim zauzimanjem tržišta napravi što veći profit je ovo često anulirala.
I dok su se lomila koplja oko principa na kojima bi trebalo da počiva otkrivanje i objavljivanje propusta, pojavile su se firme koje su počele ozbiljno da se bave analizom programskog koda, pronalaze ozbiljne bezbednosne rupe i ranjivosti u poznatim i široko rasprostranjenim pogramima i da ih prodaju na tržištu. Tržište nisu samo kriminalni gangovi (kako ste to možda odmah pomisli) već ozbiljne državne službe, vlade pojedinih država, neke specijalizovane firme itd.
U martu ove godine magazin Forbs je objavio profil francuske firme Vupen, koja se specijalizovala za otkrivanje i prodaju softverskih propusta. Oni za to dobijaju šestocifrene novčane iznose. Odmah nakon toga, opet na Forbsu, je osvanuo i primer cenovnika bezbednosnih rupa.
Ovo tržište je brzo naraslo i izgleda da je mnogo veće nego što bi se i moglo spolja zamisliti. Tržište je sazrelo za svega nekoliko godina. U toku 2007. godine, Čarls Miler (Charles Miller) je pisao o tome kako uopšte nije lako prodati otkrivene propuste nultog dana (ako je ovo dobar prevod za zero-day exploits). Takođe, jedna zanimljiva anketa iz 2010. godine je pokazivala da nema puno novca u toj oblasti.
Stvari su se očito promenile i to veoma brzo. Pitanje je da li je to uopšte dobro, a stvar se može posmatrati iz nekoliko uglova.
Ekonomija
Ekonomija tj. tržište igra veliku ulogu i ovde, kao i na drugim mestima. Dok god je jedina nagrada za otkriće propusta u softveru bila u tome da onaj ko problem otkrije, postane popularan među svojim kolegama i, u najboljem slučaju, dobije par stotina dolara ili eura od firme kojoj je prijavio propust, ovo je bila oblast za čiste zaljubljenike i entuzijaste. Sa druge strane motivacija firmi čiji su propusti otkrivani je bila u tome da održe reputaciju pouzdanih proizvođača, pa su se trudile da brzo reaguju i da ne dozvole negativan publicitet. Cela ova „igra" je, kao rezultat, imala nešto pouzdaniji softver, sa manje bezbednosnih i drugih propusta. Međutim, takva borba je polako jenjavala, a interes i jedne i druge strane je postepeno padao. Za analitičare bezbednosti sofvera nije baš bilo unosno da potroše mnogo vremena u jurenju i otkrivanju problema, jer od toga ne može da se živi. Firme su se nonšalatnije ponašale, jer zaboga, sva tehnika, a posebno softver ima svoje probleme i propuste. Javnost je, u isto vreme, postaja sve zasićenija vestima na pomenute teme i stvar je polako padala u drugi plan.
U međuvremenu je značaj softvera porastao. Mnogi kritični i ključni infrastrukturni sistemi, državna uprava, odbrana, poslovni i komercijalni sistemi, istraživanja, finansijske, osiguranje - skoro sve funkcioniše na nekoj računarskoj i mrežnoj infrastrukturi i softveru koji na tome radi ili se u manjoj ili većoj meri na njih oslanja. Otkrivanje propusta u tim sistemima omogućava vrlo unosne dobiti. Za one koji žele da saznaju tuđe poslovne, vojne, državne i slične tajne, ukradu intelektualnu svojinu i patente dok su još u razvoju ili pak ostvare materijalnu dobit, problemi u softveru i saznanja o njima mogu biti dobar put ili sredstvo da to ostvare.
U celu jednačinu se uključuju firme, državne i tajne službe, kriminalni gangovi i mnogi drugi koji su zainteresovani da dođu do saznanja o rupama u softveru. Tržište rupa počinje da buja. Prodavci rupa nalaze platežno sposobne i zainteresovane mušterije i prodaju im informacije u tajnosti. Informacije o propustima ne idu do proizvođača i to znači da će propusti ostajati neispravljeni mnogo duže. Za nas, obične korisnike softvera, ovo znači da ćemo sve duže i sve više koristiti nesiguran softver. To uopšte nije dobra vest za opšti interes.
Suština
Cela poenta otkrivanja i objavljivanja bezbednosnih propusta bi bila u tome da se izvrši pritisak na proizvođače da prave i isporučuju što sigurniji softver. To nije samo motivacija i pritisak da zakrpe ranjivosti koje su otrivene i objavljene, već i strah od lošeg publiciteta i urušavanja reputacije (a time i pada profita), tera proizvođače da implementiraju i sprovode sigurnije procese razvoja softvera. To je još jedan ekonomski proces, troškovi projektovanja i razvoja sigurnijeg softvera sigurno su, na prvom mestu, mnogo manji od troškova lošeg publiciteta u medijima, nakon što je ranjivost javno otkrivena i objavljena. Takođe, ovo naknadno krpljenje izaziva dodatne troškove u resursima (radnim satima, novcu itd.)
Mnogo je lošeg i ranjivog softvera u primeni, a ovaj mehanizam može pomoći da se stvari poprave. Ako se stvari dešavaju daleko od očiju javnosti, onda je svašta moguće. Nažalost, mnoge softverske firme vrlo malo ili uopšte ne vode računa o bezbednosti svog softvera. Security Development Lifecycle i slični pojmovi su nepoznanica za mnoge. Analiza programskog koda u pogledu bezbednosti još manje, dizajn i razvoj sa ugrađenom i podrazumevanom bezbednošću i privatnošću često i dalje van osnovnog fokusa softverskih timova i firmi.
Međutim, bolje sprečiti nego lečiti. Bolje biti proaktivan, nego čekati i biti reaktivan, a najbolje je biti prediktivan i projektovati i razvijati sisteme sa ugrađenom bezbednošću i privatnošću. Kako? To je opširna tema koja može biti predmet posebnog teksta.
Napomena. Teme kao što su: Software Security including: Security Development Lifecycle, Software's Vulnerability to Attack, The Challenge of Building Secure Software, Software Assurance, General Principles of Secure Software Development, Integrating Security into the Software Life Cycle, Software Security Tools, Software Security Audit - spadaju u fokus mog rada. Ovde sam pokušao da ovu temu osvetlim sa jednog prilično neobičnog aspekta.
Beleška na margini
Obzirom da napadači i odbrana koriste iste IT tehnologije, postoji fundamentalna tenzija između računarskih napadača i onih koji brane računarske (informacione) sisteme i mreže. Američka NSA (National Security Agency) ovu situaciju naziva "equities issue," a može se rezimirati na sledeći način: kada se otkrije ranjivost u tehnologiji dvostruke namene, oni mogu da urade jednu od dve stvari:
1. Mogu da upozore proizvođača i potrude se da se propust otkloni. Time postižu da i „dobri momci" i „loši momci" budu zaštićeni.
2. Međutim, oni mogu da ćute o ranjivosti i da ne kažu nikome, ostavljajući „dobre momke" nesigurnim, ali takođe ostavljajući i „loše momke" nesigurnim, uz mogućnost da ih prate i nadziru.
Ovo pitanje odavno je debatovalo unutar NSA. U suštini, NSA ima dve uloge: prisluškuje jedne, i štiti druge. Kada obe strane koriste istu tehnologiju, agencija mora da odluči da li da iskoriste ranjivosti da prisluškuje loše momke ili učini da se ranjivosti reše (zakrpe) i time zaštiti jedne i druge, onemogućavajući time da nadzire loše momke koristeći ove slabosti.
Tokom 1980-ih i ranije, tendencija je bila da NSA čuva saznanja o ranjivostima za sebe. Tokom 1990-ih klima se promenila i NSA je počela da se otvara i pomaže firmama da poboljšaju odbranu i bezbednost. Ipak, posle napada od 11. septembra 2001, NSA se pomerila ka napadačkoj politici, ranjivosti se opet sve više drže u tajnosti. U novije vreme ima signala da se stvari ponovo menjaju.