Vaikutus
Hyökkääjä, joka hyödyntää onnistuneesti Cross-Site Scripting (XSS) haavoittuvuutta, voi naamioitua uhrikäyttäjäksi, suorittaa minkä tahansa toiminnon, johon käyttäjä on valtuutettu, ja käyttää mitä tahansa käyttäjän tietoja [S1]. Tämä sisältää istuntoevästeiden varastamisen tilien kaappaamiseksi, kirjautumistietojen kaappaamisen väärennettyjen lomakkeiden avulla tai virtuaalisen turmelemisen [S1][S2]. Jos uhrilla on järjestelmänvalvojan oikeudet, hyökkääjä voi saada täyden hallinnan sovelluksesta ja sen tiedoista [S1].
Perussyy
XSS tapahtuu, kun sovellus vastaanottaa käyttäjän ohjattavan syötteen ja sisällyttää sen verkkosivulle ilman asianmukaista neutralointia tai koodausta [S2]. Tämän ansiosta uhrin selain voi tulkita syötteen aktiiviseksi sisällöksi (JavaScript) ja kiertää samaa alkuperäkäytäntöä, joka on suunniteltu eristämään verkkosivustot toisistaan [S1][S2].
Haavoittuvuustyypit
- Heijastunut XSS: Haitalliset skriptit heijastuvat verkkosovelluksesta uhrin selaimeen, tyypillisesti URL-parametrin [S1] kautta.
- Tallennettu XSS: Skripti tallennetaan pysyvästi palvelimelle (esim. tietokantaan tai kommenttiosaan) ja toimitetaan käyttäjille myöhemmin [S1][S2].
- DOM-pohjainen XSS: Haavoittuvuus on kokonaan asiakaspuolen koodissa, joka käsittelee tietoja epäluotettavista lähteistä vaarallisella tavalla, kuten kirjoittamalla tiedostoon
innerHTML[S1].
Betonikorjauksia
- Koodata tiedot ulostulossa: Muunna käyttäjän ohjattavat tiedot turvalliseen muotoon ennen sen hahmontamista. Käytä HTML-entiteettikoodausta HTML-tekstiin ja asianmukaista JavaScript- tai CSS-koodausta kyseisiin yhteyksiin [S1][S2].
- Suodata syöttö saapuessa: Ota käyttöön tiukat sallittujen luettelot odotetuille syöttömuodoille ja hylkää kaikki, jotka eivät ole [S1][S2] mukaisia.
- Käytä suojausotsikoita: Aseta istunnon evästeiden lippu
HttpOnlyestääksesi pääsyn JavaScriptin [S2] kautta. Käytä koodiaContent-TypejaX-Content-Type-Options: nosniffvarmistaaksesi, että selaimet eivät tulkitse vastauksia väärin suoritettavana koodina [S1]. - Sisällön suojauskäytäntö (CSP): Ota käyttöön vahva CSP rajoittaaksesi lähteitä, joista komentosarjoja voidaan ladata ja suorittaa, tarjoten syvällisen suojakerroksen [S1]ZBXVFIX.
Kuinka FixVibe testaa sitä
FixVibe voi havaita XSS monikerroksisen lähestymistavan avulla, joka perustuu vakiintuneisiin skannausmenetelmiin [S1]:
- Passiiviset tarkistukset: Puuttuvien tai heikkojen suojausotsikoiden, kuten
Content-Security-PolicytaiX-Content-Type-Options, tunnistaminen, jotka on suunniteltu vähentämään XSS [S1]. - Active Probes: Ainutlaatuisten, ei-haitallisten aakkosnumeeristen merkkijonojen lisääminen URL-parametreihin ja lomakekenttiin sen määrittämiseksi, näkyvätkö ne vastauksen rungossa ilman asianmukaista koodausta [S1].
- Repo-tarkistukset: Asiakaspuolen JavaScriptin analysointi "nielujen" varalta, jotka käsittelevät epäluotettavaa dataa epäturvallisesti, kuten
innerHTML,document.writetaisetTimeout, jotka ovat yleisiä ZVICCENCVF-pohjaisia ZVICCVFX-indikaattoreita. [S1].
