Cross-site scripting (XSS) sérülékenység javítása, megelőzése
Mi az a Cross-site scripting (XSS) sérülékenység, támadás?
A Cross-Site Scripting (XSS) sérülékenység kihasználása során a kibertámadó olyan kódrészletet (payload) küld (vagy küldet be az áldozat böngészőjével) egy webes szolgáltatás kiszolgálójára vagy kliensoldali felületére, ami manipulálja a szolgáltatás kliensoldali működését.
- Reflected XSS: A kibertámadó az áldozat böngészőjével küldeti a webes szolgáltatásba a manipuláló kódot és kizárólag az adott áldozat böngészőjében futó kliensoldali felületre van hatással.
- Stored XSS: A manipuláló kód a webes szolgáltatás kiszolgálóján is tárolásra kerül, így minden (az érintett felületet elérő) felhasználó böngészőjében futó kliensoldali felületre van hatással.
- DOM-alapú: Hasonló a Reflected XSS-hez, viszont ebben az esetben a kibertámadó a kliensoldalon megjelenített webes felület DOM (Document Object Model) szerkezetét is felhasználja.
- Self-XSS: A kibertámadó social engineering módszerekkel (manipulatív átverésekkel) ráveszi a felhasználót az általa átadott kód lefuttatására.
Mi a Cross-Site Scripting (XSS) sérülékenység kockázata?
A webes szolgáltatás nem kezeli és korlátozza megfelelően a felé irányuló kéréseket, aminek eredményeként olyan kódok futhatnak le az áldozat(ok) böngészőjében, amik adathalászatra, dezinformáció terjesztésére és akár szerveroldali manipulációra is használhatók.
Hogyan javítható és előzhető meg a Cross-Site Scripting (XSS) sérülékenység?
- Whitelist alkalmazása és kizárólag a várt kérések engedélyezése kliens- és szerveroldalon egyaránt.
- A kérések tartalmának szűrése, abból eltávolítva az Cross-Site Scripting (XSS) támadásra utaló karakterláncokat
- Web Application Firewall (WAF, webalkalmazás tűzfal) alkalmazása
Hogyan ellenőrizhető a Cross-Site Scripting (XSS) sérülékenység jelenléte?
- Sérülékenységvizsgálat szolgáltatás igénylésével
- Automatikus sérülékenységvizsgáló szoftverekkel (pl.: Tenable Nessus, Burp Suite)
- Manuális vizsgálatokkal