Mõju
Ründaja, kes kasutab edukalt ära saidiülese skriptimise (XSS) haavatavust, võib maskeeruda ohvrikasutajaks, sooritada mis tahes toiminguid, milleks kasutaja on volitatud, ja pääseda juurde mis tahes kasutaja andmetele. [S1]. See hõlmab seansiküpsiste varastamist kontode kaaperdamiseks, sisselogimismandaatide hõivamist võltsvormide kaudu või virtuaalset rikkumist [S1][S2]. Kui ohvril on administraatoriõigused, saab ründaja täieliku kontrolli rakenduse ja selle andmete üle [S1].
Algpõhjus
XSS ilmneb siis, kui rakendus saab kasutaja juhitava sisendi ja lisab selle veebilehele ilma nõuetekohase neutraliseerimise või kodeerimiseta [S2]. See võimaldab ohvri brauseril tõlgendada sisendit aktiivse sisuna (JavaScript), vältides sama päritolupoliitikat, mis on loodud veebisaitide üksteisest eraldamiseks [S1][S2].
Haavatavuse tüübid
- Peegeldub XSS: Pahatahtlikud skriptid peegelduvad veebirakendusest ohvri brauserisse, tavaliselt URL-i parameetri [S1] kaudu.
- Salvestatud XSS: Skript salvestatakse püsivalt serverisse (nt andmebaasi või kommentaaride sektsiooni) ja seda edastatakse kasutajatele hiljem [S1][S2].
- DOM-põhine XSS: haavatavus esineb täielikult kliendipoolses koodis, mis töötleb andmeid ebausaldusväärsest allikast ebaturvaliselt, näiteks kirjutades faili [S1].
Betooniparandused
- Andmete kodeerimine väljundis: teisendage kasutaja juhitavad andmed enne renderdamist turvaliseks vormiks. Kasutage HTML-i keha jaoks HTML-olemi kodeeringut ja nende konkreetsete kontekstide jaoks sobivat JavaScripti või CSS-kodeeringut [S1][S2].
- Filtreeri sisend saabumisel: rakendage eeldatavate sisendvormingute jaoks ranged lubatud loendid ja lükake tagasi kõik, mis ei vasta [S1][S2].
- Kasutage turvapäiseid: määrake seansiküpsistele lipp
HttpOnly, et takistada juurdepääsu JavaScripti [S2] kaudu. KasutageContent-TypejaX-Content-Type-Options: nosnifftagamaks, et brauserid ei tõlgenda vastuseid täitmiskoodina [S1] valesti. - Sisu turbepoliitika (CSP): juurutage tugev CSP, et piirata allikaid, kust saab skripte laadida ja käivitada, pakkudes põhjalikku kaitsekihti [S1]ZBXVCVF.1.
Kuidas FixVibe seda testib
FixVibe suudab tuvastada XSS mitmekihilise lähenemisviisi kaudu, mis põhineb väljakujunenud skannimismetoodikatel [S1]:
- Passiivsed skannimised: Puuduvate või nõrkade turbepäiste tuvastamine, nagu
Content-Security-PolicyvõiX-Content-Type-Options, mis on mõeldud XSS [S1] leevendamiseks. - Aktiivsed proovid: kordumatute mittepahatahtlike tähtnumbriliste stringide sisestamine URL-i parameetritesse ja vormiväljadesse, et teha kindlaks, kas need kajastuvad vastuse kehas ilma korraliku kodeeringuta [S1].
- Repo-skannimised: kliendipoolse JavaScripti analüüsimine ebausaldusväärsete andmete ebaturvaliselt käitlevate "valamute" jaoks, nt
innerHTML,document.writevõisetTimeout, mis on tavalised DVITCENCVF-i DVICCVF-põhised indikaatorid. [S1].
