Šta je bezbednost aplikacije? Proces i alati za obezbeđenje softvera

Provera bezbednosnih propusta u vašim aplikacijama je bitna jer pretnje postaju sve jače i preovlađujuće. Bazbednost aplikacija je proces koji čini aplikacije sigurnijim tako što pronalazi, popravlja i poboljšava bezbednost aplikacija. Mnogo toga se dešava tokom razvojne faze, ali uključuje takođe alate i metode za zaštitu aplikacija kada su one već u primeni. Ovo postaje sve važnije jer hakeri svojim napadima sve više ciljaju aplikacije. Bezbednost aplikacija dobija mnogo pažnje. Dostupne su na stotine alata za obezbeđivanje različitih elemenata vašeg portfolija aplikacija, od zaključavanja izmena kodiranja do procene nehotičnih pretnji kodiranja, procene opcija enkripcije i dozvola za reviziju i prava pristupa. Postoje specijalizovani alati za mobilne aplikacije, za aplikacije na mreži i za zaštitne zidove dizajnirane posebno za veb aplikacije.

Zašto je važna bezbednost aplikacije

Što brže i ranije u procesu razvoja softvera možete da pronađete i rešite probleme bezbednosti, vaše poduzeće će biti bezbednije.  Pa, pošto svi greše, izazov je da se greške pronađu na vreme. Na primer, uobičajena greška kodiranja je da se dozvole neprovereni ulazi. Ako je haker pronađe, ova greška se može pretvoriti u SQL injektovanje, a zatim u curenje podataka. Alati za bezbednost aplikacija koji se integrišu u vaše okruženje za razvoj aplikacija mogu ovaj proces i radni proces učiniti jednostavnijim i efikasnijim. Ovi alati su takođe korisni ako radite revizije usklađenosti, jer mogu uštedeti vreme i troškove tako što će uhvatiti probleme pre nego što ih revizori vide. Brzom porastu u segmentu bezbednosti aplikacija pomogla je promena načina na koji se poslovne aplikacije grade u poslednjih nekoliko godina. Prošli su dani kada bi IT odeljenju bili potrebni meseci da definiše zahteve, izgradi i testira prototipove i isporuči gotov proizvod odeljenju krajnjih korisnika. Taj koncept danas izgleda gotovo čudan.

Umesto toga, imamo nove metode rada, koji se zovu kontinuirana implementacija i integracija, koji svakodnevno usavršavaju aplikaciju, u nekim slučajevima i svakog sata. To znači da bezbednosni alati moraju da rade u ovom svetu koji se stalno menja i da brzo pronalaze probleme u kodu. Gartner u svom izveštaju o ciklusu razvoja (engl. hype cycle) bezbednosti aplikacija (koji je ažuriran septembra 2018. godine) kaže da IT menadžeri “ne smeju da se zadrže na identifikaciji uobičajenih bezbednosnih grešaka u razvoju aplikacija i zaštiti od uobičajenih tehnika napada.” Oni nude više od desetak različitih kategorija proizvoda i opisuju gde se oni nalaze u svom “ciklusu razvoja”. Mnoge od ovih kategorija se tek pojavljuju i koriste relativno nove proizvode. To pokazuje koliko brzo se tržište razvija dok pretnje postaju složenije, teže se pronalaze i moćnije su u potencijalnoj šteti koju mogu da nanesu vašim mrežama, podacima i reputaciji vaše korporacije.

Alati za bezbednost aplikacija

Iako postoje brojne kategorije softverskih proizvoda za bezbednost aplikacija, suština materije se svodi na dve: bezbednosni alati za testiranje i proizvodi za zaštitu aplikacija. Prva je zrelije tržište sa desecima poznatih proizvođača, od kojih su neki velikani softverske industrije kao što su IBM, CA i MicroFocus. Ovi alati su dovoljno dobri pa je Gartner napravio svoj Magic Quadrant i klasifikuje njihov značaj i uspešnost. Sajtovi za pregled, kao što je IT Central Station, su takođe bili u stanju da ispitaju i rangiraju ove prodavce.
Gartner kategorizuje bezbednosne alate za testiranje u nekoliko širokih grupa, i one su donekle korisne kada odlučujete šta vam je potrebno za zaštitu vašeg portfolija aplikacije:

  • Statičko testiranje, koje analizira kôd na fiksnim tačkama tokom njegovog razvoja. Ovo je korisno za programere da provere svoj kôd dok ga pišu kako bi osigurali da se bezbednosna pitanja uvode tokom razvoja.
  • Dinamičko testiranje, koje analizira izvršni kôd. Ovo je korisnije, jer može da simulira napade na proizvodne sisteme i otkrije složenije obrasce napada koji koriste kombinaciju sistema.
  • Interaktivno testiranje, koje kombinuje elemente statičkog i dinamičkog testiranja.
  • Mobilno testiranje je posebno dizajnirano za mobilna okruženja i može da ispita kako napadač može u potpunosti da preuzme mobilni OS i aplikacije koje se na njemu izvršavaju.

Drugi način da se pregledaju alati za testiranje je po tome kako se oni isporučuju: putem lokalnog alata ili putem pretplatnog servisa zasnovanog na SaaS-u kojem šaljete svoj kôd na onlajn analizu. Neki čak rade oboje. Treba proveriti koje programske jezike podržava svaki dobavljač testiranja. Neki ograničavaju svoje alate na samo jedan ili dva jezika. (Java je obično sigurno podržana.) Drugi su više orijentisani na Microsoft .Net. Isto važi i za integrisana razvojna okruženja (IDE): neki alati rade kao softverski dodaci ili proširenja za ove IDE-ove, tako da je testiranje koda jednostavno kao pritisak na dugme. Drugo pitanje je da li je neki alat izolovan od drugih rezultata testiranja, ili može da ih ugradi u svoju analizu. IBM je jedan od retkih koji mogu da uvezu nalaze iz ručnih pregleda koda, testiranja neprobojnosti, procena ranjivosti i testova konkurenata. Ovo može biti korisno, posebno ako imate više alata koje morate da pratite.

Ne zaboravimo na alate za zaštitu aplikacija. Glavni cilj ovih alata je da se aplikacija ojača tako da je teže izvršiti napade. Ovo je manje ispitana teritorija. Tu ćete naći veliku kolekciju manjih proizvoda usmerenih na pojedinačno pitanje koji u mnogim slučajevima imaju ograničene istorijske i korisničke baze. Cilj ovih proizvoda je da urade više od samog testiranja na ranjivosti i da aktivno štite vaše aplikacije od oštećenja ili provala. One obuhvataju nekoliko različitih širokih kategorija:

  • Samozaštita aplikacija za vreme izvršavanja (RASP): Ovi alati se mogu smatrati kombinacijom testiranja i zaštite. Oni pružaju meru zaštite od mogućih napada obrnutog inženjerstva. RASP alati kontinuirano nadgledaju ponašanje aplikacije, što je posebno korisno u mobilnim okruženjima kada se aplikacije mogu prepisati, pokrenuti na rutovanom telefonu ili zloupotrebiti privilegije da bi se primorali da rade nečasne stvari. RASP alati mogu da šalju upozorenja, da prekinu zabludele procese, ili prekinu samu aplikaciju ako se ustanovi da je provaljena. RASP će verovatno postati podrazumevan u mnogim mobilnim razvojnim okruženjima i ugrađivaće se kao deo drugih alata za zaštitu mobilnih aplikacija. Očekuje se više povezivanja među proizvođačima softvera koji imaju solidna RASP rešenja.
  • Maskiranje koda: Hakeri često koriste metode maskiranja da bi sakrili svoj zlonamerni softver, a sada alati dozvoljavaju programeru da to uradi kako bi zaštitio svoj kôd od napada.
  • Alati za šifrovanje i sprečavanje neovlašćenog pristupa: Ovo su drugi metodi koji se mogu koristiti da bi se lošim momcima onemogućio uvid u vaš kôd.
  • Alati za otkrivanje opasnosti: Ovi alati ispituju okruženje ili mrežu na kojoj se izvršavaju vaše aplikacije i procenjuju potencijalne pretnje i zloupotrebe odnosa poverenja. Neki alati mogu da obezbede „otiske prstiju“ uređaja da bi se utvrdilo da li je mobilni telefon rutiran ili na drugi način ugrožen.

Izazovi bezbednosti aplikacija

Deo problema je to što IT mora da zadovolji nekoliko različitih gospodara da bi osigurao svoje aplikacije. Najpre mora da drži korak sa razvojem tržišta alata za bezbednost i razvoj aplikacija, ali to je samo ulazna tačka. IT takođe mora da predviđa poslovne potrebe jer se sve više preduzeća upušta dublje u digitalne proizvode, pa se potrebe njihovog portfolija aplikacija razvijaju u sve složeniju infrastrukturu. Takođe moraju da znaju kako se SaaS usluge konstruišu i obezbeđuju. To je bio problem, pa je nedavno anketiranje 500 IT menadžera utvrdilo nedostatak prosečnog nivoa znanja o dizajnu softvera. U izveštaju se navodi da će se „rukovodioci za informacione tehnologije možda naći na meti visokog rukovodstva, jer su odgovorni za smanjenje složenosti, pridržavanje budžeta i brzinu modernizacije da bi se pratili poslovni zahtevi“.

Konačno, odgovornost za bezbednost aplikacija možda je raširena na nekoliko različitih timova unutar vaših IT operacija: ljudi iz tima za mrežu su možda zaduženi za rad zaštitnog zida za veb aplikacije i druge alate usmerene na mrežu, ljudi iz tima za stone aplikacije su zaduženi za testiranja usmerena na krajnje tačke, a različite razvojne grupe se bave drugim pitanjima. To otežava predlaganje jednog alata koji će odgovarati svačijim potrebama, pa je zato tržište postalo toliko fragmentirano.

Trendovi u bezbednosti aplikacija

U januaru 2019. godine, Imperva je objavila svoje Stanje ranjivosti veb aplikacija u 2018 (State of Web Application Vulnerabilities in 2018). Ukupni nalazi su bili pozitivni. Mada broj ranjivosti veb aplikacija i dalje raste, taj rast se usporava. To je prvenstveno zbog smanjenja ranjivosti IoT-a – svega 38 novih je prijavljeno 2018. prema 112 u 2017. S druge strane, ranjivosti API-ja povećane su za 24% u 2018. godini, ali to je manje od polovine rasta od 56% u 2017. godini.

Još jedna oblast u kojoj se pojavljuje više ranjivosti, prema izveštaju Imperve, jesu sistemi za upravljanje sadržajem, posebno WordPress. U toj platformi se broj prijavljenih ranjivosti povećao za 30%. U izveštaju se navodi da sistem Drupal za upravljanje sadržajem, uprkos tome što je daleko manje popularan od WordPress-a, postaje meta napadača zbog dve ranjivosti: Drupalgeddon2 (CVE-2018-7600) i Drupalgeddon3 (CVE-2018-7602). Oba dopuštaju napadačima da se povežu sa pozadinskim bazama podataka, skeniraju i zaraze mreže i klijente zlonamernim softverom, ili prekopavaju kripto valute. Imperva tvrdi da je 2018. godine blokirala više od pola miliona napada koji su koristili ove ranjivosti.

Daleko najzastupljenije vrste ranjivosti veb aplikacija bile su injekcije (19% od ukupnog broja) i skriptovanje dinamički generisanih veb stranica (14% od ukupnog broja). Daljinsko izvršavanje komandi je bilo najčešći tip ranjivosti injektovanja, sa ukupno 1.980 prijavljenih slučajeva. SQL injekcije su bile druge sa 1.354.

Izvor: CSO

5257-xa-sta-je-bezbednost-aplikacije-proces-i-alati-za-obezbedenje-softvera-xa