Objavljivanje nesigurnih kodova može biti katastrofalno

Istraživanje pokazuje da veliki broj programera svjesno objavi programske kodove za koje znaju da su nesigurni.

Gotovo 60 procenata ranjivosti otkrije se tokom procesa programiranja i testiranja (Reuters)

Cyber sigurnost jedan je od najvećih prioriteta svake kompanije koja drži do sebe, s obzirom da samo jedna ranjiva tačka i sigurnosni propust mogu potencijalno naštetiti reputaciji te kompanije ili brenda, reputaciji koja se često decenijama gradila, i to samo u roku od samo nekoliko sekundi.

Osim reputacije, posljedice mogu biti i opipljivije bolne, s ogromnim finansijskim gubicima i reperkusijama.

Stoga rezultati istraživanja Checkmarxa, kompanije specijalizirane za sigurnost softvera, koji pokazuju da je 86 procenata programera samo objavilo ili znaju nekoga ko je svjesno objavio ranjivi programski kod, zvuči prilično nevjerovatno i potencijalno zastrašujuće.

U istoj studiji navodi se i da je 88 procenata menadžera koji se bave sigurnošću aplikacija u posljednjih godinu dana doživjelo bar jedan problem direktno izazvan objavljivanjem nesigurnog koda u aplikacijama, što pokazuje ozbiljnost ovog problema.

Studija “Global Pulse on Application Security” uključila je više od 1.500 menadžera za sigurnost aplikacija, vodećih ljudi zaduženih za informatičku sigurnost i programera širom svijeta, što ukazuje da sporna praksa nije vezana samo za određenu zemlju, područje ili kontinent, već da nesigurni kodovi mogu doći iz svakog kutka planete.

Gotovo 60 procenata ranjivosti otkrije se tokom procesa programiranja i testiranja, dok se preostali broj otkrije kada su aplikacije već puštene u produkciju. Samo 34 prosto developera je navelo da su sistemi za skeniranje softvera, zaduženi za otkrivanje propusta, potpuno integrirani i automatizirani u njihove razvojne sisteme.

Uzrok propusta

Bojan Ždrnja, viši savjetnik za informatičku sigurnost kompanije INFIGO IS, specijalizirane za pružanje profesionalnih usluga u području informatičke sigurnosti, mišljenja je da je postotak od 86 posto svjesnih objava možda malo previsok, ali da je to praksa koja se svakako događa i koja se i ranije događala.

Razlog što sada češće primijetimo takvo ponašanje i takve propuste leži u dva razloga: polaže se više pažnje i energije u otkrivanje takvih sigurnosnih problema, ali istovremeno imamo ogromnu proizvodnju koda, tako da je i šansa da se neka greška napravi veća, ističe Ždrnja.

Što je sam kod aplikacije veći (čak i jednostavno – prema broju linija), to je i šansa za neku sigurnosnu ranjivost ili grešku veća, dodaje.

“Kad u priču dodamo još i kompleksnost današnjih sustava, koji često moraju jedni s drugima komunicirati, nije čudo da se ovakve ranjivosti često pojavljuju.”

To potvrđuje i izjava Sandeepa Johrija, čelnika Checkmarxa, koji je kazao da je njihovo istraživanje naglasilo kako je složenost aplikacija “u oblaku” donijela niz novih rizika u vrijeme kada je digitalna transformacija cilj kojim teže sve kompanije s poduzetnim duhom.

Pritisak rokova

Sarajevski programer Damir, koji je pristao govoriti pod uvjetom anonimnosti, govori da nije iznenađen rezultatima ovakvog istraživanja.

Prema njegovim riječima, veliki broj kompanija je prisiljen ispoštovati rokove, te stoga neki znaju “pustiti” programe i aplikacije za koje znaju da imaju određene ranjivosti i propuste.

“Međutim, prema mojim saznanjima – što iz razgovara s kolegama, što iz onog što sam čitao iz referentnih medija, te kroz neka iskustva – dobar dio tih timova, kompanija koje puste programe sa propustom u kodu to rade s namjerom da te propuste naknadno ‘zakrpe’, odnosno da budućim ažuriranjem uklone te propuste.”

Ipak, činjenica je da postoje i oni koji svjesno objave takve propuste jer smatraju da oni predstavljaju veoma mali rizik, dodaje, iako takvo rezonovanje nema mjesta u današnjem svijetu.

Dodatno, kaže, neke kompanije i timovi objave ranjive kodove jer su ti propusti otkriveni kasno u razvojnom ciklusu, kada je već bilo prekasno da se problem riješi prije puštanja programa i aplikacija u javnost.

Prema njegovim riječima, često programeri, koji u konačnici i snose odgovornost za popravljanje propusta u kodu, nemaju adekvatnu obuku ili pristup sigurnosnim alatima s odgovarajućim integracijama kako bi bili učinkoviti u ublažavanju ranjivosti.

Osim toga, nemali dio programera je često “priučen” bez formalnog obrazovanja ili, ako su ga i imali, nemaju adekvatno znanje za ublažavanje problema koje otkriju trenutni alati za testiranje. Neki developeri također smatraju da ih takvi alati za testiranje usporavaju ili ima prave dodatne probleme.

“A kad imate rok koji morate ispoštovati, neki će učiniti sve što mogu da posao završe na vrijeme, bez previše razmišljanja o potencijalnim posljedicama. Koliko god to neprofesionalno zvučalo, tako stvari stoje”, kazao je Damir.

‘Katastrofalne posljedice’

Ždrnja ističe da posljedice svjesnih objava ranjivih kodova nekada mogu biti katastrofalne.

Primjera radi, takvi propusti mogu dovesti do toga da napadač može čitati tuđe podatke, odnosno imati pristup korisničkim podacima, dok u drugim slučajevima mogu provesti neke aktivnosti u ime drugih korisnika.

Upravo se njegov tim u INFIGO-u bavi penetracijskim testiranjima gdje je cilj upravo pronaći takve ranjivosti – “i tu se može nekada naći ogroman broj kritičnih ranjivosti u aplikacijama.”

S razvojem i većom dostupnošću računara, a zatim i pametnih prijenosnih uređaja poput telefona i tableta, svakodnevno smo “bombardirani” upozorenjima o nužnosti korištenja raznih antivirusnih i firewall programa, kako bismo zaštitili svoje uređaje, ali i svoje podatke od zlonamjernih programa i zlonamjernih napada.

Međutim, čak i kada korisnik poduzme preporučene korake, opet ostaje ranjiv na probleme svjesno objavljenih nesigurnih programskih kodova.

Efikasnost zaštita

“Klasične zaštite tu na žalost ne pomažu puno – kako je riječ o aplikativnim problemima, pogotovo u, na primjer, sustavima koje možda koristimo na svakodnevnoj bazi, klasične zaštite su bespomoćne”, kaže Ždrnja.

Postoje, naravno, specijalizirani produkti (na primjer, za web aplikacije takozvani Web Application Firewall – WAF) koji mogu donekle pomoći, no u velikom broju slučajeva napadač koji je determiniran može naći načina da zaobiđe takvu zaštitu, ističe Ždrnja.

“Generalno je tu pravilo da se ranjivost u konačnici mora ukloniti tamo gdje je i nastala – u samoj aplikaciji.”

Što ne znači da korisnici trebaju sjediti skrštenih ruku.

Kako navodi Ždrnja, sami korisnici trebaju paziti na svoju sigurnost i tu klasične zaštite pomažu, barem kod napada koji nisu direktno vezani s namjerno objavljenim nesigurnim kodovima.

U drugim slučajevima trebali bi tražiti od svojih dobavljača provođenje provjera, poput spomenutih penetracijskih testova, i usklađivanje s najboljim praksama jer je to jedini način da se ovakve ranjivosti spriječe, dodaje.

Izvor: Al Jazeera

Reklama