Bundesamt für Sicherheit in der Informationstechnik

G 5.183 Angriffe auf XML

Web-Services verwenden häufig XML als Grundlage für ihr Nachrichtenformat. Das hat zur Folge, dass alle eingehenden Nachrichten zunächst an einen XML -Parser übergeben werden, der die XML -Strukturen auswertet und die enthaltenen Daten zur Verarbeitung durch den Web-Service extrahiert.

Der XML-Parser wird dabei sinnvollerweise nicht für jeden Web-Service neu entwickelt, sondern als fertige Drittkomponente eingebunden. Solche XML -Parser bieten dabei einen Funktionsumfang, der häufig über die vom Web-Service tatsächlich benötigten Parserfunktionen hinausgeht. Damit erhöht sich jedoch auch die Angriffsfläche des Web-Service. Immer wieder finden sich in den eingesetzten XML -Parsern auch Schwachstellen, die ein Angreifer durch die entsprechende Gestaltung von XML -Eingaben ausnutzen kann. Gerade Schwachstellen durch ungenutzte Parserfunktionen werden dabei oft übersehen oder in ihrer Bedeutung unterschätzt.

Da XML -Dokumente sehr komplex sein können, kann auch der Ressourcenverbrauch für das XML -Parsen entsprechend ansteigen. Dies können Angreifer ausnutzen, indem sie XML -Strukturen so gestalten (Verschachtelung, Rekursion, externe Verweise), dass sie den Ressourcenverbrauch des Parsers gezielt erhöhen und das verarbeitende System damit an seine Lastgrenzen bringen.

Es sind verschiedene Angriffsarten bekannt, die auf der Gestaltung spezieller XML -Nachrichten zur Erreichung des Angriffsziels basieren:

Coercive Parsing

Beim Coercive Parsing überlastet der Angreifer den eingesetzten XML -Parser, indem er ihm als Eingabe eine sehr große oder unbegrenzte Anzahl von Startelementen (Opening Tags) für XML -Elemente schickt. Hat der Parser kein Abbruchkriterium für die Verarbeitung, so belegt er für jedes neu geöffnete Element neuen Speicher auf einer neuen Verschachtelungsebene, bis die vorhandenen Ressourcen erschöpft sind.

XML Entity Expansion ( XML Bomb)

Bei dieser Attacke werden durch starke Verschachtelung oder Rekursion von Entity-Definitionen mit sehr kurzen XML -Dokumenten sehr umfangreiche Datenstrukturen beschrieben. XML -Parser, die diese Art von Attacke nicht erkennen und über ein sinnvolles Abbruchkriterium verhindern, konstruieren bei der Auswertung des XML -Dokuments die beschriebene Datenstruktur im Speicher. Der Angreifer kann dadurch mit sehr geringem Aufwand die vorhandenen Systemressourcen vollständig blockieren. Varianten dieses Angriffs nutzen externe Verweise und belegen so zusätzliche Ressourcen für deren Auflösung.

XML Document Size

Der Angreifer sendet ein überlanges Dokument an den Web-Service, um den XML -Parser zur Ausschöpfung der vorhandenen Systemressourcen zu bringen.

Oversized XML

Bei dieser Angriffsvariante nutzt der Angreifer den Umstand, dass der Standard keine Längenbeschränkungen für XML -Bestandteile wie Elementnamen, Attributnamen oder Namensräume vorsieht, und versucht, durch Überlängen in diesen Bestandteilen den XML -Parser zum Absturz zu bringen.

XML Document Width/ XML Document Depth

Auch dieser Angriff zielt auf die Belegung von Systemressourcen durch den Parser, hier allerdings durch eine übergroße Anzahl von Attributen (Width) oder Verschachtelungsstufen (Depth) und dadurch die Belegung übergroßer Speichermengen.

XML Wellformedness

Auch über bewusst in die XML -Struktur eingebrachte Fehler lassen sich XML-Parser angreifen. Dies können zum Beispiel überlappende oder nicht geschlossene XML-Elemente sein. Je nach Implementierung können dadurch Fehlerzustände im Parser hervorgerufen werden, die gegebenenfalls nicht geeignet behandelt werden.

XML Schema Poisoning

XML -Schemata werden verwendet, um die Konformität von XML -Daten zu den erwarteten Strukturen zu überprüfen. Gelingt es dem Angreifer, extern referenzierte Schemata zu manipulieren oder durch eigene zu ersetzen, so kann er damit unter Umständen Prüfungen der übergebenen Daten durch den Web-Service aushebeln und so schadhafte Bestandteile einbetten.

XML External Entities/ XML External References

XML Dokumente können Verweise auf externe Dokumente oder Entitäten enthalten, die bei der Verarbeitung des XML-Dokuments durch den Parser automatisch aufgelöst werden, indem der Parser die externe Ressource nachlädt und auswertet. Dadurch kann der Angreifer erreichen, dass das Parsersystem Verbindungen zu den angegebenen URLs initiiert. Neben Denial-Of-Service-Angriffen durch das Nachladen von übergroßen oder nicht erreichbaren Dokumenten kann der Angreifer das auch ausnutzen, um zum Beispiel Sicherheitsgateways auszuhebeln, in dem das Parsersystem Verbindungen aus seiner eigenen Netzumgebung heraus initiiert. So können zum Beispiel andere Web-Services in einer DMZ , die von außen nicht direkt aufrufbar sind, auf diesem Wege angesprochen werden.

Gelingt es dem Angreifer, die Inhalte extern abgelegter Ressourcen zu ändern, kann er damit mittelbar auch den Web-Service angreifen, wenn dieser im Rahmen eines legitimen Aufrufs durch einen anderen Nutzer die manipulierten Ressourcen inklusive der schadhaften Inhalte des Angreifers nachlädt.

XML Signature Wrapping

XML -Signaturen sichern die Integrität und/oder Authentizität von XML -Dokumenten, indem sie kryptographische Prüfsummen über Elemente bilden, die durch eine entsprechende Referenz in der Signatur bezeichnet sind. Die Signatur sichert dabei nur das referenzierte Element, unabhängig von seiner Einbindung in den XML -Kontext. Ein Angreifer kann daher durch eine Veränderung der XML -Dokumentstruktur dafür sorgen, dass das durch die Signatur gesicherte Element zwar in sich unverändert erhalten bleibt, aber vom Parser nicht oder nicht in der beabsichtigten Form ausgewertet wird, weil zum Beispiel weitere, gleichartige Elemente mit manipuliertem Inhalt auf höherer Ebene in die XML -Struktur eingebracht werden. Die Signaturprüfung führt dann weiter zu einem positiven Ergebnis, obwohl der Web-Service manipulierte Inhalte verarbeitet.

Die hier aufgeführten Angriffsarten sind nur Beispiele, zahlreiche weitere Angriffe sind bekannt oder werden neu entwickelt, basieren aber auf denselben oder sehr ähnlichen Angriffsprinzipien.

Stand: 14. EL Stand 2014