Menü Bezárás

OWASP TOP 10 Sérülékenység: XML External Entities (XXE)

Az OWASP Top 10 kiadvány a webes alkalmazásokban előforduló leggyakoribb sérülékenységek gyűjteménye. A következő bejegyzés sorozatban bemutatjuk ezeket a hibákat és a bennük rejlő kockázatokat. Ebben a bejegyzésben az XML alapú sérülékenységek leggyakoribb variánsát mutatjuk be, az XXE-t.

A sérülékenység háttere

Néhány alkalmazás az XML formátumot használja a kliens és a szerver közötti kommunikációhoz. Ezek az alkalmazások valamilyen könyvtárat vagy API-t használnak, hogy feldolgozzák az XML adatokat. A sérülékenység onnan ered, hogy az XML eleve tartalmaz néhány potenciálisan veszélyes elemet és az alapbeállítású fordítók minden beállítást támogatnak, akkor is, ha az alkalmazás nem használja őket.

Egy támadó XML fájlokat tölthet fel, vagy kártékony tartalmakat illeszthet be XML fájlokba.

Kockázat

Egy támadó XXE segítségével fájlokat tud olvasni a szerveren (pl.: /etc/passwd), de akár DOS támadást (Billion laughs) is indíthat az alkalmazás ellen. Extrém esetekben akár server-side request forgery támadást is indíthat.

Egy ilyen támadás adatvesztéshez, adat szivárgáshoz vezet, más támadásokkal együtt akár teljes hoszt átvétel is lehet a következménye, ami súlyosan károsítja a vállalat imidzsét és komoly pénzügyi veszteségekhez vezethet.

Tesztelés

Az XXE tesztelése komoly előképzettséget igényel. Az etikus hacker manuális sérülékenység vizsgálati módszerekkel teszteli az alkalmazást és tölt fel XML tartalmú tesztfájlokat.

Megelőzés

A fejlesztők képzése elengedhetetlen ahhoz, hogy felismerjék a problémát és biztonságos kódot írjanak.

Amennyiben lehetséges, használjunk kevésbé komplex adatformátumot, például JSON-t.

Az összes használatban levő XML processzort vagy könyvtárat rendszeresen frissíteni kell.