FixVibe
Covered by FixVibehigh

Detekcia a prevencia chýb zabezpečenia medzi stránkami (XSS)

Cross-Site Scripting (XSS) nastáva, keď aplikácia obsahuje nedôveryhodné údaje na webovej stránke bez náležitého overenia alebo kódovania. To umožňuje útočníkom spúšťať škodlivé skripty v prehliadači obete, čo vedie k únosu relácie, neoprávneným akciám a vystaveniu citlivých údajov.

CWE-79

Vplyv

Útočník, ktorý úspešne zneužije chybu zabezpečenia Cross-Site Scripting (XSS), sa môže maskovať ako obeť používateľa, vykonať akúkoľvek akciu, na ktorú je používateľ oprávnený, a získať prístup k ľubovoľným údajom používateľa [S1]. To zahŕňa kradnutie súborov cookie relácie za účelom únosu účtov, získavanie prihlasovacích údajov prostredníctvom falošných formulárov alebo vykonávanie virtuálneho znehodnotenia [S1][S2]. Ak má obeť oprávnenia správcu, útočník môže získať plnú kontrolu nad aplikáciou a jej údajmi [S1].

Hlavná príčina

XSS nastane, keď aplikácia dostane užívateľom ovládateľný vstup a zahrnie ho na webovú stránku bez náležitej neutralizácie alebo kódovania [S2]. To umožňuje, aby bol vstup interpretovaný ako aktívny obsah (JavaScript) prehliadačom obete, čím sa obchádzajú zásady rovnakého pôvodu určené na izoláciu webových stránok od seba navzájom [S1][S2].

Typy zraniteľností

  • Odzrkadlené XSS: Škodlivé skripty sa odrážajú z webovej aplikácie do prehliadača obete, zvyčajne prostredníctvom parametra adresy URL [S1].
  • Uložené XSS: Skript je trvalo uložený na serveri (napr. v databáze alebo sekcii komentárov) a používateľom sa neskôr zobrazí [S1][S2].
  • XSS na báze DOM: Zraniteľnosť existuje výlučne v kóde na strane klienta, ktorý spracováva údaje z nedôveryhodného zdroja nebezpečným spôsobom, ako je napríklad zápis do innerHTML [S1].

Opravy betónu

  • Zakódovanie údajov na výstupe: Pred vykreslením preveďte údaje ovládané používateľom do bezpečnej formy. Pre telo HTML použite kódovanie entity HTML a pre tieto špecifické kontexty vhodné kódovanie JavaScript alebo CSS [S1][S2].
  • Filtrovať vstup pri príchode: Implementujte prísne zoznamy povolených pre očakávané vstupné formáty a odmietnite všetko, čo nie je v súlade so [S1][S2].
  • Použite hlavičky zabezpečenia: Nastavte príznak HttpOnly na súboroch cookie relácie, aby ste zabránili prístupu cez JavaScript [S2]. Použite Content-Type a X-Content-Type-Options: nosniff, aby ste zabezpečili, že prehliadače nebudú nesprávne interpretovať odpovede ako spustiteľný kód [S1].
  • Zásady zabezpečenia obsahu (CSP): Nasaďte silné CSP, aby ste obmedzili zdroje, z ktorých možno skripty načítať a spúšťať, čím získate hĺbkovú vrstvu ochrany [S1]ZXCVFIXCVIBETOK

Ako to testuje FixVibe

FixVibe dokáže zistiť XSS prostredníctvom viacvrstvového prístupu založeného na zavedených metodológiách skenovania [S1]:

  • Pasívne kontroly: Identifikácia chýbajúcich alebo slabých bezpečnostných hlavičiek ako Content-Security-Policy alebo X-Content-Type-Options, ktoré sú určené na zmiernenie XSS [S1].
  • Aktívne sondy: Vloženie jedinečných, neškodných alfanumerických reťazcov do parametrov URL a polí formulára, aby sa zistilo, či sa odrážajú v tele odpovede bez správneho kódovania [S1].
  • Repo skeny: Analýza JavaScriptu na strane klienta pre „výlevky“, ktoré narábajú s nedôveryhodnými údajmi nebezpečne, ako napríklad innerHTML, document.write alebo setTimeout, čo sú bežné indikátory založené na ZXBCVVIM [S1].