Kas ir XSS uzbrukumi?

Iepriekšējā rakstā mēs aizsākām runāt par biežāk izplatītajiem uzbrukumiem interneta vietnēm. Šajā rakstā sīkāk aplūkoti tā sauktie XSS uzbrukumi. Ja Jūsu uzņēmuma tīmekļa vietnē ir atrodama kāda lietojumprogrammas ievades forma, kas sniedz iespēju lapas apmeklētājam ievadīt datus (kaut vai tikai komentāru), tā var kļūt par vietu starpvietņu skriptošanas (XSS) uzbrukumiem. XSS uzbrukumi parasti ir līdzīgi injekcijām, ar kuru palīdzību tiek ievadīti ļaunprātīgi skripti. Ja tīmekļa vietne nav nodrošināta pret starpvietņu skriptošanu (XSS), uzbrucējs, nosūtot tekstu ar uzbrukuma kodu var ievieto tīmekļa vietnē savu programmu, kas tiek izpildīta lapas apmeklētāju pārlūkprogrammās, tādējādi iegūstot informāciju par apmeklētāja datiem, piemēram, viņa lietotāja vārdu un paroli. Tīmekļa lietojumprogrammas, kas neveic tām iesūtīto datu atbilstošu pārbaudi vai filtrēšanu, ļauj patvaļīgam kodam izpildīties uz klienta datora. Tiek lēsts, ka nepilnības tīmekļa lietojumprogrammās, kas pieļauj šādas darbības, veido lielāko daļu drošības ievainojamību tīmekļa vietnēs. Lai gan starpvietņu skriptošanas (XSS) uzbrukumu mērķis bieži vien ir lapas apmeklētājs, nevis pati lapa, šie injicētie skripti var arī pārveidot lapas saturu. Izmantojot šo ievainojamību, urķis var:
  • izpildīt kodu upura tīmekļa pārlūkā,
  • pārtvert lietotāja sesiju,
  • ievietot ļaunprātīgu saturu tīmekļa lapā,
  • pāradresēt lietotājus uz citu lapu,
  • pārņemt kontroli pār lietotāja pārlūku, izmantojot ļaunprātīgu programmatūru utt.
Kas var būt uzbrucējs? Jebkurš, kas var nosūtīt neuzticamus, nedrošus datus sistēmai:
  • parasti lietotāji;
  • reģistrēti lietotāji.
Kāpēc? Visbiežāk šādas problēmas rodas, ja tīmekļa vietnē ir atrodama ievades forma, kas ļauj lapas apmeklētājam ievadīt informāciju un publicē tos bez jebkādas pārbaudes, filtrēšanas vai validācijas. Zemāk tiek piedāvāti vairāki uzbrukuma scenāriji. Tie var kalpot arī kā piemēri, kā Jūs paši varat pārbaudīt savas vietnes drošību. Uzbrukuma scenāriji Scenārijs nr.1: Ja uzņēmuma tīmekļa vietne paredz komentāru pievienošanas iespēju, taču šai formai nav izveidota aizsardzība, tā var kļūt, par ērtu vietu, kā uzņēmuma konkurentiem bojāt jūsu reputāciju, tajā pat laikā arī reklamējot savu uzņēmumu. Piemēram, komentāra vietā var ievietot šādu tekstu: __________________________________________________________________ Sveiki, ļoti jauka lapa! <BODY ONLOAD=alert('Si_lapa_ir_nedrosa_apmeklejiet_lapu_www.esidross.lv')> __________________________________________________________________ Katru reizi lietotājam apmeklējot lapas sadaļu, kurā publicēts komentārs, tiks izpildīta komentārā ierakstītā komanda. Konkrētā piemēra gadījumā pārlūkprogrammā parādīsies paziņojums ar esidross.lv reklāmu. Scenārijs nr.2: Ja uzņēmuma tīmekļa vietnē reģistrētā lietotāja dati tiek glabāti, izmantojot sīkdatni (cookie), un vietne nav aizsargāta no XSS uzbrukumiem, uzbrucējs var pārtvert jūsu lietotāja datus un izmantot tos savtīgos nolūkos. To pārbaudīt var komentāru iesūtīšanas formā ievadot šādu tekstu: __________________________________________________________________

<script>

alert(document.cookie);

</script>

__________________________________________________________________ Ja, to publicējot, tiek attēloti jūsu lietotāja dati (piemēram, lietotāja identifikators), tad Jūsu uzņēmuma vietne pret šāda veida lietotāja datu pārtveršanu nav nodrošināta.   ______________ * Turpinājums nākamajā rakstā: "Kas ir SQL injekcijas?" ** Rakstā izmantoti materiāli no M.Brieža bakalaura darba "Tīmekļa vietnes drošības novērtēšana un uzlabošana".