XML External Entities

XML External Entities

Copyright © Shutterstock / Trismegist san

Was ist XML External Entities?

XML External Entities (XXE) ist eine häufig auftauchende Sicherheitsschwachstelle in Webanwendungen. Sie steht regelmäßig in der OWASP Top 10, einer Liste typischer Sicherheitsprobleme von Webanwendungen, die von der Non-Profit-Organisation Open Web Application Security Projects zusammengestellt wird.

Beschreibung

XML External Entities (XXE) ermöglicht es Angreifern, sogenannte externe Entitäten zu missbrauchen, wenn ein XML-Dokument analysiert wird. Die erste Version der Web-Auszeichnungssprache XML wurde 1996 veröffentlicht, zu einer Zeit, als Sicherheit noch nicht so im Fokus stand wie heute. XML-Datenstrukturen enthalten Namen von Feldern und deren Wert. Neben dem Speichern von Zeichenfolgen können auch Links zu anderen Dateien oder Ressourcen enthalten sein.

Hier tritt das Problem auf: Wenn das XML-Dokument analysiert wird, folgt der XML-Parser dem Link und liest das verknüpfte Dokument. Vorausgesetzt, der Angreifer kann die Ausgabe des analysierten XML-Dokuments sehen, gibt ihm das die Möglichkeit, lokale Dateien auf dem Server zu lesen. Ein solcher Angriff wird XXE genannt, da er externe Entitäten (Links) missbraucht.

Auswirkungen

Der Angreifer kann mittels XML External Entities (XXE) lokale Dateien auf dem Server lesen, den XML-Parser dazu bringen, Netzwerkanfragen innerhalb des lokalen Netzwerks auszuführen, oder rekursive Verknüpfungen verwenden, um einen Denial of Service-Angriff auszuführen.

Vermeidung

Der einfachste Weg, um auf diese Sicherheitsanfälligkeit hin zu testen, ist das Hochladen eines XML-Dokuments, das versucht, eine lokale Datei zu lesen, und zu prüfen, ob dies erfolgreich ist. Dieser Test reicht aber nicht aus, wenn zusätzliche Schutzmaßnahmen vorhanden sind, die umgangen werden können. Wenn XML als einfacher Datenspeicherung genutzt wird, sollte zu einem weniger komplexen Datenformat wie JSON gewechselt werden, um das Risiko einer Anfälligkeit für XML External Entities (XXE) zu vermeiden.
Wenn die Anwendung keine externen Entitäten benötigt, sollte diese Funktion im Parser ganz deaktiviert werden. Wenn die von XML gebotenen Funktionen benötigt werden, ist sicherzustellen, dass alle XML-Parser und Bibliotheken von Drittanbietern, in denen diese Funktionen verwendet werden, aktualisiert sind. Da XXE inzwischen ein bekanntes Problem sind, umfassen spätere Versionen häufig Sicherheitsverbesserungen.

Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG


Weitere Inhalte