Analyse der Angriffe über die Spring4Shell-Lücke
Wir haben die aktuellen Angriffe über die gefährliche Spring4Shell-Schwachstelle in Spring Framework analysiert, die Risiken und den Ablauf von Attacken zur Remote-Code-Ausführung aufgezeigt, sowie Schritte empfohlen, um sich vor der Bedrohung zu schützen.
Originalartikel von Deep Patel, Nitesh Surana, Ashish Verma, Threat Researcher
Das Trend Micro Threat Research konnte den aktiven Missbrauch der Spring4Shell-Schwachstelle beobachten. Die Lücke mit der Bezeichung CVE-2022-22965 ermöglicht es Angreifern, Mirai Botnet Malware herunterzuladen und auszuführen. Die ersten bösartigen Aktivitäten verzeichneten wir Anfang April 2022. Wir fanden auch den Malware-Dateiserver mit anderen Varianten des Samples für verschiedene CPU-Architekturen.
Spring Framework ist Teil des Spring-Ökosystems, das weitere Komponenten für Cloud, Daten und Sicherheit beinhaltet. Es wird für die Entwicklung von Unternehmensanwendungen in Java verwendet. Diese Plattform bietet eine umfassende Infrastruktur zur Unterstützung von Model-View-Controller- oder MVC-basierten Anwendungen, die zur Reduzierung der manuellen Konfiguration und zur Verbesserung der Speicherverwaltung entwickelt wurden. Ferner wird der Code durch die Implementierung einiger universeller Designmuster leichter wiederverwendbar und einfacher zu pflegen.
Es gibt zwei Sicherheitslücken, die es böswilligen Akteuren ermöglichen, Remote-Code-Ausführung (RCE) für Spring Framework zu bewerkstelligen. Der Originalbeitrag beinhaltet eine Gegenüberstellung der beiden CVE-2022-22965 und CVE-2022-22963.
Abhängigkeiten und betroffene Versionen
Die meisten angreifbaren Setups wiesen folgende Abhängigkeiten auf:
- Spring Framework, Versionen vor 5.2.20, 5.3.18 und Java Development Kit (JDK), Version 9 oder höher
- Apache Tomcat
- Spring-webmvc oder spring-webflux
- Verwendung Spring-Parameter-Binding, die so konfiguriert ist, dass ein nicht grundlegender Parametertyp verwendet wird, wie z. B. Plain Old Java Objects (POJOs)
- als Web Application Archive paketiert
- Writable Dateisystem wie Web Apps oder ROOT
Im Allgemeinen entsteht diese Sicherheitslücke, wenn spezielle Objekte oder Klassen unter bestimmten Bedingungen offengelegt werden. Es kommt häufig vor, dass Anforderungsparameter an ein POJO (Plain Old Java Object) gebunden sind, das nicht mit @RequestBody annotiert ist, was bei der Extraktion von Parametern aus HTTP-Anforderungen hilft. Die Klassenvariable enthält einen Verweis auf das POJO-Objekt, auf das die HTTP-Parameter abgebildet werden.
Bedrohungsakteure können direkt auf ein Objekt zugreifen, indem sie die Klassenvariable in ihren Anfragen angeben. Auch auf alle untergeordneten Eigenschaften eines Objekts können sie über die Klassenobjekte zugreifen und sich so Zugang zu allen möglichen anderen wertvollen Objekten im System verschaffen. Der Patch für Spring Framework wurde bereits veröffentlicht. Einzelheiten dazu finden Sie im Originalbeitrag. Dort gibt es auch eine ausführliche technische Analyse des Exploits.
Die RCE-Schwachstelle ermöglicht Bedrohungsakteuren vollen Zugriff auf die kompromittierten Geräte, was sie zu einer gefährlichen und kritischen Schwachstelle macht. Böswillige Akteure können durch RCE-Angriffe verschiedene Ziele erreichen.
- Schaffen eines Pfads für den Erstzugang zu einem Gerät, um Malware zu installieren oder andere Ziele zu erreichen
- Bereitstellen von Mitteln zur Verbreitung von Malware, die Daten von einem Gerät extrahiert und exfiltriert, oder Aktivieren von Befehlen, die Malware zum Stehlen von Informationen installieren
- Denial-of-Service
- Kryptomining- oder Kryptojacking-Malware auf exponierten Geräten
- Ablegen und Ausführen von Ransomware.
Trend Micro Vision One™
Vision One Workbench kann Sicherheitsanalysten dabei helfen, das Grundrauschen in ihren Umgebungen herauszufiltern. Mit Hilfe der Bedrohungsexperten von Trend Micro, die diese Regeln sorgfältig aufstellen und ausarbeiten, können Unternehmen eine Vielzahl von Cyberangriffen vereiteln. Eine ausführliche Beschreibung des Ablaufs finden Interessierte im Originalbeitrag.
Verfügbare Patches und Schutz
Spring hat Patches für die Schwachstelle veröffentlicht. Unternehmen sollten folgende Schritte durchführen:
- Upgrade von Spring Framework auf die Versionen 5.3.18+ und 5.2.20+.
- Upgrade von Spring Boot auf die Versionen 2.6.6+ und2.5.12+.
In der Zwischenzeit können Organisationen die mit der Schwachstelle verbundenen Risiken durch folgende Maßnahmen abmildern:
- Aufsetzen einer Disallow- oder Blockliste in der Web Application Firewall, um Strings zu blockieren, die Werte wie "class.*", "Class.*", "*.class.*" und "*.Class.*" enthalten
- Ein Downgrade auf eine niedrigere JDK-Version wie z. B. Version 8. Allerdings könnten dadurch Anwendungsfunktionen beeinträchtigt und Lücken für andere Angriffe geöffnet werden, die in höheren JDK-Versionen abgeschwächt werden.
Trend Micro-Schutz
Trend Micro hat außerdem Regeln und Filter für die Erkennung und den Schutz in einigen seiner Produkte veröffentlicht. Diese bieten zusätzlichen Schutz vor und Erkennung von bösartigen Komponenten, die mit dieser Bedrohung verbunden sind.
Workload Security und Deep Security IPS Rules
- Rule 1011372 - Spring Framework "Spring4Shell" Remote Code Execution Vulnerability (CVE-2022-22965)
Network Security and TippingPoint Filters
- Filter 41108: HTTP: Spring Core Code Execution Vulnerability
Trend Micro™ Deep Discovery™ Inspector Network Content Inspection Rules
- Rule 3320: HTTP_SPRING4SHELL_RCE_EXPLOIT_REQUEST_BETA
- Rule 3321: HTTP_POSSIBLE_JAVA_CLASSLOADER_RCE_EXPLOIT_REQUEST_BETA
Eine Liste von IOCs gibt es in dieser Datei.