> [!danger] CVSS 9.8 - Crítico
> Autenticação ausente no FortiManager permite comprometimento em cascata de toda a infraestrutura Fortinet.
> [!warning] CISA KEV - Exploração Ativa Confirmada
> Adicionada ao catálogo CISA KEV em 2024-10-23. Explorada como zero-day desde junho de 2024.
> [!success] Patch Disponível
> Patches disponibilizados em 23 de outubro de 2024. Rotacionar credenciais após aplicação.
# CVE-2024-47575 - Autenticação Ausente no FortiManager (FortiJump)
> CVSS: 9.8 · EPSS: 95% · Vendor: Fortinet · Patch: Sim · CISA KEV: Sim
## Resumo
**CVE-2024-47575**, conhecida como "FortiJump", é uma vulnerabilidade crítica de autenticação ausente para função crítica no [[_fortinet|Fortinet]] FortiManager. A falha permite que atacantes remotos não autenticados executem comandos arbitrários nos sistemas afetados através do serviço `fgfmsd`, que gerencia a comunicação entre FortiManager e dispositivos FortiGate.
A vulnerabilidade foi identificada sendo explorada ativamente por [[unc5820]] desde junho de 2024, segundo colaboração entre [[_fortinet|Fortinet]] e [[_intel/sources|Mandiant]]. Os atacantes utilizaram a falha para roubar dados de configuração e senhas hash de dispositivos FortiOS, potencialmente permitindo ataques em cascata em toda a infraestrutura Fortinet de uma organização.
**Pontuação de risco:**
- CVSS v3.1: **9.8** (Crítico)
- EPSS: **95%** de probabilidade de exploração nos próximos 30 dias
- CISA KEV: adicionado em 2024-10-23
- Exploit público: exploração zero-day confirmada
## Cadeia de Exploração
```mermaid
graph TB
ATK[Atacante] -->|Requisição FGFM sem autenticação| FM[FortiManager]
FM -->|Bypass da verificação fgfmsd| ADM[Acesso Administrativo]
ADM -->|Exfiltração de configs e hashes| CFG[Dados FortiGate]
ADM -->|Implante backdoor| BACK[Backdoor Persistente]
CFG -->|Credenciais comprometidas| FG[FortiGate Gerenciados]
FG -->|Movimento lateral em cascata| NET[Rede Corporativa]
```
## Detalhes Técnicos
A vulnerabilidade reside no daemon `fgfmsd` do FortiManager, responsável pela comunicação com dispositivos FortiGate gerenciados. A falha na autenticação permite que atacantes enviem requisições especialmente elaboradas para:
1. **Bypass de autenticação** no protocolo FGFM (FortiGate to FortiManager)
2. **Injeção de comandos** através de requisições maliciosas ao serviço fgfmsd
3. **Exfiltração de configurações** - roubo de dados de configuração de todos os FortiGate gerenciados
4. **Roubo de credenciais** - extração de senhas FortiOS256-hashed
A classe de vulnerabilidade (injeção de comando com bypass de autenticação) é altamente explorável, pois o mesmo payload funciona para todos os dispositivos e versões vulneráveis.
## Exploração
**Status atual:** Exploração zero-day confirmada desde junho de 2024.
A [[_intel/sources|Mandiant]] identificou que o [[unc5820]] explorou esta vulnerabilidade desde 27 de junho de 2024, meses antes da divulgação pública. A [[_fortinet|Fortinet]] notificou clientes de forma privada no início de outubro de 2024 antes da divulgação pública em 23 de outubro.
**Grupos de ameaça utilizando:**
- [[unc5820]] - grupo de ameaça identificado pela Mandiant como o primeiro a explorar a vulnerabilidade
**Campanhas associadas:**
- [[FortiJump Campaign]] - campanha de exploração visando infraestrutura de gerenciamento Fortinet
**TTPs relacionadas:**
- [[t1190-exploit-public-facing-application|T1190 - Exploit Public-Facing Application]] - exploração do FortiManager exposto
- [[t1078-valid-accounts|T1078 - Valid Accounts]] - uso de credenciais roubadas para acesso a dispositivos FortiGate
- [[t1059-command-scripting-interpreter|T1059 - Command and Scripting Interpreter]] - execução de comandos no FortiManager
## Impacto
O comprometimento do FortiManager é especialmente grave porque:
- **Controle centralizado:** FortiManager gerencia múltiplos firewalls FortiGate, permitindo comprometimento em cascata
- **Roubo de configurações:** atacantes obtêm acesso a todas as configurações de rede
- **Credenciais em massa:** senhas hash de todos os dispositivos gerenciados podem ser extraídas
- **Movimentação lateral:** uso das credenciais roubadas para acessar dispositivos FortiGate individuais
**Produtos Afetados:**
| Vendor | Produto | Versão Afetada | Versão com Fix |
|--------|---------|----------------|----------------|
| Fortinet | FortiManager 7.6 | 7.6.0 | 7.6.1+ |
| Fortinet | FortiManager 7.4 | 7.4.0 - 7.4.4 | 7.4.5+ |
| Fortinet | FortiManager 7.2 | 7.2.0 - 7.2.7 | 7.2.8+ |
| Fortinet | FortiManager 7.0 | 7.0.0 - 7.0.12 | 7.0.13+ |
| Fortinet | FortiManager 6.4 | 6.4.0 - 6.4.14 | 6.4.15+ |
## Mitigação
**Patch oficial:**
- Advisory: [Fortinet PSIRT Advisory FG-IR-24-423](https://www.fortiguard.com/psirt/FG-IR-24-423)
- Patches disponibilizados em 23 de outubro de 2024
**Mitigações temporárias:**
- Restringir acesso ao serviço FGFM por lista de IPs permitidos
- Configurar `set fgfm-deny-unknown enable` para impedir registro de dispositivos não autorizados
- Adicionar políticas de IP local para limitar os dispositivos que podem se conectar
- Monitorar logs para registros de dispositivos não autorizados no FortiManager
- Rotacionar credenciais de todos os dispositivos FortiGate gerenciados após aplicação do patch
## Relevância LATAM/Brasil
O [[_fortinet|Fortinet]] FortiManager é amplamente implantado em organizações brasileiras dos setores [[financial]], [[government]] e [[critical-infrastructure|infraestrutura crítica]]. A Fortinet possui uma das maiores bases instaladas de firewalls no Brasil, e muitas organizações utilizam o FortiManager para gerenciamento centralizado. O comprometimento do FortiManager pode resultar em acesso a toda a infraestrutura de segurança de rede, tornando esta vulnerabilidade particularmente crítica para o contexto brasileiro.
## Indicadores de Comprometimento
> [!ioc]- IOCs - CVE-2024-47575 FortiJump / UNC5820 (TLP:GREEN)
> Fonte: Mandiant / Google Cloud Threat Intelligence, outubro 2024.
>
> **IPs Maliciosos (UNC5820)**
> - `45.32.41.202`
> - `104.238.141.143`
> - `158.247.199.37`
> - `45.32.63.2`
> - `80.66.196.199`
> - `198.199.122.22`
> - `142.93.177.233`
> - `195.85.114.78`
>
> **Porta de Exploração**
> - TCP 541 / TCP 542 (protocolo FGFM - FortiGate to FortiManager)
>
> **Artefatos no Host (Behavioral IoCs)**
> - Registros de dispositivo "localhost" ou "FMG-VM\d+" não autorizados no FortiManager
> - Mensagem de log: `Unregistered device localhost add succeeded`
> - Arquivos de staging em `/tmp/.tm`, `/var/tmp/.tm`, `/tmp/.tm*`
> - Processos filhos de `fgfmsd` ou `fdssrvd` (bash, sh, python, wget, curl, nc, perl)
> - Exfiltração de configurações de FortiGate gerenciados (arquivos comprimidos em /tmp/)
> - Conexoes de saida anômalas do FortiManager para IPs externos via porta 443 (bytes_out > 1MB)
>
> **Fonte:** [Mandiant - FortiJump Analysis](https://cloud.google.com/blog/topics/threat-intelligence/)
## Referências
- [NVD - CVE-2024-47575](https://nvd.nist.gov/vuln/detail/CVE-2024-47575)
- [Fortinet PSIRT Advisory](https://www.fortiguard.com/psirt/FG-IR-24-423)
- [Bishop Fox - FortiJump Deep Dive](https://bishopfox.com/blog/a-look-at-fortijump-CVE-2024-47575)
- [Rapid7 - FortiManager Zero-Day](https://www.rapid7.com/blog/post/2024/10/23/etr-fortinet-fortimanager-CVE-2024-47575-exploited-in-zero-day-attacks/)
- [CISA KEV Catalog](https://www.cisa.gov/known-exploited-vulnerabilities-catalog)
## Notas Relacionadas
**CVEs relacionados:** [[cve-2024-23113|CVE-2024-23113]] · [[cve-2024-21762|CVE-2024-21762]]
**Atores explorando:** [[unc5820]]
**Campanhas:** [[FortiJump Campaign]]
**TTPs relacionadas:** [[t1190-exploit-public-facing-application|T1190 - Exploit Public-Facing Application]] · [[t1078-valid-accounts|T1078 - Valid Accounts]] · [[t1059-command-scripting-interpreter|T1059 - Command and Scripting Interpreter]]
**Setores em risco:** [[financial]] · [[government]] · [[critical-infrastructure|infraestrutura crítica]]
---
## Detecção e Resposta
> [!warning] Aviso sobre as regras abaixo
> As regras e consultas a seguir são **exemplos e pontos de partida**. Devem ser revisadas,
> testadas e adaptadas ao seu ambiente específico antes de serem implantadas em produção.
> Falsos positivos e negativos são esperados - tuning contínuo é necessário. Valide sempre
> contra sua telemetria antes de ativar alertas.
### Splunk SPL
Detecção de conexões inbound suspeitas na porta FGFM (TCP 541) e registro de dispositivos não autorizados:
```spl
index=fortinet_logs source_type=fortiguard_logs
(msg="Unregistered device localhost add succeeded"
OR msg="Edited device settings"
OR operation="Add device"
OR operation="Modify device")
| stats count, values(device), values(adom), values(user) by operation
| where count > 3 OR device="localhost"
```
Correlação entre registro suspeito, criação de arquivo de staging e exfiltração:
```spl
(index=fortinet_logs "device add succeeded")
OR (index=os_logs file_path IN ("/tmp/.tm", "/var/tmp/.tm", "/tmp/.tm*") action=created)
OR (index=network_traffic dest_port=443
dest_ip NOT IN (trusted_destinations)
src_ip=<fortimanager_ip> bytes_out > 1000000)
| transaction src_ip, dest_ip, maxpause=5m
| where eventcount >= 2
```
Fonte de dados requerida: FortiManager syslog (event logs), logs de rede (NetFlow/firewall), e logs do sistema operacional do host FortiManager.
### Microsoft Sentinel (KQL)
Correlação de registro não autorizado de dispositivo seguido de exfiltração de dados:
```kql
let suspicious_device_registrations =
Syslog
| where SyslogMessage contains "Unregistered device" and SyslogMessage contains "add succeeded"
| where TimeGenerated > ago(24h)
| project RegistrationTime = TimeGenerated, Computer,
Device = extract(@"device=""([^""]+)""", 1, SyslogMessage)
| where Device == "localhost" or Device matches regex @"FMG-VM\d+";
let outbound_exfiltration =
NetworkConnection
| where TimeGenerated > ago(24h)
| where DestinationPort == 443 or DestinationPort == 80
| where BytesSent > 1000000
| project ExfiltrationTime = TimeGenerated, Computer, DestinationIp, BytesSent;
suspicious_device_registrations
| join kind=inner outbound_exfiltration on Computer
| where ExfiltrationTime - RegistrationTime between (0s .. 600s)
| project Computer, Device, DestinationIp, BytesSent,
TimeDifference = ExfiltrationTime - RegistrationTime
| sort by BytesSent desc
```
Detecção de conexões inbound à porta 541 a partir de IPs maliciosos conhecidos (IoCs UNC5820):
```kql
let malicious_ips = dynamic(["45.32.41.202", "104.238.141.143", "158.247.199.37",
"45.32.63.2", "80.66.196.199", "198.199.122.22", "142.93.177.233", "195.85.114.78"]);
NetworkConnection
| where TimeGenerated > ago(7d)
| where DestinationPort in (541, 542) or LocalPort in (541, 542)
| where SourceIp in (malicious_ips) or DestinationIp in (malicious_ips)
| summarize ConnectionCount = count(),
DistinctDestinations = dcount(DestinationIp),
FirstConnection = min(TimeGenerated),
LastConnection = max(TimeGenerated)
by SourceIp, DestinationIp, Direction
| where ConnectionCount > 5
| sort by ConnectionCount desc
```
Tabela(s): `Syslog`, `NetworkConnection`, `DeviceFileEvents`
### Sigma Rule
```yaml
title: Detect CVE-2024-47575 FortiJump Exploitation Attempt
id: a3f72c1d-e849-4b2a-9c0e-f71d3a456789
status: experimental
description: >
Detecta tentativas de exploração de CVE-2024-47575 (FortiJump) - autenticação ausente no
FortiManager via protocolo FGFM. Identifica registro de dispositivo não autorizado e
conexões suspeitas na porta TCP 541. Mapeado para T1190 Initial Access.
references:
- [[t1190-exploit-public-facing-application]]
- https://www.fortiguard.com/psirt/FG-IR-24-423
- https://cloud.google.com/blog/topics/threat-intelligence/fortimanager-zero-day-exploitation-CVE-2024-47575
logsource:
category: network_connection
product: firewall
detection:
selection_port:
destination_port: 541
filter_authorized:
source_ip|cidr:
- '10.0.0.0/8'
- '172.16.0.0/12'
- '192.168.0.0/16'
condition: selection_port and not filter_authorized
falsepositives:
- FortiGate legítimos registrados no FortiManager a partir de redes internas
- Scanners de vulnerabilidade autorizados
level: high
tags:
- attack.initial_access
- attack.t1190
```
### EDR
#### CrowdStrike Falcon
Custom IOA Rule (Behavioral):
Monitorar processos filhos criados pelo `fgfmsd` ou `fdssrvd`. O daemon fgfmsd não deve, em condições normais, gerar processos de shell. Configurar IOA para alertar quando `bash`, `sh`, `python`, `perl`, `wget` ou `curl` forem iniciados com `fgfmsd` como processo pai. Adicionalmente, monitorar criação de arquivos comprimidos em `/tmp/` ou `/var/tmp/` a partir de processos do FortiManager.
Threat Graph Query (Falcon Data Replicator):
```
event_simpleName=ProcessRollup2
| where ParentBaseFileName IN ("fgfmsd", "fdssrvd")
| where FileName IN ("bash", "sh", "python", "python3", "wget", "curl", "nc", "perl")
| table timestamp, ComputerName, ParentBaseFileName, FileName, CommandLine
```
#### SentinelOne
Deep Visibility Query:
```
EndpointName Contains "fortimanager"
AND EventType = "Process Creation"
AND ParentProcessName Contains "fgfmd"
AND TargetProcessName In ("bash","sh","wget","curl","nc","python")
```
#### Microsoft Defender for Endpoint (MDE)
Advanced Hunting (KQL):
```kql
DeviceProcessEvents
| where InitiatingProcessFileName =~ "fgfmsd"
| where FileName has_any ("bash", "sh", "nc", "wget", "curl", "python", "perl")
| project Timestamp, DeviceName, InitiatingProcessFileName,
FileName, ProcessCommandLine, AccountName
| where Timestamp > ago(7d)
```
### Firewall / Network
#### Palo Alto Networks (PAN-OS)
Criar Security Policy para inspecionar tráfego inbound destinado à porta TCP 541 de zonas não confiáveis em direção à zona onde o FortiManager está hospedado. Configurar regra de deny com logging para qualquer tráfego externo na porta 541 que não seja originado de IPs de FortiGate autorizados. Habilitar Threat Prevention Profile nas regras de acesso administrativo ao FortiManager para detectar tentativas de protocol anomaly no FGFM.
App-ID / Threat ID relevante: Verificar Threat ID no catálogo de ameaças PAN-OS para "fortinet-fortimanager" - a Palo Alto atualiza assinaturas de vulnerabilidades Fortinet via content updates.
#### Fortinet FortiGate
IPS Signature: **FortiManager.fgfmsd.Authentication.Bypass** (Signature ID: **56902**)
Esta assinatura detecta requisições maliciosas ao protocolo FGFM que tentam bypassar a autenticação no FortiManager. Para verificar se a assinatura está carregada e ativa no FortiGate, executar via CLI:
```
diagnose ips signatures | grep -i fortiman
```
Recomendação: configurar a ação da assinatura como `block` com `log-packet enable` para captura forense. Habilitar a assinatura em todos os sensores IPS aplicados a políticas de tráfego em direção ao FortiManager. Manter FortiGuard IPS database atualizado automaticamente para receber variantes futuras.