
RECON (Remotely Exploitable Code On NetWeaver) ist eine kritische Schwachstelle (CVSSv3 10), die eine Reihe von SAP-Geschäfts- und technischen Anwendungen betrifft, die auf dem SAP-NetWeaver-Java-Stack laufen. Diese Schwachstelle wurde von den Onapsis Research Labs entdeckt, die eng mit SAP zusammenarbeiteten, um am 14. Juli 2020 einen Patch zu entwickeln und zu veröffentlichen. Angesichts der Kritikalität dieses Problems haben die U.S. DHS CISA, das BSI CERT-Bund und mehrere andere Regierungsbehörden Warnungen herausgegeben, in denen SAP-Kunden aufgefordert werden, gefährdete Anwendungen zu schützen, wobei internetzugängliche Anwendungen priorisiert werden.
Nach der Beobachtung erheblicher böswilliger Aktivitäten, die auf RECON abzielen, und angesichts der Anzahl gefährdeter, internetzugänglicher SAP-Anwendungen sowie der Sensibilität der Daten und Prozesse, die typischerweise von diesen Systemen unterstützt werden, hat Onapsis beschlossen, dieses Open-Source-Tool so schnell wie möglich zu entwickeln und zu veröffentlichen. Ziel ist es, die Informationssicherheits- und Administrations-Teams aller SAP-Kunden dabei zu unterstützen, ihre geschäftskritischen Anwendungen zu schützen, indem sie ihre Gefährdung bewerten und prüfen können, ob ihre SAP-Systeme kompromittiert worden sein könnten. Wir planen, dieses Tool weiterzuentwickeln, sobald neue Threat Intelligence und forensische Daten von unseren Produkten, dem Forschungsteam und der breiteren Community erfasst werden.
Dieses Tool kann:
Dieses Tool kann nicht:
Es gibt jedoch mehrere bekannte Einschränkungen dieses Tools, und seine Verwendung sollte nicht als Garantie dafür angesehen werden, dass SAP-Anwendungen weder RECON (und anderen Schwachstellen) ausgesetzt sind noch dass die Anwendungen nicht kompromittiert wurden. Mehrere Bedingungen können den Zustand der bewerteten Anwendungen und/oder Protokolldateien beeinflussen, was zu falsch positiven und/oder falsch negativen Ergebnissen führen kann.
Wenn IoCs identifiziert werden, wird dringend empfohlen, eine eingehende forensische Untersuchung der bewerteten Systeme (und der damit verbundenen Systeme) durchzuführen, um Umfang und Ausmaß einer möglichen Kompromittierung zu bestimmen.
Dieses Tool wird „wie besehen“ und ohne Gewährleistung angeboten.
Alternative Online-Version
Um SAP-Kunden bei einer schnellen Bewertung in Bezug auf RECON für internetzugängliche Systeme zu unterstützen, haben wir außerdem eine kostenlose Online-Version entwickelt, die beide Anwendungsfälle unterstützt. Wenn gewünscht, können Sie diesen Dienst unter https://recon.onapsis.com nutzen.
Die Skripte sind in Python 3 entwickelt und erfordern die Installation der folgenden Abhängigkeiten:
# python3 -m venv .venv
# . .venv/bin/activate
# pip install -r requirements.txt
Nachdem Sie die Abhängigkeiten installiert haben, können Sie Python verwenden, um beide Skripte auszuführen und die Hilfe über die Befehlszeile abzurufen.
Zur Erkennung von Schwachstellen führen Sie das folgende Skript aus:
# python3 RECON_CVE-2020-6287_vuln_scanner.py -h
Sie müssen das Skript auf einem System ausführen, das über eine Netzwerkverbindung zu der zu analysierenden SAP-Anwendung verfügt. Der HTTP(S)-Port des SAP-NetWeaver-JAVA-Anwendungsservers sollte erreichbar sein (d. h. für eine Instanz 00 wäre es 50000 für HTTP, aber er könnte über einen Proxy/Load-Balancer exponiert und/oder über andere TCP-Ports wie 80 oder 443 erreichbar sein).
Sie sollten den Parameter -u verwenden, um eine gültige URL als Parameter zum Testen der RECON-Schwachstelle anzugeben:
# python3 RECON_CVE-2020-6287_vuln_scanner.py -u http://myinternalportal.mycompany.com:50000/
Sie können auch den Parameter -f verwenden, um mehrere URLs zu bewerten, indem Sie eine Datei mit allen zu analysierenden URLs angeben:
# python3 RECON_CVE-2020-6287_vuln_scanner.py -f file_with_urls
Die Ausgabe der Bewertung wird an stdout gesendet. Es ist möglich, sie auf folgende Weise in eine Datei umzuleiten:
# python3 RECON_CVE-2020-6287_vuln_scanner.py -f file_with_urls >> results
Zur Erkennung von Indikatoren für Kompromittierung führen Sie das folgende Skript aus:
python3 RECON_CVE-2020-6287_ioc_scanner.py -h
Das Skript empfängt einen Dateinamen und parst die Datei, um anhand der Nutzung der LM-CTC-Anwendung nach IoCs zu suchen. Die folgenden Dateitypen werden akzeptiert:
applications_xx.y.log
Die erforderlichen Dateien befinden sich im folgenden Ordner:
Linux: /usr/sap/<SID>/<INSTANCE>/j2ee/cluster/server<X>/log/
Windows: \usr\sap\<SID>\<INSTANCE>\j2ee\cluster\server<X>\log\
responses_xx.y.trc
Unter Verwendung der Standard-Formatkonfiguration. Wenn Änderungen an der Standard-Logformatkonfiguration vorgenommen wurden, kann das Parsen fehlschlagen. In diesem Fall sollte der interne Regex manuell angepasst werden, um das neue Format widerzuspiegeln. Die erforderlichen Dateien befinden sich im folgenden Ordner:
Linux: /usr/sap/<SID>/<INSTANCE>/j2ee/cluster/server<X>/log/system/httpaccess/
Windows: \usr\sap\<SID>\<INSTANCE>\j2ee\cluster\server<X>\log\system\httpaccess\
Sie können das Skript mit dem Parameter -f ausführen, um bestimmte Dateien zu analysieren:
python3 RECON_CVE-2020-6287_ioc_scanner.py -f path_to_logfile
Sie können ein Bash-Skript verwenden, um das Skript gleichzeitig gegen mehrere Dateien auszuführen. Wenn sich das Verzeichnis mit mehreren Protokollen beispielsweise in /tmp/sap_RECON_logs/ befindet, würde die Ausführung wie folgt aussehen:
path_to_log_folder="/tmp/sap_RECON_logs/";for log_file in `ls $path_to_log_folder`; do python RECON_CVE-2020-6287_ioc_scanner.py -f $path_to_log_folder/$log_file -o csv; done
Das Onapsis-Team aus Cybersicherheitsexperten steht Ihnen zur Verfügung, um etwaige Rückfragen zu beantworten oder Sie dabei zu unterstützen, Transparenz über die identifizierten Indikatoren zu gewinnen. Sie können Onapsis unter [email protected] kontaktieren.