
Análise educacional da vulnerabilidade RCE do Apache Struts 2 CVE-2017-5638, incluindo detalhes de exploração, estudo de caso da Equifax e medidas de prevenção.
Apache Struts 2 é um framework de aplicação web de código aberto para desenvolvimento de aplicações Web Java EE. É a segunda geração do framework Struts, lançado pela primeira vez em 10 de outubro de 2006. O Struts Framework é projetado de forma a ajudar na criação de aplicações Web que utilizam uma arquitetura MVC.
Apache Struts é um framework amplamente utilizado. Em 2017, mais de 65% das empresas da Fortune 100 utilizavam o framework Apache Struts.
Esta vulnerabilidade foi publicada pela primeira vez pela NVD em 03/10/2017, e recebeu o nível mais alto de Pontuação Base 10, que é Crítico. O principal fator que levou à pontuação mais alta de vulnerabilidade é que as aplicações poderiam ser exploradas pela rede com complexidade mínima e alto impacto na integridade e disponibilidade.
A vulnerabilidade permitia que o atacante executasse RCE na aplicação através da introdução de expressões da Object Graph Navigation Library (OGNL) nos cabeçalhos HTTP.
As versões vulneráveis do framework são Apache Struts 2 versão 2 2.3.x anteriores a 2.3.32 e 2.5.x anteriores a 2.5.10.1.
.png)
O código vulnerável está no Jakarta Multipart Parser. Para realizar um exploit, o atacante utilizou a vulnerabilidade na função LocalizedTextUtil.findText, que interpretava a mensagem fornecida dentro de ${…} como uma expressão da Object Graph Navigation Library (OGNL). O ataque pode então usar essas expressões OGNL que, por sua vez, executam comandos do sistema e podem revelar conteúdos de arquivos sensíveis como /etc/password, /etc/shadow, dando controle total ao atacante. A aplicação ainda fornecia a saída dos comandos executados pelo atacante, facilitando assim o ataque.

Em março de 2017, quando a vulnerabilidade CVE-2017-5638 foi descoberta pela primeira vez no framework Apache Struts, a Apache Foundation lançou um patch para a vulnerabilidade, mas a Equifax não aplicou o patch no sistema vulnerável, pois as varreduras executadas para encontrar o sistema vulnerável não funcionaram.
De maio a julho de 2017, os atacantes conseguiram acessar vários bancos de dados da Equifax, expondo as informações de milhões de pessoas. O ataque afetou 143 milhões de pessoas e também revelou as informações de cartão de crédito de mais de 200.000 pessoas.
Os atacantes conseguiram continuar os ataques sem serem notados por 76 dias.
A empresa gastou US$ 1,4 bilhão para atualizar sua segurança após a grande violação de dados.
Atualizações frequentes
Atualizar todos os componentes, incluindo o framework, que são usados na aplicação
Testes de penetração frequentes
Programas de recompensa para encontrar vulnerabilidades