Objavljeno: 13.6.2017 | Avtor: Miran Varga | Monitor Posebna 2017

Aplikacije – blagoslov in prekletstvo hkrati

Ko se boste ob branju novic ali gledanju poročil o zlorabi podatkov uporabnikov naslednjič (za)čudili, kako težko je napisati varno spletno ali še posebej mobilno aplikacijo, se spomnite spodnjih vrstic. Presneto težko je!

Termin aplikacijska varnost pogosto enačimo s terminom varnost programske opreme, čeprav je med njima pomembna razlika. V grobem je aplikacijska varnost reaktiven pristop, ki nastopi po tem, ko je bila programska oprema že implementirana. Varnost programske opreme pa, nasprotno, zahteva proaktiven pristop, torej se strokovnjaki za varnost in programerji z njo ukvarjajo, še preden dajo svojo rešitev v rabo. Če naj bo programska oprema varna, je treba varnostne mehanizme in rešitve vgraditi v vse faze življenjskega cikla programske opreme.

Aplikacije so povezave med podatki in uporabniki (ali drugimi aplikacijami). Ko želi poslovni uporabnik opraviti kompleksno analizo podatkov o navadah strank, mu aplikacija poenostavi in pohitri sicer cel kup kompleksnih in časovno potratnih ročnih izračunov. Podobno so tudi bančne transakcije danes opravljene s pomočjo spletnih ali mobilnih aplikacij, kjer se v zalednih procesih obdela in prenese (ter shrani) vrsta različnih podatkov.

Programska oprema ne prepozna občutljivosti ali zaupnosti podatkov, ki se obdelujejo ali prenašajo prek interneta. Torej je treba programsko opremo zasnovati in razviti glede na podatke, s katerimi bo imela opravka. Če imajo podatki, ki se bodo vnašali ali obdelovali s pomočjo aplikacije, oznako »javni«, aplikacija ne potrebuje avtentikacije. Brž ko pa želi programska oprema »vedeti«, s katerim uporabnikom ima opravka, mora znati upravljati uporabnike, varnostni strokovnjaki pa bodo razvijalcem poslovnih aplikacij hitro priporočili večfaktorsko metodo avtentikacije uporabnikov in zaščito/šifriranje podatkov – tako na napravi kot »na poti«. Da bi zaščitili samo programsko kodo in morebitne občutljive podatke, ki jih hrani, je treba v aplikacije vnesti ustrezne varnostne mehanizme v različnih fazah njihovega razvoja – tako pred namestitvijo kot tudi po njej.

Seznam aktivnosti, ki jih morajo načrtovalci, razvijalci in programerji imeti v mislih, še preden aplikacija preide v praktično rabo, je resnično dolg. Takole se bere:

• varnostni načrt aplikacije

• razvoj varnostnih mehanizmov s strani razvijalcev

• razvoj varnih postopkov rabe aplikacije

• preverjanje možnih vnosov s strani uporabnika

• avtentikacija uporabnikov

• upravljanje sej uporabnikov

• večnivojska kontrola dostopa in funkcij

• implementacija močne enkripcije za zaščito podatkov v aplikaciji in na poti

• preverjanje komponent, ki jih zagotavljajo tretji ponudniki

• odpravljanje vseh odkritih napak v programski kodi in arhitekturi aplikacije

Šele nato nastopi aplikacijska varnost, katere aktivnosti so na vrsti šele, ko je aplikacija že zagnana (predana v rabo). Mednje sodijo:

• varnostni preizkusi po implementaciji

• beleženje napak v dejanskem programskem okolju in sestavi

• zaznavanje morebitnih škodljivih kod ali stranskih vrat

• preverjanje nameščanja popravkov in/ali nadgradenj

• preverjanje odzivanja programa v peskovniku

Zagotavljanje varnosti v primeru spletne aplikacije

Spletne aplikacije najpogosteje delujejo v načinu odjemalec-strežnik, pri čemer se na strani uporabnika spletni brskalnik obnaša kot odjemalec, ki v strežnik pošilja različne zahtevke in od njega prejema odzive in podatke. Poenostavljeno lahko zapišemo, da prinaša zagotavljanje varnosti v primeru spletne aplikacije praktično iste izzive, kot jih poznamo iz sveta zaščite odjemalcev in strežnikov pa tudi varovanja podatkov v hrambi ter takrat, ko so »v gibanju«.

Z zgornjega seznama izzivov je jasno, da je v praksi najteže varovati stran odjemalca, predvsem zato, ker so odjemalci lahko zelo različni, nanje pa preži tudi daleč največ digitalnih groženj. Sodobni spletni brskalniki so sicer precej bolj zaščitniški do aplikacij, ki tečejo skoznje, a ker večina poslovnih aplikacij še vedno zagotavlja t. i. združljivost za nazaj, si tako tudi rišejo večjo tarčo nase, saj so starejše tehnologije pogosto ranljivejše.

Strežniška stran ima lažje delo, saj lahko že med razvojem aplikacije precej natančno opredelimo, na kakšnih strežnikih bo tekla.

Strežniška stran ima lažje delo, saj lahko že med razvojem aplikacije precej natančno opredelimo, na kakšnih strežnikih bo tekla, in nato programerji lažje zaščitijo programsko kodo in shranjene podatke.

Zagotavljanje varnosti v primeru mobilne aplikacije

Raba mobilnih aplikacij se skokovito povečuje, poslovni uporabniki jih tako kot domači uporabniki malone zahtevajo. Pri tem se razvijalci spoprijemajo z vrsto izzivov. Če se jim je stanje na področju operacijskih sistemov po odpadu Oken in BlackBerry OSa poenostavilo do obisti in praktično aplikacije razvijajo le še za platformi Android in iOS, jim nepregledno število naprav z izjemno pestro strojno zasnovo in občasno pomanjkljivimi varnostnimi funkcijami še kako »kravžlja« možgansko skorjo. Posebej, kako obvarovati podatke na pametnih telefonih in tablicah, ki jim varnost ni bila položena v zibelko. Večina mobilnih naprav v svojih privzetih sestavah zelo slabo varuje že osnovno zasebnost uporabnika in so s stališča poslovne rabe neprimerne, saj so celo poslovna e-pošta in seznam stikov v zaupanja nevrednih (brezžičnih) omrežjih izpostavljeni nepridipravom. Nekatere mobilne naprave imajo že tovarniško nameščeno programsko opremo za pridobivanje podatkov uporabnika. A težav z varovanjem mobilnih aplikacij je več. Mobilne naprave razmeroma pogosto ukradejo (če gre za merjen napad), nanje nepridipravi nameščajo škodljive kode, vanje nameščene aplikacije lahko druga stran izpostavi povratnemu inženirstvu in tako pridobi dostop do občutljivih podatkov podjetja. Pa smo našteli le nekaj možnosti. V času, ko skoraj vsaka mobilna aplikacija od uporabnika zahteva dostop do skoraj česarkoli na uporabnikovi napravi, npr. zgodovine klicev, vsebine sporočil, seznama stikov itd., je varnost poslovnih mobilnih aplikacij zares težko zagotavljati.

Podjetja in posamezniki, ki se vendarle podajo na to pot, naj upoštevajo še naslednje: možnost pridobitve oziroma preprečitve korenskega dostopa, vgradnjo mehanizmov, ki prepoznajo poskuse povratnega inženirstva, večnivojsko avtentikacijo uporabnikov s kombinacijo glasovnih ukazov, prstnih odtisov, fotografij in geolokacije. Seveda za mobilne aplikacije veljajo tudi vsa priporočila iz sveta ustvarjalcev spletnih aplikacij.

Kako težko je zagotavljati resnično varnost mobilnih aplikacij, kažejo primeri, ko s strani hekerjev napisane aplikacije prelisičijo celo zelo temeljito preverjanje aplikacijskih tržnic Apple iTunes in Google Play. Nekatere odkrijejo šele po daljšem času, celo takrat, ko so okužili, okradli ali zlorabili že več milijonov uporabnikov in njihovih podatkov.

In če vse našteto mobilna aplikacija prestane, je še vedno verjetno, da se bodo zlikovci podali v prestrezanje procesa njene distribucije in nič hudega slutečim žrtvam podtaknili svojo okuženo različico.

Preverjanje aplikacij

Glede na zapisano je očitno, da morajo izdelovalci aplikacije, kakršnekoli že so, temeljito preizkusiti. Testiranja so namenjena odkrivanju hroščev, napak v zasnovi in arhitekturi ter nastavitvah. Stroka pozna vrsto učinkovitih načinov preverjanja varnosti aplikacij:

• Statično preverjanje varnosti aplikacije (SAST) se osredotoča na izvorno kodo.

• Dinamično preverjanje varnosti aplikacije (DAST) se osredotoča na odkrivanje ranljivosti, ki bi bile prisotne v aplikaciji oziroma infrastrukturi.

• Interaktivno preverjanje varnosti aplikacije (IAST) je kombinacija prej opisanih metod in vsebuje analizo obnašanja aplikacije, vhodno-izhodnih podatkov, prometa itd.

• Metoda RASP (Runtime Application Self Protection) preveri možnosti samoobrambe aplikacije pred zunanjimi grožnjami, kot so opustitev sej(e), opustitev aplikacije, pošiljanje obvestil itd.

Programerji in vsi drugi, dajte vse od sebe

Načrtovanje in programiranje varnosti aplikacij seveda ni edini (učinkovit) način njihove zaščite. Aplikacije so le eden izmed gradnikov sodobnega poslovnega okolja. Oddelek IT podjetja ali pa ponudnik storitev (če gre za aplikacije iz oblaka, ki so na voljo kot storitev) mora skrbno varovati svojo infrastrukturo, na kateri aplikacije tečejo, torej strežnike. Omrežni skrbniki morajo poskrbeti za varnost omrežja podjetja in njegove ustrezne nastavitve.

Če naj bo raba poslovne aplikacije res varna, morajo sodelovati vsi v varnostni verigi. Aplikacija in strežnik morata biti ustrezno konfigurirana, povezava kriptirana, hramba prav tako, avtentikacija uporabnikov na visoki ravni in večfaktorska. Pomagajo seveda tudi drugi dejavniki, kot so nadzor dostopa, hranjenje ključev na različnih krajih, redno vzdrževanje in posodabljanje okolja IT …

Varnost programske opreme zahteva celovit pristop organizacije. Ta mora stremeti k stalnemu izboljševanju svoje drže na področju informacijske varnosti. Varovanje digitalnega okolja vedno bolj postaja podobno varovanju premoženja, pomisliti je treba na vsako možnost. In imeti načrt, kako se odzvati takrat, ko gre kaj narobe. Eno je jasno – poslovni in domači uporabniki smo takšne in drugačne aplikacije vzljubili tako zelo, da se njihovi rabi kljub številnim varnostnim incidentom zlepa ne bomo odrekli.

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

Komentirajo lahko le prijavljeni uporabniki

 
  • Polja označena z * je potrebno obvezno izpolniti
  • Pošlji