Die Schwierigkeit beim Patchen von Deserialisierungsschwachstellen

Veröffentlicht 11. September 2017
von Pieter De Cremer
FALLSTUDIE

Die Schwierigkeit beim Patchen von Deserialisierungsschwachstellen

Veröffentlicht 11. September 2017
von Pieter De Cremer
Ressource anzeigen
Ressource anzeigen

Letzte Woche wurde berichtet, dass eine mögliche Ursache für den Equifax-Datenbruch eine Schwachstelle im Apache Struts REST-Plugin war. Die ältere Version des Plugins ist anfällig für Remote Code Execution-Angriffe, wenn es mit XStream-Handler verwendet wird, um XML-Nutzdaten zu verarbeiten. Die Ursache ist die Deserialisierung von nicht vertrauenswürdigen Daten, was ein bekannter Schwachstellentyp ist. Die Sicherheitslücke, die offiziell als CVE-2017-9805 bekannt ist, wurde von Apache am 5. September in der Struts-Version 2.5.13 gepatcht. Sie wurde daraufhin angekündigt und in der Apache Struts-Dokumentation eindeutig dokumentiert.

Ein einfaches Upgrade auf die neueste Struts-Version kann die Anwendung vor diesem Angriff schützen, warum also aktualisieren Unternehmen nicht sofort? Das Problem bei Deserialisierungsschwachstellen ist, dass die Routinen, die ausgenutzt werden, oft diejenigen sind, auf die sich der Anwendungscode verlässt. In diesem Fall könnte die Anwendung des neuen Struts-Patches einige Nebeneffekte haben, denn in der Dokumentation zu der Schwachstelle heißt es: "Es ist möglich, dass einige REST-Aktionen aufgrund der angewandten Standardbeschränkungen für verfügbare Klassen nicht mehr funktionieren." Es ist sehr wahrscheinlich, dass es einige Zeit in Anspruch nimmt, sicherzustellen, dass die Anwendung auf neueren Versionen von Struts weiterhin funktioniert.

Hacker brauchen jedoch nicht so viel Zeit, um mit dem Missbrauch veröffentlichter Schwachstellen zu beginnen, und wir können bereits einige veröffentlichte Exploits sehen. Ein Metasploit-Modul wurde am 8. September hinzugefügt, also drei Tage nachdem Apache die Schwachstelle gepatcht hatte. Das Aufschieben des Patches ist eindeutig keine gute Idee!

Die Lösung ist die Implementierung eines von Apache vorgeschlagenen Workarounds, der in einem kürzeren Zeitrahmen durchgeführt werden könnte. Ein Sicherheitstool mit konfigurierbaren Kodierungsrichtlinien, das diese Umgehung erzwingt oder sogar automatisch anwendet, würde diesen Prozess erheblich beschleunigen.

Möchten Sie mehr darüber erfahren, wie Sie Code, der die Deserialisierung von nicht vertrauenswürdigen Daten enthält, identifizieren und absichern können? Besuchen Sie das Portal Secure Code Warrior für eine klare Erklärung und eine Trainingsherausforderung.

Die Schwachstelle bezieht sich darauf, wie Struts diese Art von Daten analysiert und in Informationen umwandelt, die von der Programmiersprache Java interpretiert werden können. Wenn die Schwachstelle erfolgreich ausgenutzt wird, kann bösartiger Code in solchen Daten versteckt werden und ausgeführt werden, wenn Struts versucht, sie zu konvertieren.

https://qz.com/1073221/the-hackers-who-broke-into-equifax-exploited-a-nine-year-old-security-flaw/

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

Die Schwierigkeit beim Patchen von Deserialisierungsschwachstellen

Veröffentlicht 11. September 2017
Von Pieter De Cremer

Letzte Woche wurde berichtet, dass eine mögliche Ursache für den Equifax-Datenbruch eine Schwachstelle im Apache Struts REST-Plugin war. Die ältere Version des Plugins ist anfällig für Remote Code Execution-Angriffe, wenn es mit XStream-Handler verwendet wird, um XML-Nutzdaten zu verarbeiten. Die Ursache ist die Deserialisierung von nicht vertrauenswürdigen Daten, was ein bekannter Schwachstellentyp ist. Die Sicherheitslücke, die offiziell als CVE-2017-9805 bekannt ist, wurde von Apache am 5. September in der Struts-Version 2.5.13 gepatcht. Sie wurde daraufhin angekündigt und in der Apache Struts-Dokumentation eindeutig dokumentiert.

Ein einfaches Upgrade auf die neueste Struts-Version kann die Anwendung vor diesem Angriff schützen, warum also aktualisieren Unternehmen nicht sofort? Das Problem bei Deserialisierungsschwachstellen ist, dass die Routinen, die ausgenutzt werden, oft diejenigen sind, auf die sich der Anwendungscode verlässt. In diesem Fall könnte die Anwendung des neuen Struts-Patches einige Nebeneffekte haben, denn in der Dokumentation zu der Schwachstelle heißt es: "Es ist möglich, dass einige REST-Aktionen aufgrund der angewandten Standardbeschränkungen für verfügbare Klassen nicht mehr funktionieren." Es ist sehr wahrscheinlich, dass es einige Zeit in Anspruch nimmt, sicherzustellen, dass die Anwendung auf neueren Versionen von Struts weiterhin funktioniert.

Hacker brauchen jedoch nicht so viel Zeit, um mit dem Missbrauch veröffentlichter Schwachstellen zu beginnen, und wir können bereits einige veröffentlichte Exploits sehen. Ein Metasploit-Modul wurde am 8. September hinzugefügt, also drei Tage nachdem Apache die Schwachstelle gepatcht hatte. Das Aufschieben des Patches ist eindeutig keine gute Idee!

Die Lösung ist die Implementierung eines von Apache vorgeschlagenen Workarounds, der in einem kürzeren Zeitrahmen durchgeführt werden könnte. Ein Sicherheitstool mit konfigurierbaren Kodierungsrichtlinien, das diese Umgehung erzwingt oder sogar automatisch anwendet, würde diesen Prozess erheblich beschleunigen.

Möchten Sie mehr darüber erfahren, wie Sie Code, der die Deserialisierung von nicht vertrauenswürdigen Daten enthält, identifizieren und absichern können? Besuchen Sie das Portal Secure Code Warrior für eine klare Erklärung und eine Trainingsherausforderung.

Die Schwachstelle bezieht sich darauf, wie Struts diese Art von Daten analysiert und in Informationen umwandelt, die von der Programmiersprache Java interpretiert werden können. Wenn die Schwachstelle erfolgreich ausgenutzt wird, kann bösartiger Code in solchen Daten versteckt werden und ausgeführt werden, wenn Struts versucht, sie zu konvertieren.

https://qz.com/1073221/the-hackers-who-broke-into-equifax-exploited-a-nine-year-old-security-flaw/

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.