# Playbook - Resposta a Exploração de FortiOS Legacy (CVE-2022-40684)
> [!critical] CISA KEV - Bypass de Autenticação Ativo
> CVE-2022-40684 (CVSS 9.8) é um authentication bypass no FortiOS, FortiProxy e FortiSwitchManager que permite a um atacante remoto não autenticado obter acesso administrativo via requisições HTTP crafted. Mesmo sendo de 2022, exploração ativa continua em 2025-2026 contra dispositivos não patcheados.
> [!warning] Aviso de Aplicabilidade
> Este playbook é um **ponto de partida** baseado em boas práticas públicas. Deve ser revisado, testado e adaptado ao ambiente específico da organização antes de uso em produção. Não substitui um plano formal de Resposta a Incidentes (IRP). Consulte sua equipe de segurança antes de executar qualquer ação de contenção em produção.
## Visão Geral
A vulnerabilidade [[cve-2022-40684|CVE-2022-40684]] no [[_fortinet|FortiOS]] permite que um atacante remoto não autenticado acesse a interface administrativa do firewall via requisições HTTP especialmente construídas que exploram uma falha no mecanismo de autenticação. Com acesso administrativo, o adversário pode modificar regras de firewall, criar contas VPN, exfiltrar configurações com credenciais, e usar o dispositivo como ponto de pivot para a rede interna.
O grupo [[unc5820]] e diversos outros atores de ameaça continuam explorando esta vulnerabilidade ativamente, direcionando scanners automatizados contra dispositivos Fortinet expostos na internet. A persistência desta exploração, anos após a públicação do patch, é explicada pelo volume massivo de dispositivos Fortinet em operação globalmente e pela resistência de muitas organizações em atualizar firewalls em produção.
O vetor de ataque é trivial: uma requisição PUT para `/api/v2/cmdb/system/admin` com header `Forwarded: for="[127.0.0.1]:8000"` permite bypass completo da autenticação. Exploits públicos estão amplamente disponíveis.
> [!latam] Impacto Regional
> A Fortinet é o fabricante de NGFW com **maior market share no Brasil**, especialmente em empresas de médio porte, órgãos governamentais estaduais e municipais, e prestadores de serviços gerenciados (MSSPs). A combinação de ampla adoção com ciclos lentos de patching torna o Brasil um dos países mais expostos a esta vulnerabilidade. Em 2025, o CERT.br reportou múltiplos incidentes envolvendo FortiGate comprometidos como ponto de entrada para ransomware.
---
## Fluxo de Resposta
```mermaid
graph TB
D["Alerta: Exploração<br/>FortiOS Detectada"] --> T["Triagem:<br/>Confirmar CVE e Versão"]
T --> C1["Contenção:<br/>Bloquear Acesso Admin"]
C1 --> C2["Revogar Credenciais<br/>e Contas Criadas"]
C2 --> I["Investigação:<br/>Logs + Config Audit"]
I --> E["Erradicação:<br/>Patch + Config Reset"]
E --> R["Recuperação:<br/>Hardening FortiOS"]
R --> L["Lições:<br/>Gestão de Patches"]
```
**Legenda:** [[t1190-exploit-public-facing-application|T1190]] - [[t1078-valid-accounts|T1078]] - [[cve-2022-40684|CVE-2022-40684]]
---
## Indicadores de Acionamento
Este playbook deve ser iniciado quando:
- [ ] Scan de vulnerabilidades detecta FortiOS em versão vulnerável (< 7.2.2, < 7.0.7, < 6.4.10)
- [ ] Logs do FortiGate mostram criação de conta administrativa não autorizada
- [ ] IDS/IPS detecta requisição PUT com header `Forwarded: for="[127.0.0.1]"`
- [ ] Alerta de threat intel sobre scanning massivo de FortiGate
- [ ] Conta VPN desconhecida identificada no FortiGate
- [ ] Notificação do CERT.br ou CTIR Gov sobre campanha ativa
---
## Fase 1 - Detecção
> [!warning] Aviso sobre as queries abaixo
> FortiOS tem logging próprio que deve ser encaminhado para SIEM via syslog. A qualidade da detecção depende de ter logging habilitado para eventos de administração, VPN e firewall. Verificar que FortiAnalyzer ou syslog forwarding está configurado.
### Detecção de Exploração Ativa
#### Microsoft Sentinel (KQL)
```kql
// Detectar requisições de exploit CVE-2022-40684
CommonSecurityLog
| where DeviceVendor == "Fortinet"
| where RequestURL has "/api/v2/cmdb/system/admin"
| where RequestMethod == "PUT"
| project TimeGenerated, SourceIP, DestinationIP, RequestURL,
RequestMethod, Activity
| order by TimeGenerated desc
```
```kql
// Detectar criação de contas administrativas no FortiGate
Syslog
| where Computer has "forti" or ProcessName has "forti"
| where SyslogMessage has_any (
"super_admin", "admin added", "user added",
"sshkey", "api-key", "trusthost")
| where SyslogMessage has_any ("set", "create", "edit")
| project TimeGenerated, Computer, SyslogMessage
| order by TimeGenerated desc
```
Tabela(s): `CommonSecurityLog`, `Syslog` (FortiGate syslog)
#### Splunk SPL
```spl
index=fortinet sourcetype=fgt_event
(action="login" status="success")
(ui="https" OR ui="ssh")
| stats count by src_ip, user, action, ui
| where count > 5
| sort - count
```
```spl
index=fortinet sourcetype=fgt_event subtype=system
("super_admin" OR "admin" OR "api-key" OR "sshkey")
("added" OR "created" OR "changed")
| table _time, devname, user, msg
| sort - _time
```
### Detecção via IDS/IPS
```kql
// Signature de exploit em IDS (Suricata/Snort)
CommonSecurityLog
| where Activity has_any ("CVE-2022-40684", "FortiOS Auth Bypass")
| project TimeGenerated, SourceIP, DestinationIP, Activity,
DeviceAction
| order by TimeGenerated desc
```
### Detecção via WAF/Proxy
```kql
// Requisições com header Forwarded malicioso
AzureDiagnostics
| where ResourceType == "APPLICATIONGATEWAYS"
| where httpMethod_s == "PUT"
| where requestUri_s has "/api/v2/cmdb"
| where details_message_s has "Forwarded" and details_message_s has "127.0.0.1"
| project TimeGenerated, clientIp_s, requestUri_s, httpMethod_s
```
---
## Fase 2 - Triagem e Investigação
### Perguntas-chave a responder
- [ ] Qual a versão exata do FortiOS? É vulnerável?
- [ ] A interface administrativa está exposta à internet?
- [ ] Há contas administrativas criadas recentemente que não são reconhecidas?
- [ ] Há chaves SSH ou API keys novas na configuração?
- [ ] As regras de firewall foram modificadas recentemente?
- [ ] Há túneis VPN novos ou conexões VPN de IPs desconhecidos?
- [ ] O FortiGate foi usado como pivot para acessar a rede interna?
### Auditoria de configuração do FortiGate
```bash
# Comandos para executar no FortiGate CLI (via console serial ou SSH autorizado)
# Listar todos os administradores
get system admin
# Verificar chaves SSH
config system admin
edit <admin_name>
show ssh-public-key
end
# Verificar sessões ativas
get system session list | grep -i admin
# Verificar VPN tunnels
get vpn ipsec tunnel summary
get vpn ssl monitor
# Verificar alterações recentes na configuração
diagnose debug config-error-log read
# Exportar configuração completa para análise offline
execute backup full-config tftp <servidor_tftp> <nome_arquivo>
```
### Queries de investigação - Atividade pós-exploração
```kql
// Atividade administrativa pós-exploração no FortiGate
Syslog
| where Computer has "forti"
| where SyslogMessage has_any (
"config firewall policy", "config vpn", "config router",
"config user local", "config system interface")
| project TimeGenerated, Computer, SyslogMessage
| order by TimeGenerated asc
```
---
## Fase 3 - Contenção
> [!danger] Ação com Impacto Potencial
> Restringir acesso administrativo ao FortiGate pode impactar operações de gerenciamento. Coordenar com a equipe de infraestrutura de rede. NUNCA desligar o firewall sem plano de failover - isso pode causar interrupção total de conectividade.
### Contenção imediata (primeiros 30 min)
- [ ] Restringir acesso à interface administrativa a IPs de gerenciamento autorizados (trusted hosts)
- [ ] Desabilitar acesso HTTPS/SSH na interface WAN imediatamente
- [ ] Revogar todas as sessões administrativas ativas
- [ ] Remover contas administrativas criadas pelo adversário
- [ ] Remover chaves SSH e API keys não autorizadas
- [ ] Bloquear IPs de origem do ataque nas regras de firewall
### Contenção de longo prazo
- [ ] Aplicar patch para FortiOS 7.2.2+ ou 7.0.7+ ou 6.4.10+
- [ ] Implementar [[m1030-network-segmentation|M1030 - Network Segmentation]] para interface de gerenciamento
- [ ] Habilitar MFA para acesso administrativo (FortiToken)
- [ ] Configurar SIEM forwarding para todos os eventos de administração
---
## Fase 4 - Erradicação
- [ ] Atualizar FortiOS para a versão mais recente disponível
- [ ] Resetar TODAS as credenciais administrativas (incluindo root)
- [ ] Regenerar certificados SSL do FortiGate
- [ ] Auditar e restaurar configuração de firewall a partir de backup pré-incidente
- [ ] Verificar se regras de NAT/port-forwarding foram adicionadas
- [ ] Verificar todas as contas VPN (SSL-VPN e IPSec)
- [ ] Remover qualquer script ou configuração de automação inseridos pelo adversário
- [ ] Verificar se credenciais do FortiGate foram usadas em outros sistemas (password reuse)
---
## Fase 5 - Recuperação
- [ ] Validar que FortiOS está na versão patcheada
- [ ] Confirmar que interface administrativa não está exposta na WAN
- [ ] Testar todas as regras de firewall para garantir funcionamento correto
- [ ] Monitorar intensivamente por 72h: logins admin, mudanças de config, VPN connections
- [ ] Habilitar FortiGuard IPS com signatures atualizadas
- [ ] Documentar todas as mudanças feitas durante o incidente
---
## Automação SOAR
### Microsoft Sentinel Automation Rules
1. Trigger: detecção de requisição PUT para `/api/v2/cmdb/system/admin` com header Forwarded
2. Auto-consultar inventário de FortiGate para versão e exposure
3. Se vulnerável e exposto: criar incidente P1, notificar SOC e equipe de rede
4. Auto-bloquear IP de origem no Azure Firewall/NSG
### Splunk SOAR
Playbook: `FortiOS Auth Bypass Response`
1. Trigger: alerta de IDS com signature CVE-2022-40684
2. Consultar CMDB para identificar FortiGate afetado
3. Via API FortiGate: listar admins, verificar sessões ativas
4. Se conta suspeita encontrada: desabilitar e criar ticket P1
### Palo Alto Cortex XSOAR
Playbook: `Fortinet Authentication Bypass`
1. Receber alerta de IDS/WAF
2. Enriquecer IP de origem (reputação, geolocalização)
3. Consultar FortiGate via API para auditoria rápida
4. Auto-remediar: restringir trusted hosts, revogar sessões
---
## Referência de Versões Vulneráveis
| Produto | Versões Vulneráveis | Versão Corrigida |
|---------|--------------------|-----------------:|
| FortiOS | 7.2.0 - 7.2.1 | 7.2.2+ |
| FortiOS | 7.0.0 - 7.0.6 | 7.0.7+ |
| FortiOS | 6.4.0 - 6.4.9 | 6.4.10+ |
| FortiProxy | 7.2.0 | 7.2.1+ |
| FortiProxy | 7.0.0 - 7.0.6 | 7.0.7+ |
| FortiSwitchManager | 7.2.0 | 7.2.1+ |
| FortiSwitchManager | 7.0.0 | 7.0.1+ |
---
## Lições Aprendidas
> [!note] Preencher após execução real
> - O que funcionou conforme esperado?
> - O que falhou ou precisou de adaptação?
> - Quais regras de detecção geraram falsos positivos?
> - O que deve ser ajustado neste playbook?
---
## Notas Relacionadas
- [[cve-2022-40684|CVE-2022-40684]] - CVE principal (FortiOS auth bypass, CVSS 9.8)
- [[t1190-exploit-public-facing-application|T1190 - Exploit Public-Facing Application]]
- [[t1078-valid-accounts|T1078 - Valid Accounts]] - Contas criadas pelo adversário
- [[t1133-external-remote-services|T1133 - External Remote Services]] - VPN como persistência
- [[unc5820]] - Threat actor associado a exploração de Fortinet
- [[_fortinet|Fortinet]] - Perfil do vendor
- [[m1051-update-software|M1051 - Update Software]] - Mitigação primária
- [[m1030-network-segmentation|M1030 - Network Segmentation]] - Proteger interface de gerenciamento
- [[m1032-multi-factor-authentication|M1032 - Multi-factor Authentication]] - MFA para admin
- [[ir-fortimanager-exploitation]] - Playbook relacionado (FortiManager)
- [[ir-pan-os-exploitation]] - Playbook similar (Palo Alto exploitation)
- [[hunting-initial-access-brokers]] - Hunting de acesso inicial via dispositivos de rede