FixVibe
Covered by FixVibehigh

Opsporing en voorkoming van kruis-werf scripting (XSS) kwesbaarhede

Cross-Site Scripting (XSS) vind plaas wanneer 'n toepassing onvertroude data in 'n webbladsy insluit sonder behoorlike validering of enkodering. Dit laat aanvallers toe om kwaadwillige skrifte in die slagoffer se blaaier uit te voer, wat lei tot sessiekaping, ongemagtigde handelinge en blootstelling aan sensitiewe data.

CWE-79

impak

'n Aanvaller wat 'n Cross-Site Scripting (XSS) kwesbaarheid suksesvol ontgin, kan hom as 'n slagoffergebruiker voordoen, enige handeling uitvoer wat die gebruiker gemagtig is om uit te voer, en toegang tot enige van die gebruiker se data [S1]. Dit sluit in die steel van sessiekoekies om rekeninge te kaap, die vaslegging van aanmeldbewyse deur middel van vals vorms, of die uitvoering van virtuele ontsierding [S1][S2]. As die slagoffer administratiewe voorregte het, kan die aanvaller volle beheer oor die toepassing en sy data verkry [S1].

Oorsaak

XSS vind plaas wanneer 'n toepassing gebruiker-beheerbare insette ontvang en dit in 'n webblad insluit sonder behoorlike neutralisering of enkodering [S2]. Dit laat toe dat die insette geïnterpreteer kan word as aktiewe inhoud (JavaScript) deur die slagoffer se blaaier, wat die Same Origin Policy omseil wat ontwerp is om webwerwe van mekaar te isoleer [S1][S2].

Kwesbaarheid Tipes

  • Gereflekteer XSS: Kwaadwillige skrifte word deur 'n webtoepassing na die slagoffer se blaaier weerspieël, tipies via 'n URL-parameter [S1].
  • Gestoor XSS: Die skrif word permanent op die bediener gestoor (bv. in 'n databasis of kommentaarafdeling) en word later aan gebruikers bedien [S1][S2].
  • DOM-gebaseerde XSS: Die kwesbaarheid bestaan geheel en al in kliënt-kant-kode wat data vanaf 'n onbetroubare bron op 'n onveilige manier verwerk, soos om na innerHTML [S1] te skryf.

Betonoplossings

  • Enkodeer data op uitvoer: Skakel gebruiker-beheerbare data om in 'n veilige vorm voordat dit weergegee word. Gebruik HTML-entiteitkodering vir die HTML-liggaam, en toepaslike JavaScript- of CSS-kodering vir daardie spesifieke kontekste [S1][S2].
  • Filter invoer by aankoms: Implementeer streng toelaatlyste vir verwagte invoerformate en verwerp enigiets wat nie aan [S1][S2] voldoen nie.
  • Gebruik sekuriteitsopskrifte: Stel die HttpOnly-vlag op sessiekoekies om toegang via JavaScript [S2] te verhoed. Gebruik Content-Type en X-Content-Type-Options: nosniff om te verseker dat blaaiers nie antwoorde verkeerd interpreteer as die uitvoerbare kode [S1] nie.
  • Inhoud sekuriteitsbeleid (CSP): Ontplooi 'n sterk CSP om die bronne te beperk waaruit skrifte gelaai en uitgevoer kan word, wat 'n verdediging-in-diepte laag ZXCVIXVIBETOKEN0ZXCVZXCVIXVIBETOKEN1ZXCVZXCVIXVIBETOKEN1 verskaf.

Hoe FixVibe daarvoor toets

FixVibe kan XSS opspoor deur middel van 'n veellaagde benadering gebaseer op gevestigde skanderingsmetodologieë [S1]:

  • Passiewe skanderings: Identifiseer ontbrekende of swak sekuriteitsopskrifte soos Content-Security-Policy of X-Content-Type-Options wat ontwerp is om XSS [S1] te versag.
  • Aktiewe sondes: Spuit unieke, nie-kwaadwillige alfanumeriese stringe in URL-parameters en vormvelde in om te bepaal of dit in die antwoordliggaam weerspieël word sonder behoorlike enkodering [S1].
  • Repo-skanderings: Ontleed kliënt-kant JavaScript vir "sinks" wat onvertroude data onveilig hanteer, soos innerHTML, document.write, of setTimeout, wat algemene aanwysers is van 4.CVFIXVIBETOKEN0ZXCV. [S1].