Versija 8 nuo 2012-05-22 13:46:01

Išvalyti žinutę
Locked History Actions

Cross-site scripting

Žodis angliškai:

Cross-site scripting

Santrumpa:

XSS

Žodis lietuviškai:

Įterptinių komandų atakos

Apibrėžimas:

Dauguma šiuolaikinių internetinių svetainių yra dinamiškos, taigi vartotojui naršymas tampa ženkliai malonesnis. Dinamiškumas įgyvendinamas serverio procesais kurie parsiųsti į vartotojo kompiuterį yra vykdomi ir priklauso nuo vartotojo poreikių ir nustatymu. Dinaminės sistemos, skiriasi nuo statinių ir jas gali pažeisti įterptinių instrukcijų atakos (ang. cross-site scripting).

Internetinė svetainė turi dvi sudedamąsias dalis: tekstą ir HTML antraštę, generuojamą serverio ir interpretuojamą vartotojo naršyklės. Statinių svetainių serveriai pilnai kontroliuoja, tai kaip vartotojų naršyklės interpretuoja kodą, o dinaminių svetainių serveriai ne. Pašalinis piktavalio kodas gali būti įterptas į dinaminę svetainę ir nei serveris nei vartotojas to nepastebės.

Įterptinių instrukcijų atakos sparčiai populiarėja piktavalių tarpe, nes yra daugybė pavyzdinių išeities kodų. Kiekvieną mėnesį aptinkamos įterptinių instrukcijų atakos. Nuo jų dažniausiai nukenčia komercinės paskirties svetainės.

Įterptinių instrukcijų atakos:

Įterptiniu instrukcijų atakos įgyvendinamos per taikomųjų interneto programų pažeidžiamą, leidžiantį apeiti kliento pusės apsaugos mechanizmą. Sugebėjęs įterpti savo skriptą į puslapio kodą piktavalis įgyja įvairių teisių ir privilegijų, taip gali pažeisti ir atpažinti naršyklei skirtą informaciją. Įterptinių instrukcijų atakos yra viena iš kodo įterpimo atakų rūšių. Standartinė įterptinių instrukcijų atakos sandara.

pav.jpg

Šiuo metu nėra nesistovėjusių įterptinių instrukcijų klasifikavimo metodų, bet dažniausiai jos skirstomos į dvi grupes: neatkaklios (ang. non-persistent) ir atkaklios (ang. persistent).

Neatkaklios atakos

Neatkaklios įterptinių instrukcijų atakos yra dažniausiai sutinka jų rūšis. Šios atakos įvyksta tuomet kai klientas perduoda serveriui patvirtinimą. Piktavalis tuo metu sugeneravęs atsako puslapį gali perėmęs kliento teises prisijungti prie uždaros sistemos.

HTML dokumentas yra plokščios struktūros, kurioje yra persipynę valdymo komandos su formatavimo komandomis ar tiesiog tekstu. Taigi į visą šią maišalynę galima įterpti pašalinį kodą kuris interpretuotas naršyklės gali sukelti pavojų, leisti piktavaliui įsiskverbti. Klasikinis įsiskverbimo atvejis sutinkamas svetainės paieškos sistemoje: klientas ieško sistemoje eilutės, ieškomoji eilutė pateikiama po simboli rezultatų puslapyje, nurodant ko ieškota. Jeigu priimdama atsaką sistema nėra apsaugota nuo HTML valdymo simboliu, gali įvykti įterptinių instrukcijų ataka.

Dažniausiai neatkaklios atakos vykdomos per neutralias svetaines, ar elektroninį paštą. Vartotojui atsiunčiama nekaltai atrodanti nuoroda į patikimą svetainę, o nuorodoje būna užkoduotas įterptinės instrukcijos vektorius. Jeigu patikima svetainė nėra apsaugota nuo įterptinių instrukcijų, kliento naršyklė gali įvykdyti užkuoduota įterptinės instrukcijos skriptą.

Atkaklios atakos

Atkaklios įterptinių instrukcijos yra ženkliai pavojingesnės ir žalingesnės. Jos įgyvendinamos patalpinus (išsaugojus) piktavalio skriptą serveryje ir kiekviena karta pateikiamas visiems vartotojams apsilankantiems svetainėje. Klasikinis tokios atakos pavyzdys – skelbimų lentos, kuriuose vartotojams leidžiama ne tik skaityti, bet ir skelbti HTML skriptus.

Tokios atakos pavyzdys – pažinčių portalas, kurio klientai skaito vieni kitų profilius, tam kad patikrintų ar jie įdomūs. Dėl konfidencialumo svetainė nerodo tikrųjų vartotojų vardų ir elektroninio pašto adresų. Vienintelis atvejis kuomet rodoma tikra informacija yra tuomet, kai vartotojas prisijungia ir mato savo tikrą informaciją, bet tyri prieigą tik prie savo asmeninių duomenų.

Piktavalis nusprendžia prisijungti prie pažinčių portalo ir nori sužinoti asmeniniu kitų vartotojų duomenis. Tam, kad sėkmingai įgyvendintų sumanymą piktavalis patalpina įterptinių instrukcijų skriptą savo profilyje. Aplankęs piktavalio profilį kitas vartotojas automatiškai parsisiunčia piktavalio skriptą ir taip suteikia prieiga prie savo asmeninių duomenų.

Ataklios įterptinių instrukcijų atakos yra daug kenksmingesnės už kitas, nes yra vykdos automatiškai. Šios atakos skriptas patalpinamas serveryje ir pažeidžia visus vartotojus, nereikia konkrečiai pasirinkti aukos. Šis atakos metodas ypač išpitęs įvairiuose socialiniuose tinkluose. Įsiskverbimo sudėtingumas priklauso nuo atakuojamų tinklų apsaugos lygio, kartais piktavaliui netgi nereikia tiesiogiai bendrauti su svetaine.

Tradiciniai ir DOM pagrįsti pažeidžiamumai

Tradiciškai įterptinių instrukcijų atakos kyla iš serverio dalies atsakingos už HTML atsako paruošimą vartotojui. DOM pagrįstos atakos kyla iš kliento pusės. DOM – dokumento objekto modelis. Tokios atakos metu piktavalio skriptas manipuliuoja svetainės būsena ir įterpia į ją dinamiškai kintančius duomenis. Atakų pavyzdžiai Piktavaliai siekdami sėkmingai įgyvendinti įterptinių instrukcijų atakas, privalo skirtingai vykdyti kiekvienos klasės atakas. Šiame poskyryje pateikiami atkaklios ir neatkaklios atakos pavyzdžiai.

Neatkakli ataka:

1. Klientas lankos svetainėje reikalaujančioje autentifikavimo ir joje yra saugoma asmeninė informacija apie sąskaitas.

2. Piktavalis pastebi, kad svetainėje yra spragų per kurias galima įterpti piktavališkas instrukcijas.

3. Piktavalis nusiunčia elektroninį laišką klientui su fiktyvia nuorodą.

4. Klientas nuspaudžia aplanko piktavalio nuorodą į svetainę.

5. Piktavalio skriptas pasileidžia prisijungusioje prie svetainės naršyklėje.

Atkakli ataka:

1. Piktavalis paskelbia savo skriptą socialiniame tinkle.

2. Klientas perskaito piktavalio žinutę, pasileidžia skriptas.

3. Piktavalis įgyja kliento teises.

Išvados:

Įterptinių instrukcijų atakas įmanoma įgyvendinti tik interaktyviuose svetainės. Statinės svetainės yra apsaugotos nuo šios atakų rūšies. Dauguma dinaminių svetainių apsaugos priemonių susijusios su jų dinamiškumo mažinimu. Siekiant apsisaugoti nuo šio pobūdžio atakų svarbiausia neatidarinėti nuorodų elektroniniuose laiškuose gautuose iš nepatikimų šaltinių. Šio pobūdžio atakos dažnai sutinkamos socialiniuose tinkluose.

Naudota literatūra:

1. The origins of Cross – Site Scripting.[interaktyvus]. 2006. Grossman, J. [Žiūrėta 2012 m. gegužės 21 d.]. Prieiga per internetą: <http://jeremiahgrossman.blogspot.com/2006/07/ origins-of-cross-site-scripting-xss.html>

2. BRODKIN, J. 2007. The top 10 reasons Web sites get hacke. [interaktyvus], Network World (IDG). [žiūrėta 2012 m. gegužės 22 d.]. Prieiga per internetą: <http://www.networkworld.com/news/2007/100407-web-site-vulnerabilities.html>

3. Web Application Security Consortium[interaktyvus]. 2005. [žiūrėta 2012 m. gegužės 15 d.]. Prieiga per internetą: <http://en.wikipedia.org/wiki/Cross-site_scripting>