Sichere Kodierungstechniken: Verarbeitung von XML-Daten, Teil 1

Veröffentlicht Dez 10, 2017
von Pieter De Cremer
FALLSTUDIE

Sichere Kodierungstechniken: Verarbeitung von XML-Daten, Teil 1

Veröffentlicht Dez 10, 2017
von Pieter De Cremer
Ressource anzeigen
Ressource anzeigen

Extensible Markup Language (XML) ist eine Auszeichnungssprache, die zur Codierung von Dokumenten in einem Format verwendet wird, das sowohl für Maschinen einfach zu handhaben als auch für Menschen lesbar ist. Allerdings enthält dieses häufig verwendete Format mehrere Sicherheitslücken. In diesem ersten Blog-Beitrag zum Thema XML erkläre ich die Grundlagen der sicheren Handhabung von XML-Dokumenten mit Hilfe eines Schemas.

OWASP unterteilt die verschiedenen Sicherheitslücken im Zusammenhang mit XML und XML-Schemas in zwei Kategorien.

Missgebildete XML-Dokumente

Missgebildete XML-Dokumente sind Dokumente, die nicht den W3C-XML-Spezifikationen entsprechen. Einige Beispiele, die zu einem fehlerhaften Dokument führen, sind das Entfernen eines End-Tags, das Ändern der Reihenfolge verschiedener Elemente oder die Verwendung von verbotenen Zeichen. Alle diese Fehler sollten zu einem schwerwiegenden Fehler führen und das Dokument sollte keine weitere Verarbeitung erfahren.

Um Schwachstellen durch missgebildete Dokumente zu vermeiden, sollten Sie einen gut getesteten XML-Parser verwenden, der den W3C-Spezifikationen folgt und nicht wesentlich länger braucht, um missgebildete Dokumente zu verarbeiten.

Ungültige XML-Dokumente

Ungültige XML-Dokumente sind wohlgeformt, enthalten aber unerwartete Werte. Hier kann sich ein Angreifer Anwendungen zunutze machen, die nicht ordnungsgemäß ein XML-Schema definieren, um zu erkennen, ob Dokumente gültig sind. Nachfolgend finden Sie ein einfaches Beispiel für ein Dokument, das, wenn es nicht korrekt validiert wird, unbeabsichtigte Folgen haben kann.

Ein Webspeicher, der seine Transaktionen in XML-Daten speichert:

   <purchase></purchase>
     <id>123</id>
     <price>200</price>
   

And the user only has control over the <id> value. It is then possible, without the right counter measures, for an attacker to input something like this:</id>

   <purchase></purchase>
     <id>123</id>
     <price>0</price>
     <id></id>
     <price>200</price>
   

If the parser that processes this document only reads the first instance of the <id> and <price> tags this will lead to unwanted results. </price></id>

Es ist auch möglich, dass das Schema nicht restriktiv genug ist oder dass die sonstige Eingabevalidierung unzureichend ist, so dass negative Zahlen, spezielle Dezimalzahlen (wie NaN oder Infinity) oder übermäßig große Werte eingegeben werden können, wo sie nicht erwartet werden, was zu ähnlichem unbeabsichtigtem Verhalten führt.

Um Schwachstellen im Zusammenhang mit ungültigen XML-Dokumenten zu vermeiden, sollte ein präzises und restriktives XML-Schema definiert werden, um Probleme durch unsachgemäße Datenvalidierung zu vermeiden.

Im nächsten Blog-Beitrag werden wir auf einige fortgeschrittenere Angriffe auf XML-Dokumente eingehen, wie z.B. Jumbo Payloads und die gefürchtete OWASP Top Ten Nummer vier, XXE.

In der Zwischenzeit können Sie Ihre Kenntnisse über die XML-Eingabevalidierung auf unserem Portalvertiefen oder herausfordern .

Die Spezifikationen für XML und XML-Schemas enthalten mehrere Sicherheitslücken. Gleichzeitig stellen diese Spezifikationen die Tools bereit, die zum Schutz von XML-Anwendungen erforderlich sind. Auch wenn wir XML-Schemas verwenden, um die Sicherheit von XML-Dokumenten zu definieren, können sie für eine Vielzahl von Angriffen verwendet werden: Dateiabruf, serverseitige Request Forgery, Port-Scanning oder Brute Forcing.

https://www.owasp.org/index.php/XML_Security_Cheat_Sheet

Ressource anzeigen
Ressource anzeigen

Autor

Pieter De Cremer

Sie wollen mehr?

Tauchen Sie ein in unsere neuesten Erkenntnisse über sichere Kodierung im Blog.

Unsere umfangreiche Ressourcenbibliothek zielt darauf ab, die menschliche Herangehensweise an eine sichere Weiterbildung im Bereich der Programmierung zu stärken.

Blog ansehen
Sie wollen mehr?

Holen Sie sich die neuesten Forschungsergebnisse zur entwicklergesteuerten Sicherheit

Unsere umfangreiche Ressourcenbibliothek ist voll von hilfreichen Ressourcen, von Whitepapers bis hin zu Webinaren, die Ihnen den Einstieg in die entwicklungsorientierte sichere Programmierung erleichtern. Erforschen Sie sie jetzt.

Ressourcendrehscheibe

Sichere Kodierungstechniken: Verarbeitung von XML-Daten, Teil 1

Veröffentlicht Dez 10, 2017
Von Pieter De Cremer

Extensible Markup Language (XML) ist eine Auszeichnungssprache, die zur Codierung von Dokumenten in einem Format verwendet wird, das sowohl für Maschinen einfach zu handhaben als auch für Menschen lesbar ist. Allerdings enthält dieses häufig verwendete Format mehrere Sicherheitslücken. In diesem ersten Blog-Beitrag zum Thema XML erkläre ich die Grundlagen der sicheren Handhabung von XML-Dokumenten mit Hilfe eines Schemas.

OWASP unterteilt die verschiedenen Sicherheitslücken im Zusammenhang mit XML und XML-Schemas in zwei Kategorien.

Missgebildete XML-Dokumente

Missgebildete XML-Dokumente sind Dokumente, die nicht den W3C-XML-Spezifikationen entsprechen. Einige Beispiele, die zu einem fehlerhaften Dokument führen, sind das Entfernen eines End-Tags, das Ändern der Reihenfolge verschiedener Elemente oder die Verwendung von verbotenen Zeichen. Alle diese Fehler sollten zu einem schwerwiegenden Fehler führen und das Dokument sollte keine weitere Verarbeitung erfahren.

Um Schwachstellen durch missgebildete Dokumente zu vermeiden, sollten Sie einen gut getesteten XML-Parser verwenden, der den W3C-Spezifikationen folgt und nicht wesentlich länger braucht, um missgebildete Dokumente zu verarbeiten.

Ungültige XML-Dokumente

Ungültige XML-Dokumente sind wohlgeformt, enthalten aber unerwartete Werte. Hier kann sich ein Angreifer Anwendungen zunutze machen, die nicht ordnungsgemäß ein XML-Schema definieren, um zu erkennen, ob Dokumente gültig sind. Nachfolgend finden Sie ein einfaches Beispiel für ein Dokument, das, wenn es nicht korrekt validiert wird, unbeabsichtigte Folgen haben kann.

Ein Webspeicher, der seine Transaktionen in XML-Daten speichert:

   <purchase></purchase>
     <id>123</id>
     <price>200</price>
   

And the user only has control over the <id> value. It is then possible, without the right counter measures, for an attacker to input something like this:</id>

   <purchase></purchase>
     <id>123</id>
     <price>0</price>
     <id></id>
     <price>200</price>
   

If the parser that processes this document only reads the first instance of the <id> and <price> tags this will lead to unwanted results. </price></id>

Es ist auch möglich, dass das Schema nicht restriktiv genug ist oder dass die sonstige Eingabevalidierung unzureichend ist, so dass negative Zahlen, spezielle Dezimalzahlen (wie NaN oder Infinity) oder übermäßig große Werte eingegeben werden können, wo sie nicht erwartet werden, was zu ähnlichem unbeabsichtigtem Verhalten führt.

Um Schwachstellen im Zusammenhang mit ungültigen XML-Dokumenten zu vermeiden, sollte ein präzises und restriktives XML-Schema definiert werden, um Probleme durch unsachgemäße Datenvalidierung zu vermeiden.

Im nächsten Blog-Beitrag werden wir auf einige fortgeschrittenere Angriffe auf XML-Dokumente eingehen, wie z.B. Jumbo Payloads und die gefürchtete OWASP Top Ten Nummer vier, XXE.

In der Zwischenzeit können Sie Ihre Kenntnisse über die XML-Eingabevalidierung auf unserem Portalvertiefen oder herausfordern .

Die Spezifikationen für XML und XML-Schemas enthalten mehrere Sicherheitslücken. Gleichzeitig stellen diese Spezifikationen die Tools bereit, die zum Schutz von XML-Anwendungen erforderlich sind. Auch wenn wir XML-Schemas verwenden, um die Sicherheit von XML-Dokumenten zu definieren, können sie für eine Vielzahl von Angriffen verwendet werden: Dateiabruf, serverseitige Request Forgery, Port-Scanning oder Brute Forcing.

https://www.owasp.org/index.php/XML_Security_Cheat_Sheet

Wir bitten Sie um Ihre Erlaubnis, Ihnen Informationen über unsere Produkte und/oder verwandte Themen der sicheren Codierung zuzusenden. Wir werden Ihre persönlichen Daten immer mit äußerster Sorgfalt behandeln und sie niemals zu Marketingzwecken an andere Unternehmen verkaufen.

Senden
Um das Formular abzuschicken, aktivieren Sie bitte "Analytics"-Cookies. Sie können die Cookies wieder deaktivieren, sobald Sie fertig sind.