Hatás
A Cross-Site Scripting (XSS) biztonsági rést sikeresen kihasználó támadó áldozatnak álcázhatja magát, végrehajthat minden olyan műveletet, amelyre a felhasználó jogosult, és hozzáférhet a felhasználó bármely adatához. [S1]. Ide tartozik a munkamenet-cookie-k ellopása a fiókok eltérítése céljából, a bejelentkezési adatok hamis űrlapokon keresztül történő rögzítése vagy a virtuális roncsolás végrehajtása [S1][S2]. Ha az áldozat rendszergazdai jogosultságokkal rendelkezik, a támadó teljes ellenőrzést szerezhet az alkalmazás és annak adatai felett. [S1].
Kiváltó ok
A XSS akkor fordul elő, ha egy alkalmazás felhasználó által vezérelhető bevitelt kap, és megfelelő semlegesítés vagy [S2] kódolás nélkül tartalmazza azt egy weboldalon. Ez lehetővé teszi, hogy a bemenetet az áldozat böngészője aktív tartalomként (JavaScript) értelmezze, megkerülve a webhelyek egymástól való elkülönítését szolgáló azonos eredetszabályt. [S1][S2].
Sebezhetőség típusai
- Reflektált XSS: A rosszindulatú szkriptek egy webalkalmazásról tükröződnek az áldozat böngészőjébe, általában a [S1] URL-paraméteren keresztül.
- Tárolt XSS: A szkript véglegesen a szerveren tárolódik (pl. egy adatbázisban vagy megjegyzés részben), és később a felhasználók számára kiszolgálásra kerül.
- DOM-alapú XSS: A biztonsági rés teljes egészében az ügyféloldali kódban található, amely nem megbízható forrásból származó adatokat dolgoz fel nem biztonságos módon, például a
innerHTML[S1] fájlba írva.
Konkrét javítások
- Adatok kódolása a kimeneten: A felhasználó által vezérelhető adatokat biztonságos formává alakíthatja a renderelés előtt. Használjon HTML entitáskódolást a HTML törzséhez, és megfelelő JavaScript vagy CSS kódolást az adott kontextushoz [S1][S2].
- Bevitel szűrése érkezéskor: Vezessen be szigorú engedélyezési listákat a várható beviteli formátumokhoz, és utasítson el mindent, ami nem felel meg a [S1][S2].
- Biztonsági fejlécek használata: Állítsa be a
HttpOnlyjelzőt a munkamenet-cookie-kon, hogy megakadályozza a JavaScripten keresztüli hozzáférést [S2]. Használja aContent-TypeésX-Content-Type-Options: nosniffkódokat, hogy a böngészők ne értelmezzék félre a válaszokat [S1] végrehajtható kódként. - Tartalombiztonsági házirend (CSP): Telepítsen erős CSP-t, hogy korlátozza azokat a forrásokat, amelyekről a szkriptek betölthetők és végrehajthatók, így mélyreható védelmi réteget biztosít.
Hogyan teszteli a FixVibe
A FixVibe képes észlelni a XSS XSS-t egy többrétegű megközelítéssel, amely a bevált szkennelési módszereken alapul. [S1]:
- Passzív vizsgálatok: A hiányzó vagy gyenge biztonsági fejlécek azonosítása, például a
Content-Security-Policyvagy aX-Content-Type-Options, amelyek célja a XSS [S1]. - Aktív próbák: Egyedi, nem rosszindulatú alfanumerikus karakterláncok beszúrása az URL-paraméterekbe és az űrlapmezőkbe annak megállapítására, hogy azok megjelennek-e a választörzsben a megfelelő [S1] kódolás nélkül.
- Repo-ellenőrzések: A kliensoldali JavaScript elemzése a nem megbízható adatokat nem biztonságosan kezelő „nyelők” keresésére, mint például a
innerHTML,document.writevagysetTimeout, amelyek a ZVIXCCENZ4 gyakori mutatói [S1].
