
Analyseur de vulnérabilités en boîte noire et analyseur d'indicateurs de compromission pour CVE-2020-6287 (RECON) dans les applications SAP NetWeaver Java, permettant une évaluation rapide de l'exposition et une enquête forensique basée sur les journaux.
RECON (Remotely Exploitable Code On NetWeaver) est une vulnérabilité critique (CVSSv3 10) affectant de nombreuses applications métier et techniques SAP fonctionnant sur la pile Java SAP NetWeaver. Cette vulnérabilité a été découverte par les laboratoires de recherche d'Onapsis, qui ont collaboré étroitement avec SAP pour développer et publier un correctif le 14 juillet 2020. Compte tenu de la criticité de ce problème, la DHS CISA des États-Unis, le BSI CERT-Bund et plusieurs autres agences gouvernementales ont publié des alertes exhortant les clients SAP à protéger les applications vulnérables, en priorité celles exposées sur Internet.
Après avoir observé une activité malveillante significative ciblant RECON dans la nature, et compte tenu du nombre d'applications SAP vulnérables exposées sur Internet ainsi que de la sensibilité des données et des processus généralement supportés par ces systèmes, Onapsis a décidé de développer et de publier cet outil open-source le plus rapidement possible. L'objectif est d'aider les équipes de sécurité de l'information et d'administration de tous les clients SAP à protéger leurs applications critiques en leur permettant d'évaluer leur exposition et de déterminer si leurs systèmes SAP ont pu être compromis. Nous prévoyons de faire évoluer cet outil à mesure que de nouvelles informations sur les menaces et des données forensiques seront collectées par nos produits, notre équipe de recherche et la communauté élargie.
Cet outil peut :
Cet outil ne peut pas :
Il existe cependant plusieurs limitations connues de cet outil et son utilisation ne doit pas être considérée comme une garantie que les applications SAP ne sont pas exposées à RECON (ou à d'autres vulnérabilités) ni qu'elles n'ont pas été compromises. Diverses conditions peuvent affecter l'état des applications évaluées et/ou des fichiers journaux, entraînant des faux positifs et/ou des faux négatifs.
Si des IoC sont identifiés, il est fortement recommandé de procéder à un examen forensique approfondi des systèmes évalués (et de ceux interconnectés) afin de déterminer l'étendue et l'ampleur d'une potentielle compromission.
Cet outil est fourni « tel quel » et sans garantie.
Version en ligne alternative
Afin d'aider les clients SAP à réaliser une évaluation rapide contre RECON pour les systèmes exposés sur Internet, nous avons également développé une version en ligne gratuite qui prend en charge les deux cas d'utilisation. Si vous le préférez, vous pouvez utiliser ce service à l'adresse https://recon.onapsis.com.
Les scripts sont développés en Python 3 et nécessitent l'installation des dépendances suivantes :
# python3 -m venv .venv
# . .venv/bin/activate
# pip install -r requirements.txt
Une fois les dépendances installées, vous pouvez utiliser Python pour exécuter les deux scripts et obtenir l'aide depuis la ligne de commande.
Pour la détection de vulnérabilité, exécutez le script suivant :
# python3 RECON_CVE-2020-6287_vuln_scanner.py -h
Vous devez exécuter le script sur un système disposant d'une connexion réseau avec l'application SAP cible analysée. Le port HTTP(s) du serveur d'applications SAP NetWeaver JAVA doit être accessible (par exemple, pour une instance 00, ce sera 50000 pour HTTP, mais il peut être exposé via un proxy/équilibreur de charge et/ou accessible via d'autres ports TCP comme 80 ou 443).
Vous devez utiliser le paramètre -u pour inclure une URL valide comme paramètre de test de la vulnérabilité RECON :
# python3 RECON_CVE-2020-6287_vuln_scanner.py -u http://myinternalportal.mycompany.com:50000/
Vous pouvez également utiliser le paramètre -f pour évaluer plusieurs URL en fournissant un fichier contenant toutes les URL à analyser :
# python3 RECON_CVE-2020-6287_vuln_scanner.py -f file_with_urls
La sortie de l'évaluation est envoyée sur stdout. Il est possible de la rediriger vers un fichier de la manière suivante :
# python3 RECON_CVE-2020-6287_vuln_scanner.py -f file_with_urls >> results
Pour détecter les indicateurs de compromission, exécutez le script suivant :
python3 RECON_CVE-2020-6287_ioc_scanner.py -h
Le script reçoit un nom de fichier et l'analyse pour rechercher des IoC basés sur l'utilisation de l'application LM CTC. Les types de fichiers suivants sont acceptés :
applications_xx.y.log
Les fichiers requis se trouvent dans le dossier suivant :
Linux : /usr/sap/<SID>/<INSTANCE>/j2ee/cluster/server<X>/log/
Windows : \usr\sap\<SID>\<INSTANCE>\j2ee\cluster\server<X>\log\
responses_xx.y.trc
Avec la configuration de format par défaut. Si des modifications ont été apportées à la configuration standard du format de journal, l'analyse pourrait échouer. Dans ce cas, l'expression régulière interne doit être ajustée manuellement pour refléter le nouveau format. Les fichiers requis se trouvent dans le dossier suivant :
Linux : /usr/sap/<SID>/<INSTANCE>/j2ee/cluster/server<X>/log/system/httpaccess/
Windows : \usr\sap\<SID>\<INSTANCE>\j2ee\cluster\server<X>\log\system\httpaccess\
Vous pouvez exécuter le script pour analyser des fichiers spécifiques avec le paramètre -f :
python3 RECON_CVE-2020-6287_ioc_scanner.py -f path_to_logfile
Vous pouvez utiliser un script bash pour exécuter le script sur plusieurs fichiers à la fois. Par exemple, si le répertoire contenant plusieurs journaux se trouve dans /tmp/sap_RECON_logs/, l'exécution ressemblerait à :
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
L'équipe d'experts en cybersécurité d'Onapsis est disponible pour répondre à toutes les questions de suivi ou pour vous aider davantage à obtenir une visibilité sur les indicateurs identifiés. Vous pouvez contacter Onapsis à l'adresse [email protected].