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
HttpOnlyna súboroch cookie relácie, aby ste zabránili prístupu cez JavaScript [S2]. PoužiteContent-TypeaX-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-PolicyaleboX-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.writealebosetTimeout, čo sú bežné indikátory založené na ZXBCVVIM [S1].
