Za većinu ljudi računari su (bilo da je u pitanju desktop, laptop, tablet ili pametni telefon) alat za kreiranje, obradu i čuvanje personalnog sadržaja (fotografija, dokumenata, muzike i sl.). Računari takođe omogućavaju i svakodnevnu upotrebu raznoraznih servisa i usluga – razmenu elektronske pošte, pretraživanje Interneta, komunikaciju sa voljenima preko Skypa, pristup društvenim mrežama poput Facebook-a, Internet bankarstvo, kupovinu, prodaju, slušanje radija, igranje igara i još mnogo toga. Ništa od navedenog ne bi bilo moguće da ne postoje programi (softver) koji želje korisnika prevode u instrukcije koje računar razume i izvršava. Pojam “softver” pokriva širok spektar funkcionalnosti koje programi opslužuju: od mrežnog softvera koji omogućava kontakt sa ostatkom digitalnog sveta do softvera koji prikazuje sadržaj na Internetu, od procesiranja baza podataka do čitanje otiska prsta na ekranu vašeg pametnog telefona.
Računari su mnogo pouzdaniji nego što im se priznaje. Programi su, međutim, pisani od strane ljudi, a ljudi prave greške. Što je program kompleksniji i multifunkcionalniji, povećava se i šansa da sadrži programske greške. Neke od ovih grešaka su primetne, neke su nezgodne ali ne i kritične, neke su dramatične ali se kao takve brzo i ispravljaju. Pored njih se nalazi i mnoštvo sitnih, trivijalnih grešaka koje se ne primećuju pod normalnim uslovima korišćenja, pa se na njih retko i obraća pažnja.
Ipak, prisutne su i greške koje, iako neprimetne ili nebitne, predstavljaju opasnost jer izlažu korisnika i računar potencijalnim kriminalnim napadima koji će ili već eksploatišu te greške globalno. A razlozi za napade su mnogobrojni: motiv može biti i prosta želja da se napakosti, ali je češće finansijske prirode jer postoje načini da se ilegalni pristup računarima dobro unovči. Na primer:
- Krađa osetljivih podataka za pristup bankovnim računima.
- Krađa podataka koja će kasnije omogućiti ili pomoći u krađi identita.
- Ransomware, zaključavanje korisničkih podataka i zahtevanje otkupa.
- Instalacija malvera za kontrolu i dalju distribuciju masovnih malicioznih aktivnosti (botnet). Ovakve ilegalne mreže se rentaju za veliki novac!
Naravno, programeri (uglavnom) ne prave greške namerno ili sa namerom da ih kriminalci kasnije eksploatišu. Ponekad je dovoljan i najmanji propust iliti “rupa” u softveru koja otvara pristup nekoj bitnoj sekciji računara – najčešće operativnoj memoriji – gde će se izvršiti maliciozna instrukcija koja nema nikakve veze sa softverom koji je to omogućio. Postoji čitava profesija koja se bavi testiranjem softvera i traži ovakve propuste, ali nažalost ne nose svi bele šešire. Oduvek su postojali štreberi koji su bili zainteresovani za testiranje limita, kako hardvera, tako i softvera. Neki vođeni radoznalošću, neki željom za dokazivanjem, a neki iskrenom željom da pomognu kompanijama da unaprede svoje proizvode, malo po malo formirana je online komuna koja upozorava kompanije na bezbednosne propuste. Nasuprot njima postoje i oni koji nemaju plemenite razloge, manje su bučni i uglavnom zlonamerni, a jedini im je interes profit.
Verovatno se pitate zašto kompanije koje proizvode softver ne pronalaze samostalno propuste na svojim proizvodima? Zar nemaju ljude zadužene za proveru i testiranje? Naravno da ih imaju. Svaka respektabilna kompanija ulaže mnogo u testiranje i osiguranje kvaliteta svojih proizvoda, ali se pred njima nalazi i ogroman, kontinualni zadatak. Savremen operativni sistem poput Windows-a ili OS X-a sadrži desetine miliona linija programskog kôda, uobičajne kompleksne aplikacije poput Office-a ne puno manje od toga, dok je pronalaženje i rešavanje problema daleko više od prostog pregledanja i uočavanja grešaka. Programeri ne samo da moraju da predvide interakciju sa ostalim rutinama u samom programu, već i kakav će uticaj biti na ostatak softvera na računaru, pa i na sam operativni sistem. Iako se ispravke iliti “zakrpe” objavljuju sa ciljem da se unaprede performanse softvera i njegova bezbednost, ponekad se dešava da minorna ispravka u jednom programu dovede do nepredviđenih konsekvenci u ostalim programima koji se oslanjaju na njegove funkcionalnosti. U ovakvoj postavci stvari nije čudno što se ti problemi javljaju, nego to što se ne javljaju mnogo češće. Pozitivna stvar u celoj priči jeste da su kompanije koje proizvode softver veoma svesne ove problematike i da svakodnevno rade na ispravkama i unapređenjima.
Šta sve ovo znači za krajnje korisnike? Na prvom mestu moramo da shvatimo da softver prave ljudi, ne mašine, i da je kao takav podložan greškama koje se naknadno ispravljaju, kroz ažuriranje ili izdavanje novih (pod)verzija. Pre nego što izgubite živce zato što plaćeni program ne funkcioniše kako želite, proverite online ili sa vašim distributerom u čemu je uzrok problema i kako se on otklanja. Takođe izbegavajte onu poznatu “ako radi, ništa ne diraj!”. Korisnici često isključuju automatsko ažuriranje programa i operativnog sistema jer su zadovoljni ukupnim funkcionisanjem softvera. Iako može doći do grešaka prilikom ažuriranja, one su jako retke, a pozitivne konotacije su daleko veće, naročito kada je bezbednost u pitanju. Operativni sistemi i programi unutar njih su, od Windowsa do Androida, živi sistemi koji se konstantno razvijaju i unapređuju u svakom aspektu, a bolje nema potrebe izbegavati.