Sie sind an Cloud Computing interessiert? Legen Sie jetzt los

Beobachtete Exploit-Versuche der Sicherheitslücke Struts 2 S2-066 (CVE-2023-50164)

Akamai Wave Blue

Verfasser

Maxim Zavodchik, Sam Tinklenberg, und Neeraj Pradeep

December 14, 2023

Maxim Zavodchik

Verfasser

Maxim Zavodchik

Maxim Zavodchik Experienced security research leader with a proven track record in establishing, growing, and defining strategic vision for Threat Research and Data Science teams in Web Application Security and API Protection. When he’s not protecting life online, you can find him being a super dad and/or watching Studio Ghibli movies.

Sam Tinklenberg

Verfasser

Sam Tinklenberg

Sam Tinklenberg is a Senior Security Researcher in the Apps & APIs Threat Research Group at Akamai. Sam comes from a background in web application penetration testing and is passionate about finding and protecting against critical vulnerabilities. While he isn’t breaking web apps, Sam enjoys video and board games, being outside, and spending time with friends and family.

Neeraj Pradeep

Verfasser

Neeraj Pradeep

Neeraj Pradeep is a Senior Security Researcher at Akamai with extensive experience in cybersecurity and a curious mind driven by a passion for solving complex challenges. He enjoys long drives with her family.

 

CVE-2023-50164 stellt eine kritische Sicherheitsanfälligkeit dar, die in Apache Struts 2 entdeckt wurde. Apache Struts ist ein Open-Source-Framework, das häufig für die Entwicklung und Erstellung von Java-EE-Webanwendungen verwendet wird.

Einführung

Apache Struts ist ein leistungsstarkes Open-Source-Webanwendungsframework, das von Unternehmen und Organisationen auf der ganzen Welt verwendet wird. Apache Struts ist aufgrund seiner Popularität ein beliebtes Ziel für Hacker. Wenn eine kritische RCE-Sicherheitslücke (Remote Code Execution) gemeldet wird, müssen Sicherheits- und IT-Teams zum Schutz ihrer Systeme sofort Maßnahmen ergreifen.

Am 7. Dezember 2023 wurde CVE-2023-50164 veröffentlicht. Die Schwachstelle ermöglicht es einem Angreifer, die Parameter für das Hochladen von Dateien zu ändern, um die Pfadüberschreitungen zu aktivieren und eine schädliche Datei hochzuladen. Dies kann dazu führen, dass ein Angreifer die vollständige Kontrolle über das System erlangt.

Am 11. Dezember wurden die ersten PoC-Exploits (Proof-of-Concept) veröffentlicht und allgemein zugänglich gemacht. Kurz darauf, am 12. Dezember, folgten Exploit-Versuche (Abbildung 1).

Über die CVE

CVE-2023-50164 stellt eine kritische Sicherheitsanfälligkeit dar, die in Apache Struts 2 entdeckt wurde. Apache Struts ist ein Open-Source-Framework, das häufig für die Entwicklung und Erstellung von Java-EE-Webanwendungen verwendet wird. Apache Struts ist für seine Zuverlässigkeit und Flexibilität bekannt. Es spielt eine wichtige Rolle in der Architektur zahlreicher kommerzieller und Open-Source-Webprojekte. Daher sollten verschiedene Sektoren, einschließlich Schlüsselindustrien wie Finanzen, Gesundheitswesen und Regierungsdienstleistungen, diese Schwachstelle äußerst ernst nehmen.

Das Kernproblem von CVE-2023-50164 liegt in seinem Potenzial für RCE durch einen Fehler bei der Pfadüberschreitung. Insbesondere wird die Art und Weise ausgenutzt, wie Apache Struts das Hochladen von Dateien verarbeitet. Durch Manipulieren der Parameter für das Hochladen von Dateien kann ein Angreifer die Verzeichnisstruktur des Webservers ohne Autorisierung effektiv durchqueren.

Diese Pfadüberschreitung ermöglicht das Platzieren schädlicher Dateien, typischerweise JSP-basierter Webshells (Java Server Page), in Verzeichnissen oder an Speicherorten, die ursprünglich nicht für den vom Nutzer hochgeladenen Dateiinhalt bestimmt oder für diesen nicht zugänglich sind. Der Exploit hängt von der Fähigkeit ab, serverseitige Sicherheitsmechanismen auf eine Weise zu umgehen, die von den Anwendungsentwicklern nicht erwartet wurde.

Der Angriffsprozess

Der Angriffsprozess läuft wie folgt ab:

1. Der Angreifer führt zuerst Erkundungen durch. Dabei identifiziert er eine Website oder Webanwendung, die eine anfällige Version von Apache Struts und den URL-Pfad zum Hochladen der Datei verwendet.

2. Der Angreifer bereitet eine schädliche Datei vor, in der Regel eine JSP-Datei oder eine Webshell.

3. Der Angreifer erstellt dann eine spezielle Anfrage, um die Datei hochzuladen. Diese Anfrage enthält manipulierte Daten, wie z. B. den Namen und den Pfad der Datei, wodurch die Parameter für das Hochladen der Datei geändert werden.

4. In der in Schritt 3 erwähnten Upload-Anfrage fügt der Angreifer Systembefehle ein, die die Sicherheitslücke durch Pfadüberschreitung ausnutzen. Diese Befehle weisen den Server an, die Datei außerhalb des normalen Upload-Verzeichnisses zu platzieren. Dies ist die Pfadüberschreitungsphase.

5. Der Angreifer sendet die Upload-Anfrage an den Server, auf dem die anfälligen Versionen von Apache Struts ausgeführt werden. Wenn dies erfolgreich ist, speichert der Server die schädliche Datei oder Webshell an einem Ort oder in einem Verzeichnis, von wo sie ausgeführt werden kann.

6. Der Angreifer greift dann über einen Webbrowser oder ein automatisiertes Skript auf die hochgeladene Schaddatei zu. Der Zugriff auf diese Datei löst die Ausführung des schädlichen Codes oder der schädlichen Webshell auf dem Webserver aus.

7. Sobald der Code in Schritt 6 ausgeführt wurde, kann der Angreifer zusätzliche Aktionen auf dem Server ausführen. Diese könnten vom Diebstahl sensibler Daten über die Änderung von Website-Inhalten bis hin zur vollständigen Kontrolle über den Webserver reichen.

8. Je nach Absicht oder Intention des Angreifers kann er verdeckten Zugriff für zukünftige Exploits behalten oder den kompromittierten Server für weitere Angriffe verwenden.

Die Auswirkungen

CVE-2023-50164 hat weitreichende Implikationen. RCE-Sicherheitslücken gehören zu den schwerwiegendsten und kritischsten Bedrohungen in Webanwendungen, da sie Angreifern ermöglichen, auf einem kompromittierten Server beliebige Befehle auszuführen. Dies könnte zu unbefugtem Zugriff, Datendiebstahl und möglicherweise zu einer vollständigen Übernahme des Systems führen.

Die weit verbreitete Integration von Apache Struts verstärkt diese Risiken. Dadurch wird CVE-2023-50164 für Unternehmen weltweit zu einem Thema mit sehr hoher Priorität.

Beobachtete Exploit-Versuche

Am 12. Dezember, einen Tag nachdem der PoC-Exploit allgemein verfügbar wurde, haben wir Exploit-Versuche beobachtet, die dem veröffentlichten PoC-Exploit ähnelten (Abbildung 2). Obwohl diese Angriffsversuche real sind, war es unwahrscheinlich, dass sie erfolgreich sein würden. Damit der Angriff erfolgreich ist, muss der Zielendpunkt über die Funktion zum Hochladen von Dateien verfügen.

Am 12. Dezember, einen Tag nachdem der PoC-Exploit allgemein verfügbar wurde, haben wir Exploit-Versuche beobachtet, die dem veröffentlichten PoC-Exploit ähnelten (Abbildung 2). Abb. 2: Exploit-Variante 1, die dem veröffentlichten PoC-Exploit ähnelt

Zusätzlich zu den erwarteten PoC-Scans haben wir inzwischen auch Anfragen beobachtet, die diese Sicherheitslücke ausnutzen wollen und die nicht mit dem veröffentlichten PoC übereinstimmen. Diese Variante zielt auf den Pfad /s2/upload.action und nicht auf den ursprünglichen /login.action ab (Abbildung 2). Interessanterweise wird der Parametername „fileFileName“ verwendet, um die Pfadüberschreitung einzuschließen, der sich vom ursprünglichen „uploadFileName“ unterscheidet.

Variante 2 Abb.: 3: Exploit-Variante 2

Es ist nicht klar, ob diese Endpunkte über die Funktion zum Hochladen von Dateien verfügen. Wir sehen die gleichen Exploit-Versuche der Variante 2 von einer Gruppe von IPs, die auf viele verschiedene Kunden abzielen.

Die Akamai Security Intelligence Group wird weiterhin die Protokolle unserer Web Application Firewall (WAF) auf neue Varianten hin untersuchen und diesen Abschnitt des Blogs mit neuen Informationen aktualisieren.

Abwehr mit App & API Protector

Nutzer, die Akamai Adaptive Security Engine im automatischen Modus verwenden und die die Gruppe „Angriff auf Webplattform“ im Modus „Ablehnen“ haben, sind automatisch vor diesen Angriffen geschützt. Nutzer, die Adaptive Security Engine im manuellen Modus verwenden, sollten überprüfen, ob sie die Gruppe „Angriff auf Webplattform“ oder die folgende Einzelregel im Modus „Ablehnen“ haben (Abbildung 4):

  • 3000929: Angriffe mit Pfadüberschreitung und Dateiupload in Apache Struts erkannt (CVE-2023-50164)

Nutzer, die Adaptive Security Engine im manuellen Modus verwenden, sollten überprüfen, ob sie die Gruppe „Angriff auf Webplattform“ oder die folgende Einzelregel im Modus „Ablehnen“ haben (Abbildung 4): Abb. 4: Exploit-Versuch von Adaptive Security Engine-Regel abgewehrt

Zusammenfassung

Akamai App & API Protector hat diese Angriffsversuche auf unsere Sicherheitskunden erfolgreich abgewehrt. Darüber hinaus konnten wir nicht abschließend feststellen, ob die Zielendpunkte tatsächlich über Dateiuploadfunktionen verfügen. Daher haben wir keine weiteren Aktionen nach dem Exploit beobachtet, die Angreifer nach einem erfolgreichen Angriff durchführen könnten.

Obwohl die effektivste Verteidigung darin besteht, den Quellcode umgehend zu aktualisieren, sind wir uns des immensen Aufwands bewusst, den Sicherheitsteams zur schnellen Identifizierung und sicheren Aktualisierung anfälliger Komponenten bewältigen müssen. Diese Herausforderung wird durch die stetig steigende Anzahl von Anwendungen und die Dynamik dieser Umgebungen noch verschärft.

Das Sprichwort „Sicherheit beruht auf Schichten“ mag zwar klischeehaft erscheinen, aber es ist von entscheidender Bedeutung, zusätzliche ergänzende Methoden zur Verbesserung der Gesamtsicherheit in Betracht zu ziehen. Angreifer passen sich oft innerhalb von 24 Stunden an neue öffentliche PoCs an, was die Herausforderung für Verteidiger deutlich erhöht.

Die Implementierung einer WAF, wie z. B. Akamai App & API Protector, kann als zusätzliche Verteidigungsschicht dienen, die vor neu erkannten CVEs schützt und einen zusätzlichen Sicherheitspuffer bietet.



Akamai Wave Blue

Verfasser

Maxim Zavodchik, Sam Tinklenberg, und Neeraj Pradeep

December 14, 2023

Maxim Zavodchik

Verfasser

Maxim Zavodchik

Maxim Zavodchik Experienced security research leader with a proven track record in establishing, growing, and defining strategic vision for Threat Research and Data Science teams in Web Application Security and API Protection. When he’s not protecting life online, you can find him being a super dad and/or watching Studio Ghibli movies.

Sam Tinklenberg

Verfasser

Sam Tinklenberg

Sam Tinklenberg is a Senior Security Researcher in the Apps & APIs Threat Research Group at Akamai. Sam comes from a background in web application penetration testing and is passionate about finding and protecting against critical vulnerabilities. While he isn’t breaking web apps, Sam enjoys video and board games, being outside, and spending time with friends and family.

Neeraj Pradeep

Verfasser

Neeraj Pradeep

Neeraj Pradeep is a Senior Security Researcher at Akamai with extensive experience in cybersecurity and a curious mind driven by a passion for solving complex challenges. He enjoys long drives with her family.