FixVibe
Covered by FixVibehigh

Registrering og forebyggelse af cross-site scripting (XSS) sårbarheder

Cross-Site Scripting (XSS) opstår, når en applikation inkluderer ikke-pålidelige data på en webside uden korrekt validering eller kodning. Dette giver angribere mulighed for at udføre ondsindede scripts i offerets browser, hvilket fører til sessionskapring, uautoriserede handlinger og eksponering af følsomme data.

CWE-79

Indvirkning

En angriber, der med succes udnytter en sårbarhed på tværs af websteder (XSS), kan udgive sig som en offerbruger, udføre enhver handling, som brugeren er autoriseret til at udføre, og få adgang til enhver af brugerens data [S1]. Dette inkluderer at stjæle sessionscookies for at kapre konti, indfange login-legitimationsoplysninger gennem falske formularer eller udføre virtuel defacement [S1][S2]. Hvis offeret har administrative rettigheder, kan angriberen få fuld kontrol over applikationen og dens data [S1].

Grundårsag

XSS opstår, når en applikation modtager brugerkontrollerbar input og inkluderer den på en webside uden korrekt neutralisering eller kodning [S2]. Dette gør det muligt at tolke input som aktivt indhold (JavaScript) af offerets browser, og omgå Samme Origin Policy designet til at isolere websteder fra hinanden [S1][S2].

Sårbarhedstyper

  • Afspejlet XSS: Ondsindede scripts afspejles fra en webapplikation til ofrets browser, typisk via en URL-parameter [S1].
  • Gemt XSS: Scriptet gemmes permanent på serveren (f.eks. i en database eller kommentarsektion) og serveres til brugere senere [S1][S2].
  • DOM-baseret XSS: Sårbarheden findes udelukkende i kode på klientsiden, der behandler data fra en ikke-pålidelig kilde på en usikker måde, såsom at skrive til innerHTML [S1].

Konkrete rettelser

  • Kod data ved output: Konverter brugerkontrollerbare data til en sikker form, før de gengives. Brug HTML-entitetskodning til HTML-kroppen og passende JavaScript- eller CSS-kodning til de specifikke kontekster [S1][S2].
  • Filtrer input ved ankomst: Implementer strenge tilladelseslister for forventede inputformater og afvis alt, der ikke er i overensstemmelse med [S1][S2].
  • Brug sikkerhedsoverskrifter: Indstil HttpOnly-flaget på sessionscookies for at forhindre adgang via JavaScript [S2]. Brug Content-Type og X-Content-Type-Options: nosniff for at sikre, at browsere ikke fejlfortolker svar som eksekverbar kode [S1].
  • Indholdssikkerhedspolitik (CSP): Implementer en stærk CSP for at begrænse de kilder, hvorfra scripts kan indlæses og udføres, hvilket giver et dybdegående forsvarslag ZXCVIXVIBETOKEN0ZXCVZXCVFIXXVIBETOKEN1.

Hvordan FixVibe tester for det

FixVibe kunne detektere XSS gennem en flerlagstilgang baseret på etablerede scanningsmetoder [S1]:

  • Passive scanninger: Identifikation af manglende eller svage sikkerhedsheadere som Content-Security-Policy eller X-Content-Type-Options, der er designet til at afbøde XSS [S1].
  • Aktive sonder: Injicerer unikke, ikke-ondsindede alfanumeriske strenge i URL-parametre og formularfelter for at bestemme, om de afspejles i svarteksten uden korrekt kodning [S1].
  • Repo-scanninger: Analyserer JavaScript på klientsiden for "sinks", der håndterer ikke-pålidelige data på en usikker måde, såsom innerHTML, document.write eller setTimeout, som er almindelige indikatorer for 4. CVFIXVIBETOKEN0ZXCV. [S1].