
Escáner de vulnerabilidades de caja negra y analizador de indicadores de compromiso para CVE-2020-6287 (RECON) en aplicaciones SAP NetWeaver Java, que permite una evaluación rápida de la exposición y una investigación forense basada en registros.
RECON (Remotely Exploitable Code On NetWeaver) es una vulnerabilidad crítica (CVSSv3 10) que afecta a varias aplicaciones técnicas y de negocio de SAP que se ejecutan sobre la pila Java de SAP NetWeaver. Esta vulnerabilidad fue descubierta por los laboratorios de investigación de Onapsis, que colaboraron estrechamente con SAP para desarrollar y publicar un parche el 14 de julio de 2020. Dada la criticidad de este problema, la CISA del DHS de EE. UU., el BSI CERT-Bund y varias otras agencias gubernamentales publicaron alertas instando a los clientes de SAP a proteger las aplicaciones vulnerables, priorizando las expuestas a Internet.
Después de observar una actividad maliciosa significativa dirigida a RECON en el entorno real, y considerando el número de aplicaciones SAP vulnerables expuestas a Internet y la sensibilidad de los datos y procesos que normalmente soportan estos sistemas, Onapsis decidió desarrollar y publicar esta herramienta de código abierto lo antes posible. El objetivo es ayudar a los equipos de seguridad de la información y administración de todos los clientes de SAP a proteger sus aplicaciones de misión crítica, permitiéndoles evaluar su exposición y determinar si sus sistemas SAP podrían haber sido comprometidos. Planeamos seguir iterando esta herramienta a medida que se capturen nuevas inteligencia de amenazas y datos forenses a través de nuestros productos, equipo de investigación y la comunidad en general.
Esta herramienta puede:
Esta herramienta no puede:
Sin embargo, existen varias limitaciones conocidas de esta herramienta y su uso no debe considerarse una garantía de que las aplicaciones SAP no estén expuestas a RECON (u otras vulnerabilidades) ni de que las aplicaciones no hayan sido comprometidas. Diversas condiciones pueden afectar el estado de las aplicaciones evaluadas y/o de los archivos de registro, lo que puede dar lugar a falsos positivos y/o falsos negativos.
Si se identifican IoCs, se recomienda encarecidamente realizar un examen forense en profundidad de los sistemas evaluados (y de los interconectados), para determinar el alcance y la extensión de un posible compromiso.
Esta herramienta se ofrece «tal cual» y sin garantía.
Versión en línea alternativa
Para ayudar a los clientes de SAP a realizar una evaluación rápida contra RECON en sistemas expuestos a Internet, también hemos desarrollado una versión en línea gratuita que soporta ambos casos de uso. Si lo prefiere, puede utilizar este servicio en https://recon.onapsis.com.
Los scripts están desarrollados en Python 3 y requieren que instale las siguientes dependencias:
# python3 -m venv .venv
# . .venv/bin/activate
# pip install -r requirements.txt
Una vez instaladas las dependencias, puede usar Python para ejecutar ambos scripts y obtener la ayuda desde la línea de comandos.
Para la detección de vulnerabilidades, ejecute el siguiente script:
# python3 RECON_CVE-2020-6287_vuln_scanner.py -h
Debe ejecutar el script en un sistema que tenga conexión de red con la aplicación SAP objetivo que se está analizando. El puerto HTTP(s) del servidor de aplicaciones SAP NetWeaver JAVA debe ser accesible (es decir, para una instancia 00, será el 50000 para HTTP, pero podría estar expuesto a través de un proxy/balanceador de carga y/o ser accesible a través de otros puertos TCP como 80 o 443).
Debe usar el parámetro -u para incluir una URL válida como parámetro para probar la vulnerabilidad RECON:
# python3 RECON_CVE-2020-6287_vuln_scanner.py -u http://myinternalportal.mycompany.com:50000/
También puede usar el parámetro -f para evaluar múltiples URLs proporcionando un archivo que contenga todas las URLs a analizar:
# python3 RECON_CVE-2020-6287_vuln_scanner.py -f file_with_urls
La salida de la evaluación se envía a stdout. Es posible volcarla a un archivo de la siguiente manera:
# python3 RECON_CVE-2020-6287_vuln_scanner.py -f file_with_urls >> results
Para detectar indicadores de compromiso, ejecute el siguiente script:
python3 RECON_CVE-2020-6287_ioc_scanner.py -h
El script recibe un nombre de archivo y lo analiza para buscar IoCs basados en el uso de la aplicación LM CTC. Se aceptan los siguientes tipos de archivos:
applications_xx.y.log
Los archivos requeridos se encuentran en la siguiente carpeta:
Linux: /usr/sap/<SID>/<INSTANCE>/j2ee/cluster/server<X>/log/
Windows: \usr\sap\<SID>\<INSTANCE>\j2ee\cluster\server<X>\log\
responses_xx.y.trc
Usando la configuración de formato predeterminada. Si se realizaron cambios en la configuración estándar del formato de registro, el análisis podría fallar. En ese caso, la expresión regular interna debe ajustarse manualmente para reflejar el nuevo formato. Los archivos requeridos se encuentran en la siguiente carpeta:
Linux: /usr/sap/<SID>/<INSTANCE>/j2ee/cluster/server<X>/log/system/httpaccess/
Windows: \usr\sap\<SID>\<INSTANCE>\j2ee\cluster\server<X>\log\system\httpaccess\
Puede ejecutar el script para analizar archivos específicos con el parámetro -f:
python3 RECON_CVE-2020-6287_ioc_scanner.py -f path_to_logfile
Puede usar un script bash para ejecutar el script contra múltiples archivos al mismo tiempo. Por ejemplo, si el directorio que contiene múltiples registros está presente en /tmp/sap_RECON_logs/, la ejecución se vería así:
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
El equipo de expertos en ciberseguridad de Onapsis está disponible para responder cualquier pregunta adicional o para ayudarle a obtener visibilidad sobre los indicadores identificados. Puede contactar a Onapsis en [email protected].