FixVibe
Covered by FixVibehigh

Cross-site Scripting (XSS) ahultasunak detektatu eta prebenitzea

Cross-Site Scripting (XSS) aplikazio batek web orri batean fidagarriak ez diren datuak sartzen dituenean gertatzen da baliozkotze edo kodetze egokirik gabe. Horri esker, erasotzaileek script gaiztoak exekutatu ditzakete biktimaren arakatzailean, eta ondorioz, saioaren bahiketa, baimenik gabeko ekintzak eta datu sentikorrak erakusteko aukera dute.

CWE-79

Eragina

Cross-Site Scripting (XSS) ahultasun bat arrakastaz ustiatzen duen erasotzaile batek biktimaren erabiltzaile gisa maskara dezake, erabiltzaileak egiteko baimena duen edozein ekintza egin dezake eta erabiltzailearen edozein datu [S1] atzi dezake. Honen barruan sartzen dira kontuak bahitzeko saio-cookieak lapurtzea, saioa hasteko kredentzialak inprimaki faltsuen bidez atzematea edo [S1][S2] birtuala desagertzea. Biktimak administrazio-pribilegioak baditu, erasotzaileak aplikazioaren eta bere datuen kontrol osoa lor dezake [S1].

Arrazoia

XSS aplikazio batek erabiltzaileak kontrola dezakeen sarrera jasotzen duenean eta web orri batean sartzen duenean gertatzen da [S2] behar bezala neutralizatu edo kodetu gabe. Horri esker, sarrera eduki aktibo gisa interpreta daiteke (JavaScript) biktimaren arakatzaileak, webguneak elkarrengandik isolatzeko diseinatutako Jatorri Bereko Politika saihestuz [S1][S2].

Ahultasun motak

  • XSS islatua: Script gaiztoak web aplikazio batetik islatzen dira biktimaren arakatzailean, normalean [S1] URL parametro baten bidez.
  • XSS gordeta: Scripta betirako gordetzen da zerbitzarian (adibidez, datu-base batean edo iruzkinen atalean) eta erabiltzaileei zerbitzatzen zaie geroago [S1][S2].
  • DOM-en oinarritutako XSS: Ahultasuna guztiz fidagarria ez den iturri bateko datuak modu seguru batean prozesatzen dituen bezeroaren alboko kodean dago, esate baterako, innerHTML [S1] idazten.

Konponketa konkretuak

  • Kodetu datuak irteeran: Bihurtu erabiltzaileak kontrola daitezkeen datuak forma seguru batean errendatu aurretik. Erabili HTML entitateen kodeketa HTML gorputzerako, eta JavaScript edo CSS kodeketa egokia testuinguru zehatz horietarako [S1][S2].
  • Iragazki sarrera iristean: Ezarri baimen-zerrenda zorrotzak espero diren sarrera-formatuetarako eta baztertu [S1][S2] bat ez datorren guztia.
  • Erabili segurtasun-goiburuak: Ezarri HttpOnly marka saioko cookieetan [S2] JavaScript bidez sarbidea eragozteko. Erabili Content-Type eta X-Content-Type-Options: nosniff arakatzaileek erantzunak gaizki interpretatzen ez dituztela ziurtatzeko [S1] kode exekutagarri gisa.
  • Edukiaren segurtasun-politika (CSP): Inplementatu CSP sendoa script-ak kargatu eta exekutatu daitezkeen iturriak mugatzeko, defentsa-geruza sakona eskainiz [S1]ZXCVZCVF1.

FixVibe probak nola egiten dituen

FixVibe-k XSS detektatu lezake geruza anitzeko ikuspegi baten bidez, ezarritako eskaneatzeko metodologietan oinarrituta [S1]:

  • Eskanea pasiboak: XSS [S1] arintzeko diseinatuta dauden Content-Security-Policy edo X-Content-Type-Options bezalako segurtasun-goiburuak falta diren edo ahulak identifikatzea.
  • Probes Aktiboak: URL parametroetan eta inprimaki-eremuetan kate alfanumeriko esklusiboak eta ez-maltzurrak sartzea, erantzunaren gorputzean islatzen diren zehazteko [S1] kodeketa egokirik gabe.
  • Repo Scans: Bezeroaren alboko JavaScript aztertzea, fidagarriak ez diren datuak modu seguruan kudeatzen dituzten "konketa"etarako, hala nola, innerHTML, document.write edo setTimeout, ZTOVFIX-en ohiko adierazleak direnak. [S1].