Relatório Técnico: Análise da Vulnerabilidade CVE-2024-23113 no FortiGate e Medidas de Mitigação
Introdução
Nos últimos anos, as vulnerabilidades em dispositivos de segurança de borda, como firewalls e gateways SSLVPN, têm se tornado um ponto de grande preocupação para as equipes de segurança da informação. Entre essas falhas, destaca-se a CVE-2024-23113, uma vulnerabilidade crítica encontrada nos dispositivos FortiGate da Fortinet que permite a execução remota de código (RCE). Neste relatório, exploraremos em detalhes o funcionamento dessa vulnerabilidade, suas implicações para a segurança organizacional, os dispositivos e versões afetadas, as estratégias de mitigação e as medidas que devem ser tomadas para proteger os sistemas expostos.
Visão Geral da Vulnerabilidade CVE-2024-23113
A CVE-2024-23113 é uma vulnerabilidade que afeta os dispositivos FortiGate SSLVPN e envolve uma exploração de Format String, uma classe de vulnerabilidade que permite que um invasor controle a forma como os dados de entrada são manipulados em uma string de formato. Isso, por sua vez, pode levar à execução arbitrária de código no sistema afetado. O problema está no fato de que, em algumas versões do firmware do FortiGate, uma string de formato controlada pelo atacante pode ser passada diretamente para uma função insegura (como snprintf
), o que permite a modificação de variáveis e a execução de código malicioso.
Essa vulnerabilidade afeta dispositivos que utilizam o protocolo FGFM (FortiGate to FortiManager), que é usado para gerenciar remotamente os dispositivos FortiGate por meio de uma conexão SSL estabelecida na porta TCP 541. A exploração pode ser realizada remotamente, sem necessidade de interação do usuário, tornando-a especialmente perigosa para ambientes em que os dispositivos FortiGate estão expostos diretamente à Internet.
Como Funciona a Vulnerabilidade
A exploração da CVE-2024-23113 envolve a manipulação da string de formato usada na comunicação entre um dispositivo FortiGate e o FortiManager. O código vulnerável permite que um atacante, sem a necessidade de autenticação, envie uma string especialmente criada que é processada de maneira insegura. A vulnerabilidade é semelhante ao seguinte exemplo genérico de um código inseguro:
void doStuff(char* stuffToDo) { printf(stuffToDo);}
Neste exemplo, a função printf
é chamada com uma string fornecida pelo usuário (ou atacante). Se essa string incluir um modificador de formato como %s
ou %n
, o comportamento da função pode se tornar imprevisível, e o atacante pode forçar a escrita em posições arbitrárias na memória, levando à corrupção de dados e à possibilidade de executar código malicioso.
No caso da CVE-2024-23113, o atacante pode explorar essa vulnerabilidade ao enviar um pacote que contenha uma string maliciosa para a porta TCP 541, usada pelo protocolo FGFM. O código vulnerável tenta processar a string como parte de uma comunicação SSL, resultando em falha de segurança e permitindo a execução de código no dispositivo.
Impacto da Exploração
A exploração bem-sucedida dessa vulnerabilidade pode ter graves consequências, incluindo:
- Execução Remota de Código (RCE): O atacante pode executar código arbitrário no dispositivo FortiGate afetado, o que pode levar ao comprometimento completo do sistema.
- Acesso não autorizado: O invasor pode obter controle sobre o dispositivo, permitindo o acesso aos dados de rede, a interceptação de tráfego e o comprometimento de outros sistemas na rede.
- Comprometimento de Redes Corporativas: Como os dispositivos FortiGate geralmente são usados como firewalls de borda em grandes redes corporativas, uma exploração bem-sucedida pode expor a organização a riscos maiores, incluindo espionagem industrial e ataques direcionados.
- Desestabilização dos Serviços de Rede: A vulnerabilidade também pode ser usada para desabilitar ou desestabilizar serviços de rede críticos, interrompendo as operações da organização.
Dispositivos e Versões Afetadas
A vulnerabilidade CVE-2024-23113 afeta uma série de versões do firmware FortiOS, distribuídas entre três branches principais: 7.0, 7.2, e 7.4. A seguir, listamos as versões específicas que são vulneráveis, bem como as versões corrigidas:
Versão 7.0:
- Vulnerável: 7.0.13 e anteriores.
- Corrigida: 7.0.14.
Versão 7.2:
- Vulnerável: 7.2.6 e anteriores.
- Corrigida: 7.2.7.
Versão 7.4:
- Vulnerável: 7.4.2 e anteriores.
- Corrigida: 7.4.3.
Exploração Externa e Interação com o Usuário
Uma característica crítica da CVE-2024-23113 é que a exploração pode ser feita remotamente, sem a necessidade de qualquer interação por parte do usuário. Isso significa que, se o dispositivo FortiGate estiver exposto à Internet, especialmente na porta TCP 541, o atacante pode explorar a vulnerabilidade diretamente.
A exploração é facilitada pelo fato de que a vulnerabilidade reside no serviço FGFM, que pode ser acessado de maneira não autenticada. Dispositivos que aceitam conexões com certificados SSL autoassinados (em versões vulneráveis) estão ainda mais suscetíveis, pois permitem que qualquer host com acesso à rede possa se conectar e tentar a exploração.
A exploração não requer credenciais ou privilégios elevados, tornando o ataque ainda mais perigoso, especialmente para firewalls de borda expostos à Internet.
Soluções e Medidas de Mitigação
Existem várias abordagens para mitigar a vulnerabilidade CVE-2024-23113. Abaixo estão as medidas recomendadas:
1. Atualização do Firmware
A maneira mais eficaz de resolver a vulnerabilidade é atualizar o firmware FortiOS para uma versão corrigida. As atualizações específicas dependem da versão que você está utilizando:
- Versão 7.0: Atualizar para a versão 7.0.14 ou posterior.
- Versão 7.2: Atualizar para a versão 7.2.7 ou posterior.
- Versão 7.4: Atualizar para a versão 7.4.3 ou posterior.
Dispositivos com versões 7.4.5 e superiores já estão protegidos contra essa vulnerabilidade.
2. Restringir o Acesso ao Serviço FGFM
Enquanto não for possível aplicar as atualizações, recomenda-se restringir o acesso à porta 541 usada pelo serviço FGFM. Isso pode ser feito através de políticas de firewall que limitem o acesso à porta apenas para hosts confiáveis ou para uma rede interna.
Essa medida reduz a exposição do dispositivo a ataques remotos, impedindo que atacantes externos possam explorar a vulnerabilidade.
3. Uso de Certificados SSL Gerenciados
Uma solução adicional é configurar os dispositivos FortiGate para aceitar apenas certificados SSL assinados por uma autoridade confiável (CA). Nas versões vulneráveis, o FortiGate pode aceitar certificados autoassinados, facilitando a exploração. Ao impor o uso de certificados válidos e assinados por uma CA, você limita a capacidade de um atacante de estabelecer uma conexão SSL e explorar a vulnerabilidade.
4. Monitoramento de Logs e Tráfego de Rede
Para detectar tentativas de exploração, os administradores de sistemas devem monitorar os logs dos dispositivos FortiGate e o tráfego de rede em busca de atividades suspeitas na porta 541. Indicadores de comprometimento incluem tentativas de conexão não autenticadas e falhas de SSL inesperadas.
5. Segregação de Redes
Outra medida recomendada é isolar o dispositivo FortiGate em uma rede segregada, limitando seu acesso à Internet e a outros sistemas críticos. Isso ajuda a mitigar os riscos, mesmo que o dispositivo seja comprometido.
Detecção de Dispositivos Vulneráveis
Para verificar se um dispositivo FortiGate é vulnerável à CVE-2024-23113, pode-se utilizar uma técnica de detecção simples, enviando um payload de string de formato para a porta 541. Dispositivos vulneráveis responderão fechando a conexão abruptamente, enquanto dispositivos corrigidos continuarão o handshake SSL normalmente ou rejeitarão conexões com certificados autoassinados.
A detecção pode ser realizada com o seguinte script Python, que envia um payload de teste para o dispositivo:
import socket
import ssl
import struct
def test_vulnerability(hostname, port=541):
context = ssl.create_default_context()
with socket.create_connection((hostname, port)) as sock:
with context.wrap_socket(sock, server_hostname=hostname) as ssock:
payload = b"reply 200\r\nrequest=auth\r\nauthip=%n\r\n\r\n\x00"
packet = b''
packet += struct.pack('<i', 0x0001e034)
packet += struct.pack('>i', len(payload) + 8)
packet += payload
ssock.send(packet)
try:
response = ssock.recv(1024)
print("Vulnerable device detected")
except ssl.SSLError as e:
print("Device may be patched")
Esse script testa a presença da vulnerabilidade enviando um payload de %n, que, em dispositivos vulneráveis, resultará no fechamento da conexão.
Conclusão
A CVE-2024-23113 é uma vulnerabilidade crítica que afeta dispositivos FortiGate em versões anteriores a 7.0.14, 7.2.7, e 7.4.3. Ela permite a exploração remota sem a necessidade de interação do usuário, tornando dispositivos FortiGate de borda altamente suscetíveis a ataques. A aplicação de patches é a solução mais imediata e eficaz, mas medidas de mitigação como restringir o acesso ao serviço FGFM e exigir certificados SSL válidos podem ajudar a proteger os sistemas enquanto as atualizações não são aplicadas.
Organizações que utilizam FortiGate como parte de sua infraestrutura de segurança devem agir rapidamente para atualizar suas versões e garantir que seus sistemas estejam protegidos contra possíveis ataques. A falha ilustra a importância contínua de monitoramento de vulnerabilidades e atualização de dispositivos de segurança em tempo hábil.
Ademais do exposto, vale ressaltar que a vulnerabilidade CVE-2024-23113 está associada a TTPs (Táticas, Técnicas e Procedimentos) focadas na exploração de Format String, uma técnica que permite a manipulação de strings de formato para realizar Execução Remota de Código (RCE). Essa técnica é explorada remotamente através da porta 541 no protocolo FGFM, sem a necessidade de interação do usuário, sendo uma TTP comum em ataques a dispositivos de borda. Os Indicadores de Comprometimento (IoCs) incluem tentativas de conexão anômalas à porta 541, falhas SSL inesperadas durante o handshake, e encerramento abrupto de conexões após envio de payloads maliciosos contendo strings como %n. No contexto da Classificação CVSS, a CVE-2024-23113 é considerada crítica, com uma pontuação estimada de 9.8/10, dada a sua gravidade, facilidade de exploração remota, ausência de necessidade de credenciais e potencial impacto severo em infraestruturas críticas.
Fontes de Pesquisa sobre a Vulnerabilidade CVE-2024-23113 e Segurança de Dispositivos FortiGate
Documentação Oficial da Fortinet:
- Fortinet Security Advisories - Página oficial da Fortinet com os últimos boletins de segurança e patches.
- Fortinet Product Documentation - Acesso à documentação detalhada sobre FortiGate, FortiOS e outras soluções da Fortinet.
MITRE CVE Database:
- CVE-2024-23113 - Detalhes da Vulnerabilidade - Página oficial com detalhes técnicos da vulnerabilidade CVE-2024-23113.
CISA (Cybersecurity & Infrastructure Security Agency):
- CISA Known Exploited Vulnerabilities Catalog - Catálogo de vulnerabilidades conhecidas e exploradas, incluindo as mais recentes no setor.
Blog da Avaetec:
- Análise da Vulnerabilidade CVE-2024-23113 - Postagem detalhada da Avaetec com explicações sobre a vulnerabilidade, suas implicações e mitigações.
WatchTowr Labs:
- Análise da Vulnerabilidade CVE-2024-23113 no Fortinet FortiGate - Análise profunda da WatchTowr sobre a exploração da CVE-2024-23113, incluindo detalhes técnicos e exemplos de ataque.
OWASP (Open Web Application Security Project):
- Format String Vulnerabilities - Artigo detalhado da OWASP explicando a natureza das vulnerabilidades de Format String e como elas são exploradas.
Reddit - Fortinet Community:
- Fortinet Subreddit - Discussões sobre falhas, boas práticas de segurança e dicas de atualização da comunidade Fortinet.
Security Boulevard:
- Artigos sobre Vulnerabilidades em Firewalls - Notícias e análises relacionadas à segurança de firewalls e appliances de borda.
Exploit-DB:
- Exploit Database - Uma vasta base de dados de exploits, incluindo provas de conceito para diversas vulnerabilidades de software.
NVD (National Vulnerability Database):
- National Vulnerability Database - CVE-2024-23113 - Detalhes técnicos da vulnerabilidade, incluindo pontuação CVSS e informações sobre impacto.