This site is the archived OWASP Foundation Wiki and is no longer accepting Account Requests.
To view the new OWASP Foundation website, please visit https://owasp.org

Germany/Projekte/Top 10-2017 A4-XML External Entities (XXE)

From OWASP
Revision as of 13:19, 8 March 2019 by T.Gigler (talk | contribs) (Created Page)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

==BAUSTELLE! Hier entsteht das deutsche Wiki der OWASP Top 10-2017==

==Bitte benutzen Sie die PDF Version.==

← A3-Verlust der Vertraulichkeit sensibler Daten
2017 Inhaltsverzeichnis

PDF version

A5-Fehler in der Zugriffskontrolle →
Bedrohungsquellen / Angriffsvektoren Schwachstellen Auswirkungen
Anw.-
spezifisch
Ausnutzbarkeit: 2
Verbreitung: 2
Auffindbarkeit: 3
technisch: 3
Business ?
Angreifer können anfällige XML Verarbeiter instrumentalisieren, wenn sie XML direkt hochladen können oder schädliche Inhalte in ein XML-Dokument aufnehmen können, wobei sie anfälligen Code, Abhängigkeiten oder Integrationen ausnutzen. Standardmäßig erlauben viele ältere XML-Prozessoren die Spezifikation einer externen Entität, also einer URI, die während der XML-Verarbeitung dereferenziert und ausgewertet wird. SAST-Tools können dies erkennen, indem sie Abhängigkeiten und Konfigura-tionen überprüfen. DAST-Tools erfordern zusätzliche manuelle Schritte, um dieses Problem zu erkennen und auszunutzen. Manuelle Tester müssen geschult werden, wie man auf XXE testet, was Stand 2017 typischerweise selten passiert. Diese Fehler können ausgenutzt werden, um Daten zu extrahieren, eine Remote-Anfrage vom Server auszuführen, interne Systeme zu scannen, einen Denial-of-Service-Angriff oder auch andere Angriffe durchzuführen.
Die Auswirkungen auf das Unternehmen hängen vom Schutzbedarf der Anwendung und ihrer Daten ab.
Ist die Anwendung verwundbar?

Anwendungen und insbesondere XML-basierte Webservices oder nachgelagerte Integrationen können in folgenden Fällen anfällig für Angriffe sein:

  • Die Anwendung akzeptiert direkt XML oder XML-Uploads, insbesondere aus nicht vertrauenswürdigen Quellen oder fügt nicht vertrauenswürdige Daten in XML-Dokumente ein, die dann von einem XML-Prozessor analysiert werden.
  • Die XML-Prozessoren in der Anwendung oder SOAP-basierte Webservices haben Document Type Definitions (DTDs) aktiviert. Da der genaue Mechanismus zum Deaktivieren der DTD-Verarbeitung je nach Prozessor variiert, ist es empfehlenswert, eine Referenz wie den OWASP Cheat Sheet 'XXE Prevention'.
  • Wenn Ihre Anwendung SAML für die Identitätsverarbeitung im Rahmen von föderierter Sicherheit oder für Single Sign On (SSO) Zwecke verwendet. SAML verwendet XML für Identitätsbekundungen und kann daher anfällig sein.
  • Wenn die Anwendung SOAP vor Version 1.2 verwendet, ist sie wahrscheinlich anfällig für XXE-Angriffe, wenn XML-Entitäten an das SOAP-Framework übergeben werden.
  • Die Anfälligkeit für XXE-Angriffe bedeutet wahrscheinlich, dass die Anwendung anfällig für Denial-of-Service-Angriffe, einschließlich des sogenannten "Billion Laughs" Angriffs, ist.
Wie kann ich das verhindern?

Die Schulung von Entwicklern ist unerlässlich, um XXE zu identifizieren und zu beheben. Zusätzlich:

  • Verwenden Sie möglichst weniger komplexe Datenformate, wie JSON und vermeiden Sie die Serialisierung sensibler Daten.
  • Patchen oder aktualisieren Sie alle XML-Prozessoren und Bibliotheken, die von der Anwendung oder dem zugrunde liegenden Betriebssystem verwendet werden. Verwenden Sie Werkzeuge zur Prüfung von Abhängigkeiten. Aktualisieren Sie auf SOAP 1.2 oder höher.
  • Deaktivieren Sie die Verarbeitung von externen XML-Entitäten und DTDs in allen XML-Parsern in der Anwendung, gemäß dem OWASP Cheat Sheet 'XXE Prevention'. Implementierung einer positiven serverseitigen Eingabevalidierung ("White-listing"), -filterung oder -bereinigung, um bösartige Daten in XML-Dokumenten, Headern oder Knoten zu verhindern.
  • Vergewissern Sie sich, dass die Upload-Funktionalität für XML- oder XSL-Dateien eingehende XML-Daten mithilfe der XSD-Validierung oder ähnlichem validiert.
  • SAST-Tools können helfen, XXE im Quellcode zu erkennen, jedoch ist die manuelle Codeüberprüfung die beste Alternative in großen, komplexen Anwendungen mit vielen Integrationen.
  • Wenn dies nicht möglich ist, sollten Sie die Verwendung von virtuellen Patches, API-Sicherheitsgateways oder Web Application Firewalls (WAFs) in Betracht ziehen, um XXE-Angriffe zu erkennen, zu überwachen und zu blockieren.
Mögliche Angriffsszenarien

Zahlreiche öffentliche XXE-Probleme wurden entdeckt, darunter auch Angriffe auf Embedded-Geräte. XXE tritt an vielen unerwarteten Stellen auf, einschließlich tief verschachtelter Abhängigkeiten. Der einfachste Weg, wenn möglich, ist das Hochladen einer bösartigen XML-Datei:

Szenario 1: Der Angreifer versucht, Daten vom Server zu extrahieren:

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE foo [
<!ELEMENT foo ANY >
<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
<foo>&xxe;</foo>

Szenario 2: Ein Angreifer durchsucht das private Netzwerk des Servers, indem er die obige ENTITY-Zeile ändert zu:

<!ENTITY xxe SYSTEM "https://192.168.1.1/private" >]>

Szenario 3: Ein Angreifer versucht einen Denial-of-Service-Angriff, indem er eine potenziell endlose Datei einfügt:

<!ENTITY xxe SYSTEM "file:///dev/random" >]>
Referenzen

OWASP

Andere

← A3-Verlust der Vertraulichkeit sensibler Daten
2017 Inhaltsverzeichnis

PDF version

A5-Fehler in der Zugriffskontrolle →

© 2002-2017 OWASP Foundation This document is licensed under the Creative Commons Attribution-ShareAlike 3.0 license. Some rights reserved. CC-by-sa-3 0-88x31.png