FixVibe
Covered by FixVibehigh

Saidiülese skriptimise (XSS) haavatavuste tuvastamine ja vältimine

Saididevaheline skriptimine (XSS) toimub siis, kui rakendus sisaldab veebilehel ebausaldusväärseid andmeid ilma nõuetekohase valideerimise või kodeerimiseta. See võimaldab ründajatel käivitada ohvri brauseris pahatahtlikke skripte, mille tulemuseks on seansi kaaperdamine, volitamata toimingud ja tundlike andmete paljastamine.

CWE-79

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. Kasutage Content-Type ja X-Content-Type-Options: nosniff tagamaks, 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-Policy või X-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.write või setTimeout, mis on tavalised DVITCENCVF-i DVICCVF-põhised indikaatorid. [S1].