Nasveti za zaščito pred grožnjami, ki jih prinaša XSS ranljivost

Velika večina današnjih storitev v Internet omrežju se izvaja preko spletnih aplikacij. Brez njih si Internet omrežja ne znamo več zamisliti. Spletne aplikacije so pomembna vez med uporabniki in podatki, zato predstavljajo eno izmed glavnih groženj informacijskim sistemom v podjetjih, saj v sebi lahko skrivajo številne tehnične in vsebinske ranljivosti.

 

Ena izmed ranljivosti spletnih aplikacij, ki jo pri izvajanju varnostnih pregledov različnih spletnih aplikacij pogosto zaznamo in prinaša nevarnejše grožnje, je‘Cross-site-scripting’ (ali krajše XSS) ranljivost. Ogrožene niso samo aplikacije, ki so vsebinsko ‘zahtevnejše oz. kompleksnejše’ (npr. spletna banka ali spletna trgovina), ampak tudi vse ostale,  vključno s (splošnim) spletnim mestom podjetja.  Po eni strani je tu res manj točk, kjer lahko napadalec izkoristi tehnične pomanjkljivosti, po drugi strani pa so še privlačnejše, saj varnostni mehanizmi znotraj posameznih skript po navadi niso tako zapleteni in močni.

Pri XSS ranljivosti gre za tehnično ranljivost aplikacije, ki jo napadalec tako ali drugače izkoristi, z namenom škodovati uporabnikom aplikacije in ne aplikaciji sami. Omenjena specifika včasih povzroča »zmedo« pri razumevanju ranljivosti, hkrati pa ranljivosti neupravičeno pripisuje manjšo pomembnost. Kar je lahko zelo zavajajoče. XSS ranljivost lahko pomeni zelo hude grožnje – če omenimo le glavne tri:

  • nepooblaščena prijava v aplikacijo,
  • prevzem skrbniških pravic nad aplikacijo in
  • vdor v notranjost omrežja podjetja.

Zakaj je XSS ranljivost nevarna?

Nevarnost izhaja iz načina delovanja spletne aplikacije. Uporabniki se z aplikacijo, ki teče na strežniku, pogovarjajo preko svojih spletnih brskalnikov. Brskalnik aplikaciji posreduje določene pakete (podatke, klice, vprašanja ipd.), aplikacija pa nato vrača vsebino v obliki HTML zapisov, ki se prikaže v brskalniku. HTML jezik je zelo enostaven in posledično tudi zelo omejen. V sodobnih aplikacijah na interaktivnih spletnih straneh se je zato v HTML jeziku že dokaj zgodaj pričel uveljavljati ‘javascript’ programski jezik, ki daje HTML stranem bistveno več vsebine in interaktivnosti. Ker pa je ‘javascript’ jezik v svojih zmogljivostih bistveno manj omejen, njegova uporaba prinaša določene varnostne grožnje.

 

Če je aplikacija že v osnovi zlonamerna, lahko brskalnikom naloži izvajanje ukazov, ki bodo povzročili zlonamerno dejanje. Pri XSS ranljivosti pa gre za dobronamerno aplikacijo, ki sama po sebi nima namena brskalnikom nalagati zlonamernih ukazov, a ima tehnično ranljivost, ki napadalcem omogoča vplivati na to, kateri ‘javascript’ ukazi se posredujejo brskalnikom.

 

Grožnje, ki jih ‘javascript’ programski jezik prinaša, lahko razdelimo v štiri skupine:

  • kraja ‘Session Cookie’ podatka,
  • zavajanje uporabnika v brskalniku,
  • pridobivanje informacij iz brskalnika in
  • ostali napadi.

Kako se zavarovati pred napadi, ki izkoriščajo XSS ranljivost?

Načinov je več, smiselna je kombinacija uporabe več različnih načinov. Prvi del obrambe proti XSS napadom je ustrezno preverjanje podatkov v aplikaciji oz. filtriranje znotraj skript spletne aplikacije. Na uspešnost XSS napadov vplivajo tudi nastavitve spletnih strežnikov, med katerimi so ‘http-only’ oznaka piškotka, deaktivacija TRACE metode ter vzpostavitev SSL protokola. K obrambi pomembno pripomorejo nastavitve poštnih sistemov, sploh v primerih, ko je sestavni del napada tudi ‘phishing’ napad.

 

Marsikatero zlorabo spletnih aplikacij preprečimo tako, da skripte spletne aplikacije podrobno preverjajo določeno vsebino. To lahko stori tudi Web Application Firewall (WAF),  naprava, ki stoji pred spletnimi aplikacijami in je specializirana za zaznavanje in preprečevanje cele vrste znanih in neznanih zlorab spletnih aplikacij.

 

Naj omenim še rešitev, ki neposredno varuje uporabnike pred različnimi zlorabami, ki izhajajo iz obiska spletnih strani v Internet omrežju, vključno seveda z XSS zlorabami. Gre za Symantec Web Isolation sistem zaščite, ki namesto uporabnikov brska po spletnih straneh ter jim posreduje samo vizualno sliko. ‘Javascript’ in podobni ukazi se tako ne izvajajo v brskalniku uporabnika, ampak na tem vmesnem sistemu.

 

Še bolj poglobljeno razlago o XSS ranljivosti, katere grožnje prinaša, kje in kdaj se najbolj pogosto pojavlja in nenazadnje, kako se zavarovati, boste našli v beli knjigi Kako preprečiti ‘Cross-site-scripting’ napade.