
Scanner de vulnerabilidades caixa-preta e analisador de indicadores de comprometimento para CVE-2020-6287 (RECON) em aplicações Java SAP NetWeaver, permitindo avaliação rápida de exposição e investigação forense baseada em logs.
RECON (Remotely Exploitable Code On NetWeaver) é uma vulnerabilidade crítica (CVSSv3 10) que afeta vários aplicativos de negócios e técnicos da SAP executados sobre a pilha Java do SAP NetWeaver. Esta vulnerabilidade foi descoberta pelos Onapsis Research Labs, que colaboraram estreitamente com a SAP para desenvolver e lançar uma correção em 14 de julho de 2020. Devido à criticidade deste problema, o DHS CISA dos EUA, o BSI CERT-Bund e várias outras agências governamentais emitiram alertas instando os clientes SAP a protegerem aplicativos vulneráveis, priorizando aqueles voltados para a Internet.
Após observar uma atividade maliciosa significativa visando o RECON em ambientes reais, e considerando o número de aplicativos SAP vulneráveis voltados para a Internet e a sensibilidade dos dados e processos tipicamente suportados por esses sistemas, a Onapsis decidiu desenvolver e lançar esta ferramenta de código aberto o mais rápido possível. O objetivo é ajudar as equipes de segurança da informação e administração de todos os clientes SAP a protegerem seus aplicativos críticos, permitindo-lhes avaliar sua exposição e verificar se seus sistemas SAP podem ter sido comprometidos. Planejamos iterar ainda mais esta ferramenta à medida que novas informações de inteligência de ameaças e dados forenses forem capturados por nossos produtos, equipe de pesquisa e pela comunidade em geral.
Esta ferramenta pode:
Esta ferramenta não pode:
Existem, no entanto, várias limitações conhecidas desta ferramenta e seu uso não deve ser considerado uma garantia de que os aplicativos SAP não estão expostos ao RECON (e outras vulnerabilidades) ou que os aplicativos não foram comprometidos. Várias condições podem afetar o estado dos aplicativos avaliados e/ou arquivos de log, resultando em falsos positivos e/ou falsos negativos.
Se IoCs forem identificados, é fortemente recomendado que você realize um exame forense aprofundado dos sistemas avaliados (e interconectados), para determinar o escopo e a extensão de um potencial comprometimento.
Esta ferramenta é oferecida “como está” e sem garantia.
Versão Online Alternativa
Para ajudar os clientes SAP a fazerem uma avaliação rápida contra o RECON em sistemas voltados para a Internet, também desenvolvemos uma versão online gratuita que suporta ambos os casos de uso. Se preferir, você pode usar este serviço em https://recon.onapsis.com.
Os scripts são desenvolvidos em Python 3 e exigem que você instale as seguintes dependências:
# python3 -m venv .venv
# . .venv/bin/activate
# pip install -r requirements.txt
Depois de instalar as dependências, você pode usar Python para executar ambos os scripts e obter a Ajuda pela linha de comando.
Para detecção de vulnerabilidade, execute o seguinte script:
# python3 RECON_CVE-2020-6287_vuln_scanner.py -h
Você deve executar o script em um sistema que tenha uma conexão de rede com o aplicativo SAP alvo que está sendo analisado. A porta HTTP(s) do servidor de aplicativos SAP NetWeaver JAVA deve estar acessível (ou seja, para uma instância 00, será 50000 para HTTP, mas pode ser exposta através de um proxy/balanceador de carga e/ou estar acessível através de outras portas TCP, como 80 ou 443).
Você deve usar o parâmetro -u para incluir uma URL válida como parâmetro para testar a vulnerabilidade RECON:
# python3 RECON_CVE-2020-6287_vuln_scanner.py -u http://myinternalportal.mycompany.com:50000/
Você também pode usar o parâmetro -f para avaliar várias URLs fornecendo um arquivo contendo todas as URLs a serem analisadas:
# python3 RECON_CVE-2020-6287_vuln_scanner.py -f file_with_urls
A saída da avaliação é enviada para stdout. É possível despejá-la em um arquivo da seguinte forma:
# python3 RECON_CVE-2020-6287_vuln_scanner.py -f file_with_urls >> results
Para detectar indicadores de comprometimento, execute o seguinte script:
python3 RECON_CVE-2020-6287_ioc_scanner.py -h
O script recebe um nome de arquivo e analisa o nome do arquivo para procurar IoCs com base no uso do aplicativo LM CTC. Os seguintes tipos de arquivos são aceitos:
applications_xx.y.log
Os arquivos necessários estão localizados na seguinte pasta:
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 a configuração de formato padrão. Se alterações foram feitas na configuração de formato de log padrão, a análise pode falhar. Nesse caso, a regex interna deve ser ajustada manualmente para refletir o novo formato. Os arquivos necessários estão localizados na seguinte pasta:
Linux: /usr/sap/<SID>/<INSTANCE>/j2ee/cluster/server<X>/log/system/httpaccess/
Windows: \usr\sap\<SID>\<INSTANCE>\j2ee\cluster\server<X>\log\system\httpaccess\
Você pode executar o script para analisar arquivos específicos com o parâmetro -f:
python3 RECON_CVE-2020-6287_ioc_scanner.py -f path_to_logfile
Você pode usar um script bash para executar o script em vários arquivos ao mesmo tempo. Por exemplo, se o diretório contendo vários logs estiver presente em /tmp/sap_RECON_logs/, a execução seria semelhante 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
A equipe de especialistas em cibersegurança da Onapsis está disponível para responder a quaisquer perguntas de acompanhamento ou para ajudá-lo a obter visibilidade sobre os indicadores identificados. Você pode contatar a Onapsis em [email protected].