
Scanner di vulnerabilità black-box e analizzatore di indicatori di compromissione per CVE-2020-6287 (RECON) nelle applicazioni Java SAP NetWeaver, che consente una rapida valutazione dell'esposizione e un'indagine forense basata sui log.
RECON (Remotely Exploitable Code On NetWeaver) è una vulnerabilità critica (CVSSv3 10) che colpisce diverse applicazioni aziendali e tecniche SAP eseguite sullo stack SAP NetWeaver Java. Questa vulnerabilità è stata scoperta dagli Onapsis Research Labs, che hanno collaborato strettamente con SAP per sviluppare e pubblicare una patch il 14 luglio 2020. Data la criticità del problema, la U.S. DHS CISA, il BSI CERT-Bund e diverse altre agenzie governative hanno pubblicato allerte invitando i clienti SAP a proteggere le applicazioni vulnerabili, dando priorità a quelle esposte a Internet.
Dopo aver osservato una significativa attività dannosa mirata a RECON in ambienti reali, e considerando il numero di applicazioni SAP vulnerabili esposte a Internet e la sensibilità dei dati e dei processi tipicamente supportati da questi sistemi, Onapsis ha deciso di sviluppare e pubblicare questo strumento open-source il più rapidamente possibile. L'obiettivo è aiutare i team di sicurezza informatica e di amministrazione di tutti i clienti SAP a proteggere le loro applicazioni mission-critical, consentendo loro di valutare la propria esposizione e di verificare se i loro sistemi SAP potrebbero essere stati compromessi. Prevediamo di migliorare ulteriormente questo strumento man mano che nuove intelligence sulle minacce e dati forensi verranno catturati dai nostri prodotti, dal team di ricerca e dalla comunità più ampia.
Questo strumento può:
Questo strumento non può:
Esistono, tuttavia, diverse limitazioni note di questo strumento e il suo utilizzo non deve essere considerato una garanzia che le applicazioni SAP non siano esposte a RECON (o ad altre vulnerabilità) o che le applicazioni non siano state compromesse. Diverse condizioni possono influenzare lo stato delle applicazioni valutate e/o dei file di log, generando falsi positivi e/o falsi negativi.
Se vengono identificati IoC, è fortemente consigliato eseguire un esame forense approfondito dei sistemi valutati (e di quelli interconnessi), per determinare la portata e l'estensione di una potenziale compromissione.
Questo strumento è fornito "così com'è" e senza garanzia.
Versione Online Alternativa
Per aiutare i clienti SAP a effettuare una valutazione rapida per RECON sui sistemi esposti a Internet, abbiamo anche sviluppato una versione online gratuita che supporta entrambi i casi d'uso. Se preferisci, puoi utilizzare questo servizio all'indirizzo https://recon.onapsis.com.
Gli script sono sviluppati in Python 3 e richiedono l'installazione delle seguenti dipendenze:
# python3 -m venv .venv
# . .venv/bin/activate
# pip install -r requirements.txt
Una volta installate le dipendenze, puoi usare Python per eseguire entrambi gli script e ottenere l'Help dalla riga di comando.
Per il rilevamento delle vulnerabilità, esegui il seguente script:
# python3 RECON_CVE-2020-6287_vuln_scanner.py -h
Devi eseguire lo script su un sistema che abbia una connessione di rete con l'applicazione SAP di destinazione analizzata. La porta HTTP(s) del server applicativo SAP NetWeaver JAVA deve essere raggiungibile (ad esempio, per un'istanza 00, sarà la 50000 per HTTP, ma potrebbe essere esposta tramite proxy/load balancer e/o essere accessibile attraverso altre porte TCP come la 80 o la 443).
Dovresti usare il parametro -u per includere un URL valido come parametro per testare la vulnerabilità RECON:
# python3 RECON_CVE-2020-6287_vuln_scanner.py -u http://myinternalportal.mycompany.com:50000/
Puoi anche usare il parametro -f per valutare più URL fornendo un file contenente tutti gli URL da analizzare:
# python3 RECON_CVE-2020-6287_vuln_scanner.py -f file_with_urls
L'output della valutazione viene inviato a stdout. È possibile salvarlo in un file nel seguente modo:
# python3 RECON_CVE-2020-6287_vuln_scanner.py -f file_with_urls >> results
Per rilevare gli indicatori di compromissione, esegui il seguente script:
python3 RECON_CVE-2020-6287_ioc_scanner.py -h
Lo script riceve un nome di file e lo analizza per cercare IoC basati sull'uso dell'applicazione LM CTC. Sono accettati i seguenti tipi di file:
applications_xx.y.log
I file richiesti si trovano nella seguente cartella:
Linux: /usr/sap/<SID>/<INSTANCE>/j2ee/cluster/server<X>/log/
Windows: \usr\sap\<SID>\<INSTANCE>\j2ee\cluster\server<X>\log\
responses_xx.y.trc
Utilizzando la configurazione di formato predefinita. Se sono state apportate modifiche alla configurazione del formato di log standard, l'analisi potrebbe fallire. In tal caso, l'espressione regolare interna dovrebbe essere adattata manualmente per riflettere il nuovo formato. I file richiesti si trovano nella seguente cartella:
Linux: /usr/sap/<SID>/<INSTANCE>/j2ee/cluster/server<X>/log/system/httpaccess/
Windows: \usr\sap\<SID>\<INSTANCE>\j2ee\cluster\server<X>\log\system\httpaccess\
Puoi eseguire lo script per analizzare file specifici con il parametro -f:
python3 RECON_CVE-2020-6287_ioc_scanner.py -f path_to_logfile
Puoi usare uno script bash per eseguire lo script su più file contemporaneamente. Ad esempio, se la directory contenente più log è presente in /tmp/sap_RECON_logs/, l'esecuzione sarebbe simile a:
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