> [!warning] Aviso Importante > Ataques de supply chain representam o cenário de pior caso em resposta a incidentes. Um único fornecedor comprometido pode afetar simultaneamente milhares de organizacoes. Este playbook tem foco em vetores de ataque com relevância específica para o Brasil e LATAM - eScan AV, pacotes npm/PyPI e dependências de containers. Requer escalonamento imediato para nivel executivo e possívelmente CERT.br. --- ## Visão Geral Um ataque de cadeia de suprimentos ocorre quando o atacante compromete um componente do software utilizado por uma organização - sejá uma biblioteca open source, um atualizador de produto, um container base, ou um fornecedor de segurança - para entregar código malicioso via **canal de distribuição legitimo e confiavel**. **Casos com relevância direta para LATAM/Brasil em 2024-2026:** - **eScan Antivirus Compromise** (2024) - O mecanismo de atualização do eScan AV, amplamente usado em empresas brasileiras e indianas, foi comprometido pelo grupo [[g0032-lazarus-group]] (GoldFactory). Atualizacoes legitimas entregaram o backdoor GuptiMiner. Afetou empresas brasileiras que usavam eScan corporativo. - **[[cve-2026-33634|CVE-2026-33634]] - Trivy Container Scanner** (2026) - Vulnerabilidade critica no Trivy, ferramenta de scan de containers amplamente usada em pipelines CI/CD brasileiros. Permitia RCE ao escanear imagens maliciosas. Afetou pipelines DevSecOps de empresas brasileiras de tecnologia e fintech. - **Trust Wallet Supply Chain** (2024) - Comprometimento de dependencia JavaScript na carteira Trust Wallet afetou usuarios de criptomoedas no Brasil, um dos maiores mercados crypto do mundo. - **XZ Utils / CVE-2024-3094** (2024) - Backdoor em biblioteca de compressao usada em distribuicoes Linux. Afetou ambientes on-premise e cloud no Brasil. - **Pacotes npm/PyPI Maliciosos** - Campanha continua com foco em desenvolvedores brasileiros. Pacotes com typosquatting de bibliotecas populares (ex: `requests-brasil`, `fastapi-br`) que roubam credenciais de AWS/Azure de pipelines CI/CD. **Por que o LATAM e particularmente vulnerável:** - Alta dependencia de softwares de terceiros com poucos controles de verificação de integridade - Menor adocao de SBOM (Software Bill of Materials) - Pipelines CI/CD frequentemente sem verificação de hash de dependencias - Uso de mirrors nao oficiais de repositorios (npm, PyPI, Maven) **Notas relacionadas:** [[g0032-lazarus-group]] - [[g0016-apt29]] - [[cve-2026-33634|CVE-2026-33634]] - [[t1195-002-supply-chain-compromise|T1195.002]] - [[t1195-001-compromise-software-dependencies|T1195.001]] - [[technology|tecnologia]] - [[financial|financeiro]] --- ## Vetores de Ataque Supply Chain LATAM ```mermaid graph TB A["🏗️ Fornecedor de Software<br/>Comprometido"] --> B1["📦 Atualização Trojanizada<br/>eScan, CCleaner style"] A --> B2["📚 Dependencia Maliciosa<br/>npm / PyPI / Maven"] A --> B3["🐳 Container Base Comprometido<br/>Docker Hub / Registry"] A --> B4["🔧 Ferramenta de Dev<br/>Trivy, IDE plugin, SDK"] B1 --> C["🎯 Organizacoes LATAM<br/>Recebem Payload Legitimo"] B2 --> C B3 --> C B4 --> C C --> D["💻 Execução Silenciosa<br/>Código assinado confiavel"] D --> E["📤 Exfiltração de Dados<br/>Credenciais / Código-fonte / PII"] D --> F["🔒 Ransomware<br/>Ou backdoor persistente"] style A fill:#9933ff,color:#fff style C fill:#ff6600,color:#fff style E fill:#cc0000,color:#fff style F fill:#cc0000,color:#fff ``` --- ## Fluxo de Resposta ao Incidente ```mermaid flowchart TD A([" Alerta: Software Confiavel<br/>com Comportamento Anomalo"]) --> B{Fonte do<br/>Comprometimento} B -->|Fornecedor notificou| C[Verificar Versoes Instaladas<br/>em toda a Organização] B -->|Detecção interna / hunting| D[Isolar Software Suspeito<br/>em Sistemas Criticos] B -->|CERT.br emitiu advisory| E[Avaliar Exposicao:<br/>usamos este software?] B -->|Pipeline CI/CD anomalo| F[Pausar Pipeline<br/>Investigar Build Logs] C --> G[Inventario via CMDB<br/>e Velociraptor] D --> G E --> G F --> G G --> H{Backdoor ou Malware<br/>Ativado?} H -->|Sim - atividade C2 detectada| I[INCIDENTE P1<br/>Resposta a Intrusão Ativa] H -->|Nao - apenas instalado| J[Remoção Preventiva<br/>e Monitoramento 30 dias] I --> K[Forense Completa<br/>e Notificação CERT.br] J --> L[Instalar Versao Limpa<br/>Verificar Hash SHA256] K --> M[Hunting Retroativo<br/>90 dias de Logs] L --> M M --> N{Evidencia de<br/>Exfiltração?} N -->|Sim| O[Avaliar LGPD<br/>Notificar ANPD] N -->|Nao| P[Monitoramento 30 dias] O --> P P --> Q([" Incidente Encerrado"]) style A fill:#9933ff,color:#fff style I fill:#ff4444,color:#fff style Q fill:#00aa44,color:#fff style K fill:#ff9900,color:#000 ``` --- ## Cenário 1 - eScan AV Comprometido (GuptiMiner) ### Contexto O **[[escan-compromise]]** foi descoberto em 2024. O [[g0032-lazarus-group]] (cluster GoldFactory) comprometeu o mecanismo de atualização do eScan AV, entregando o backdoor **GuptiMiner** junto com atualizacoes de antivirus legitimas. O eScan e amplamente utilizado em pequenas e medias empresas brasileiras e em redes corporativas em setores como contabilidade, juridico e saúde. ### Identificar se Voce Foi Afetado ```powershell # Verificar versao do eScan instalada Get-ItemProperty "HKLM:\SOFTWARE\eScan" | Select-Object DisplayVersion, InstallDaté # Versoes vulneraveis (documentadas): < 24.0.x (válidar com eScan advisory oficial) # Verificar processos suspeitos relacionados ao GuptiMiner Get-Process | Where-Object { $_.Name -match "eScanSetup|MicroWorld" } ``` ### IOCs do GuptiMiner (Documentados Publicamente) ``` # Processo suspeito launcado pelo atualizador eScan # GuptiMiner cria backdoor persistente e minera criptomoeda como cover # Verificar: tarefas agendadas criadas pelo processo de atualização eScan # Hash SHA256 de amostras publicas (válidar no VirusTotal antes de usar) # Sempre verificar no MISP para IOCs atualizados ``` --- ## Cenario 2 - CVE-2026-33634 (Trivy RCE) ### Contexto **[[cve-2026-33634|CVE-2026-33634]]** afeta o Trivy, o scanner de vulnerabilidades de containers mais popular do mundo, amplamente adotado em pipelines DevSecOps de empresas brasileiras de tecnologia e fintechs. A vulnerabilidade permite Remote Code Execution ao escanear uma imagem de container especialmente criada. **Impacto específico no Brasil:** Muitas fintechs brasileiras (reguladas pelo BACEN) usam Trivy em pipelines CI/CD para cumprir requisitos de segurança. O comprometimento de um pipeline de build pode resultar em código malicioso sendo implantado em producao. ### Verificar Exposicao ```bash # Verificar versao do Trivy instalada trivy --version # Versoes afetadas: < [versao do patch] - verificar NVD para versao exata # Versao segura: [versao patcheada] - verificar advisory oficial Aqua Security # Verificar se Trivy roda como parte de pipeline CI/CD cat .github/workflows/*.yml | grep -i trivy cat .gitlab-ci.yml | grep -i trivy cat Jenkinsfile | grep -i trivy ``` ### Atualização de Emergencia ```bash # Atualizar Trivy via binario direto (verificar hash) wget https://github.com/aquasecurity/trivy/releases/download/v[VERSAO]/trivy_[VERSAO]_Linux-64bit.tar.gz sha256sum -c [ARQUIVO_HASH_OFICIAL] # Via container (preferivel em CI/CD) docker pull aquasec/trivy:[VERSAO_SEGURA] # Verificar digest SHA256 do container oficial antes de usar # Via apt (Debian/Ubuntu) sudo apt-get updaté && sudo apt-get install trivy=[VERSAO_SEGURA] ``` --- ## Cenário 3 - Pacotes npm/PyPI Maliciosos ### Identificar Pacotes Maliciosos em Projetos ```bash # Auditoria de dependencias npm npm audit npm audit --audit-level=critical # Verificar pacotes com typosquatting em projetos brasileiros # Padroes comuns: requests-brasil, fastapi-br, django-br, boto3-br pip list | grep -E "(brasil|latam|br$)" # Escanear com socket.dev CLI npx @socket.dev/cli check # Verificar integridade de pacotes instalados pip hash requirements.txt ``` ### SBOM - Inventario de Dependências ```bash # Gerar SBOM (Software Bill of Materials) com Trivy (versao patcheada) trivy fs --format cyclonedx --output sbom.json . # Gerar SBOM com syft syft . -o cyclonedx-json > sbom.json # Verificar SBOM contra lista de pacotes comprometidos conhecidos grype sbom:./sbom.json ``` --- ## Avaliacao de Exposicao ### Passo 1 - Inventario de Software Afetado ```bash # Verificar todos os sistemas com eScan via Velociraptor velociraptor query "SELECT * FROM Artifact.Windows.Sys.Programs() WHERE Name LIKE '%eScan%'" # Verificar Trivy em containers e pipelines find / -name "trivy" -type f 2>/dev/null docker images | grep trivy # Verificar versoes de Trivy em pipelines GitHub Actions grep -r "aquasec/trivy" .github/workflows/ --include="*.yml" ``` ### Passo 2 - Verificar Ativacao do Compromisso ```spl // Splunk - eScan processo gerando filhos suspeitos index=sysmon EventCode=1 ParentImage="*\\eScanSetup*" OR ParentImage="*\\MWOScan*" Image IN ("*\\cmd.exe", "*\\powershell.exe", "*\\wscript.exe", "*\\mshta.exe") | table _time, Computer, User, Image, ParentImage, CommandLine ``` --- ## Ferramentas Recomendadas ### Detecção e Hunting | Ferramenta | Uso | Detalhe | |------------|-----|---------| | **Velociraptor** | Hunting em escala - inventario de software afetado | `velociraptor artifacts collect Generic.Applications.Inventory` | | **Trivy** (versao patcheada) | Scan de vulnerabilidades - container, filesystem, SBOM | `trivy fs --scanners vuln,secret .` | | **syft** | Gerar SBOM de containers e repositorios | `syft IMAGE_NAME -o cyclonedx-json` | | **grype** | Scan de vulnerabilidades contra SBOM | `grype sbom:./sbom.json` | | **socket.dev** | Detectar pacotes npm/PyPI maliciosos | `npx @socket.dev/cli check` | | **Snyk** | Análise de dependências open source | `snyk test` | ### Verificação de Integridade | Ferramenta | Uso | |------------|-----| | **Sigcheck** (Sysinternals) | Verificar assinatura de executaveis e DLLs | `sigcheck.exe -u -e [pasta]` | | **HashCheck** | Verificar SHA256 de instaladores | `certutil -hashfile [arquivo] SHA256` | | **OSSF Scorecard** | Avaliar postura de segurança de projetos open source | `scorecard --repo github.com/projeto` | --- ## Checklist de Contencao ### Resposta Imediata (T+0 a T+2h) - [ ] Identificar quais versoes afetadas estao instaladas via CMDB/inventario/Velociraptor - [ ] **Pausar pipelines CI/CD** que usam o software comprometido imediatamente - [ ] Verificar se o backdoor foi ativado: buscar IOCs de C2 nos logs DNS, proxy, firewall - [ ] Isolar sistemas criticos onde o software comprometido esta presente (especialmente servidores) - [ ] **NAO desinstalar** antes da coleta forense - preservar evidencias - [ ] Capturar imagem de memoria RAM de sistemas criticos - [ ] Capturar logs de rede dos ultimos 90 dias para análise retroativa - [ ] Bloquear dominios/IPs de C2 conhecidos no firewall e DNS - [ ] Notificar CISO e acionar IR team completo - [ ] Contatar fornecedor comprometido para obter IOCs e orientacoes técnicas ### Se Backdoor Ativado (P1) - [ ] Escalar para IR P1 - comprometimento ativo confirmado - [ ] Acionar empresa de forense externa (Mandiant/CrowdStrike/KPMG) se necessário - [ ] Isolamento de rede completo dos sistemas afetados - [ ] Notificar CERT.br: `[email protected]` com IOCs identificados - [ ] Avaliar LGPD: dados pessoais foram exfiltrados? Ver [[ir-lgpd-breach-notification]] --- ## Hunting Retroativo (90 dias) ### Splunk - Software Comprometido Gerando Filhos Suspeitos ```spl index=sysmon EventCode=1 ParentImage IN ("*\\eScanSetup.exe*", "*\\trivy*", "*\\node.exe*", "*\\python.exe*") Image IN ("*\\cmd.exe", "*\\powershell.exe", "*\\wscript.exe", "*\\mshta.exe", "*\\regsvr32.exe") | stats count by Computer, User, Image, ParentImage, CommandLine, _time | sort -_time ``` ### Splunk - DNS para Dominios C2 Suspeitos (Software de Segurança) ```spl index=dns | where match(query, "^[a-z0-9]{16,}\.(com|net|xyz|top|info)quot;) | stats count by src_ip, query | where count BETWEEN 3 AND 20 | sort -count ``` ### Splunk - Exfiltração a Partir de Processo de Scanner/AV ```spl index=proxy src_category IN ("endpoint_security", "developer_tools", "av_scanner") | where bytes_out > 1048576 | stats sum(bytes_out) AS total_bytes_out by src_ip, dest_ip, app | where total_bytes_out > 10485760 | sort -total_bytes_out ``` ### KQL - Microsoft Sentinel - Pipeline CI/CD com Acesso Externo Anomalo ```kql DeviceNetworkEvents | where InitiatingProcessFileName in~ ("trivy", "docker", "npm", "pip", "gradle") | where RemoteIPType == "Public" | where RemotePort !in (80, 443) | project Timestamp, DeviceName, InitiatingProcessFileName, RemoteIP, RemotePort, RemoteUrl | order by Timestamp desc ``` ### YARA Rule - GuptiMiner (eScan Compromise) ```yara rule GuptiMiner_eScan_Backdoor { meta: description = "Detects GuptiMiner backdoor from eScan supply chain compromise" author = "RunkIntel" reference = "Avast - GuptiMiner Analysis 2024" tags = "supply-chain, latam, brazil, av-abuse" strings: $s1 = "eScanSetup" ascii wide nocase $s2 = "GuptiMiner" ascii wide nocase $s3 = "MicroWorld" ascii wide nocase $crypto = "XMRig" ascii wide nocase condition: uint16(0) == 0x5A4D and 2 of ($s*) or $crypto } ``` --- ## Checklist de Erradicacao - [ ] Documentar todas as versoes afetadas antes de remover - [ ] Remover software comprometido de TODOS os sistemas identificados - [ ] Validar remoção: verificar que binarios afetados nao existem mais - [ ] Instalar versao limpa/segura (verificar hash SHA256 vs. hash publicado pelo fornecedor) - [ ] Resetar credenciais de todos os servicos que o software acessava - [ ] Auditar modificacoes feitas pelo software nos ultimos 90 dias (logs, arquivos, rede) - [ ] Verificar e remover qualquer backdoor persistente (tarefas agendadas, servicos, registry) - [ ] Revisar permissoes dos usuarios de servico - minimizar ao necessário - [ ] Atualizar todas as dependencias de containers e pipelines CI/CD - [ ] Validar SBOM de todas as aplicações criticas após erradicacao --- ## Checklist de Recuperacao - [ ] Instalar versao limpa ou alternativa segura do software afetado - [ ] Validar integridade com hash SHA256 públicado pelo fornecedor antes de instalar - [ ] Aplicar principio de mínimo privilégio ao software substituido - [ ] Implementar verificação de hash SHA256 obrigatoria em todos os pipelines CI/CD - [ ] Configurar monitoramento específico para o comportamento normal do software - [ ] Implementar SBOM em todos os projetos criticos - [ ] Monitoramento intensivo por 30 dias após recuperacao --- ## Gestao de Fornecedores (Pos-Incidente) ### Avaliacao de Risco de Terceiros - [ ] Solicitar ao fornecedor relatorio de análise forense do comprometimento - [ ] Exigir certificacao de terceiros (SOC 2 Type II, ISO 27001) na renovacao de contrato - [ ] Incluir clausulas de notificação de incidente no SLA (máximo 24h para notificação) - [ ] Implementar revisao anual de postura de segurança de fornecedores criticos via OSSF Scorecard - [ ] Avaliar alternativas ao software comprometido para reduzir dependencia de fornecedor único - [ ] Implementar verificação automatica de assinatura de todos os softwares antes de deploy --- ## Comúnicação ### Templaté - Notificação CERT.br (Supply Chain) ``` Para: [email protected] Assunto: Supply Chain Compromise - [Nome do Software] - IOCs para compartilhamento ORGANIZACAO: [nome] DATA/HORA: [confirmacao] INCIDENTE Software comprometido: [nome e versao] Tipo de comprometimento: [atualizador trojanizado / dependencia maliciosa / container] Backdoor identificado: [sim/nao - nome do malware se conhecido] Atividade C2 confirmada: [sim/nao] IOCs IDENTIFICADOS [Lista de IPs, dominios, hashes identificados em nosso ambiente] ACOES TOMADAS - Remoção do software em [data] - Hunting retroativo de 90 dias - Sistemas afetados: [contagem] Disponível para compartilhar informacoes técnicas adicionais. Contato: [nome, email, telefone] ``` --- ## Licoes Aprendidas ### Questoes Obrigatorias 1. Como identificamos o comprometimento? Notificação do fornecedor ou detecção interna? 2. O software comprometido tinha visibilidade de rede monitorada? 3. O SBOM estava disponível para identificar rapidamente onde o software era usado? 4. Os pipelines CI/CD verificavam o hash dos binarios antes de usar? 5. Nosso processo de avaliacao de fornecedores teria detectado este risco? ### Metricas de Impacto | Metrica | Valor | |---------|-------| | Versoes comprometidas identificadas | | | Sistemas afetados | | | Pipelines CI/CD comprometidos | | | Tempo até identificação | | | Dados potencialmente exfiltrados | | | Custo de resposta (R$) | | ### Melhorias Recomendadas - [ ] Implementar verificação de hash SHA256 obrigatoria para todos os instaladores - [ ] Adotar SBOM (CycloneDX ou SPDX) em todos os projetos criticos - [ ] Configurar monitoramento de comportamento de rede para softwares gerenciados - [ ] Criar processo formal de avaliacao de segurança de fornecedores (TPRM) - [ ] Usar apenas repositorios npm/PyPI com verificação de integridade (npmlock, pip hash) - [ ] Implementar assinatura de containers com Cosign (Sigstore) em todos os pipelines - [ ] Assinar advisories de segurança dos principais fornecedores de software usados - [ ] Segmentar software de segurança (AV, scanner) em VLAN dedicada e monitorada --- ## Referências - [[cve-2026-33634|CVE-2026-33634]] - Trivy RCE (scanner de containers) - [[escan-compromise]] - Comprometimento do eScan AV via GuptiMiner - [[g0032-lazarus-group]] - grupo responsavel pelo eScan compromise - [[g0016-apt29]] - grupo responsavel pelo SolarWinds supply chain attack - [[t1195-002-supply-chain-compromise|T1195.002 - Supply Chain Compromise]] - técnica MITRE ATT&CK - [[t1195-001-compromise-software-dependencies|T1195.001 - Compromise Software Dependencies]] - dependências maliciosas - [[t1553-subvert-trust-controls|T1553.002 - Code Signing]] - abuso de certificados - [[t1072-software-deployment-tools|T1072 - Software Deployment Tools]] - abuso de ferramentas de deploy - [[technology|tecnologia]] - setor com maior exposicao a supply chain attacks - [[financial|financeiro]] - fintechs brasileiras com pipelines CI/CD afetados - [[ir-supply-chain-attack]] - playbook geral de supply chain (casos SolarWinds/3CX) - [Avast - GuptiMiner eScan Analysis](https://decoded.avast.io/jánrubin/guptiminer-hijacking-antivirus-updates/) - [CISA - Software Supply Chain Security](https://www.cisa.gov/resources-tools/resources/software-supply-chain-security) - [NIST SP 800-161r1 - Supply Chain Risk Management](https://csrc.nist.gov/publications/detail/sp/800-161/rev-1/final) - [Aqua Security - Trivy CVE Advisory](https://github.com/aquasecurity/trivy/security/advisories) --- *Ultima revisao: 2026-03-27 | Proxima revisao recomendada: 2026-09-27*