# T1553.002 - Code Signing ## Técnica Pai Esta é uma sub-técnica de [[t1553-subvert-trust-controls|T1553 - T1553 - Subvert Trust Controls]]. ## Descrição Assinatura de código é um mecanismo de segurança que certifica a autenticidade e integridade de um binário, assegurando que ele foi produzido por um desenvolvedor confiável e não foi adulterado. Adversários exploram esse mecanismo de três formas principais: criando certificados auto-assinados que imitam entidades conhecidas, adquirindo certificados legítimos em mercados clandestinos (por valores entre US$ 100 e US$ 3.000), ou roubando chaves privadas de empresas de software legítimas. Diferente de [[t1036-001-invalid-code-signature|Invalid Code Signature]], esta técnica produz uma assinatura válida e verificável - o que a torna particularmente eficaz contra defesas baseadas em reputação. A eficácia da técnica está diretamente ligada ao modelo de confiança do Windows Authenticode e do macOS Gatekeeper, que tratam binários assinados com certificados de autoridades reconhecidas de forma privilegiada. Soluções de segurança como Windows Defender, SmartScreen e muitos produtos de endpoint reduzem drasticamente sua pontuação de risco para arquivos com assinatura válida, chegando a suprimí-los de análise mais profunda. Políticas de controle de aplicação baseadas em assinatura (Windows Defender Application Control, AppLocker) também são contornadas quando o adversário possui um certificado legítimo da lista de permitidos. **Contexto Brasil/LATAM:** O uso de certificados de code signing roubados ou adquiridos ilegalmente é comum em campanhas que visam o Brasil. O [[g0032-lazarus-group|Lazarus Group]] assinou instaladores falsos de exchanges de criptomoedas com certificados de empresas coreanas legítimas em campanhas que tiveram vítimas brasileiras na operação AppleJeus. O [[g0046-fin7|FIN7]] adquiriu certificados de empresas de prateleira nos EUA para assinar cargas maliciosas distribuídas a varejistas brasileiros. Mais localmente, famílias de RATs bancários brasileiros como [[s0154-cobalt-strike|Cobalt Strike]] loaders e variantes do Banload foram encontradas assinadas com certificados de microempresas brasileiras de TI com CNPJ legítimo, tornando-os invisíveis a muitos controles corporativos. ## Attack Flow ```mermaid graph TB A[Obtenção de<br/>Certificado Válido] --> B[Assinatura<br/>do Payload] B --> C["T1553.002<br/>Code Signing<br/>(bypassa SmartScreen)"]:::highlight C --> D[Entrega Confiável<br/>ao Alvo] D --> E[Execução sem<br/>Bloqueio por AV/EDR] classDef highlight fill:#e74c3c,color:#fff ``` ## Como Funciona **1. Preparação** O adversário obtém um certificado de code signing válido por um dos três caminhos: (a) compra em marketplaces clandestinos como fóruns da dark web, onde certificados de empresas reais são vendidos com acesso à chave privada; (b) criação de empresa fictícia e solicitação legítima a uma CA como Sectigo ou DigiCert - processo que pode levar apenas 24h com documentação falsificada; ou (c) comprometimento de uma empresa de software legítima e roubo da chave privada do certificado existente. O [[g0096-apt41|APT41]] e o [[g0032-lazarus-group|Lazarus Group]] utilizam frequentemente o terceiro método para campanhas de alto valor. **2. Execução** Com o certificado em mãos, o adversário assina o payload usando ferramentas padrão como `signtool.exe` (Windows) ou `codesign` (macOS). O arquivo resultante passa por verificações de reputação: o Windows SmartScreen exibe um pop-up de confirmação em vez de bloqueio; produtos antivírus com whitelisting baseado em assinatura suprimem alertas; sistemas de controle de aplicação permitem a execução. O [[s0154-cobalt-strike|Cobalt Strike]] e o [[s1240-redline-stealer|RedLine Stealer]] são frequentemente distribuídos com assinaturas válidas para maximizar a taxa de sucesso de entrega. **3. Pós-execução** Após a execução bem-sucedida, o adversário opera em um ambiente onde sua ferramenta possui reputação elevada. Isso dificulta a resposta a incidentes, pois analistas de SOC que veem um binário assinado frequentemente o consideram legítimo sem inspeção comportamental adicional. O [[black-basta|Black Basta]] utilizou esta técnica para assinar seus loaders iniciais, prolongando o tempo de permanência antes da detecção. O certificado pode ser revogado pela CA após descoberta, mas o dano frequentemente já está feito. ## Detecção **Event IDs e sinais relevantes:** | Fonte | Sinal | Detalhe | |-------|-------|---------| | Sysmon Event ID 7 | Image Loaded | Verificar campo `Signed` e `SignatureStatus` - buscar `Expired` ou `Revoked` | | Windows Defender logs | SmartScreen bypass | Alertas de reputação suprimidos por assinatura | | Sysmon Event ID 1 | Process Creaté | Correlacionar `Signed=true` com comportamento de rede anômalo | | Certificaté Transparency | CT logs | Monitorar emissão de certificados de code signing para empresas recém-criadas | | EDR telemetry | Module load | Módulos assinados por entidades não relacionadas ao produto que os carrega | | VirusTotal / sandbox | Detecção retroativa | Submeter binários assinados suspeitos para análise comportamental | **Sigma Rule:** ```yaml title: Code Signing Abuse - Binário Assinado com Comportamento Suspeito de Rede id: c3e5a8b2-7f4d-4c9a-b2e1-8d6f3a0c5b9e status: experimental description: > Detecta processos com assinatura digital válida que estabelecem conexões de rede para endereços não relacionados ao vendor declarado no certificado - indicativo de abuso de code signing para evasão de defesas. logsource: product: windows category: network_connection service: sysmon detection: selection: EventID: 3 Signed: 'true' SignatureStatus: 'Valid' Initiated: 'true' filter_known_vendors: Image|contains: - '\Microsoft' - '\Windows' - '\Program Files\Google' - '\Program Files\Mozilla' - '\Program Files\Adobe' filter_private_ips: DestinationIp|startswith: - '10.' - '192.168.' - '172.16.' condition: selection and not filter_known_vendors and not filter_private_ips falsepositives: - Software legítimo de terceiros com comúnicação para CDN externa - Ferramentas de telemetria de vendors de segurança level: medium tags: - attack.defense_evasion - attack.t1553.002 ``` ## Mitigação | Controle | Implementação | Relevância para Organizações Brasileiras | |----------|--------------|------------------------------------------| | Verificação de certificado com lista de revogação (CRL/OCSP) | Garantir que clientes Windows consultam CRL antes de executar binários assinados; bloquear execução de certificados revogados | Habilitar via GPO: `HKLM\SOFTWARE\Policies\Microsoft\SystemCertificates` | | Windows Defender Application Control (WDAC) | Criar política de allowlist baseada em publisher confiável - apenas certificados de vendors pré-aprovados | Aplicar em estações críticas; organizações reguladas pela BACEN devem priorizar | | Monitoramento de Certificaté Transparency | Assinar alertas no crt.sh para emissão de certificados de code signing associados ao nome da empresa ou domínio | Gratuito; detecta uso indevido do nome corporativo em certificados falsos | | Análise comportamental independente de assinatura | EDR configurado para analisar comportamento de TODOS os processos, independente do status de assinatura | CrowdStrike Falcon, Microsoft Defender for Endpoint - não confiar apenas em reputação | | Inventário de software autorizado | Manter lista de hashes de binários autorizados além de publisher - hash garante integridade mesmo com certificado roubado | Complementar ao WDAC; relevante para ambientes de OT/ICS | | Bloqueio de execução de binários com certificados expirados | Bloquear via AppLocker/WDAC executáveis assinados com certificados vencidos - frequente em malware de baixo custo | Configuração disponível em AppLocker Rule Conditions | | Threat intelligence de certificados maliciosos | Subscrever feeds como Abuse.ch e VirusTotal com IOCs de certificados de code signing conhecidamente maliciosos | Integrar com SIEM para bloqueio automático baseado em thumbprint | ## Threat Actors - [[g0032-lazarus-group|Lazarus Group]] - APT norte-coreano com extensa prática de roubo e uso de certificados legítimos; assinou o AppleJeus com certificados de empresas de software sul-coreanas comprometidas, afetando usuários brasileiros de exchanges de cripto - [[g0096-apt41|APT41]] - grupo chinês de dupla missão (espionagem + crime financeiro) que sistematicamente rouba certificados de code signing de empresas de jogos e software para assinar suas ferramentas - [[g0046-fin7|FIN7]] - grupo criminoso que adquiriu certificados de empresas de prateleira para assinar cargas distribuídas a varejistas; campanhas com impacto documentado no Brasil e LATAM - [[g1015-scattered-spider|Scattered Spider]] - grupo jovem anglófono que usa engenharia social para obter certificados de empresas-alvo e assinar ferramentas de acesso remoto - [[g0094-kimsuky|Kimsuky]] - APT norte-coreano que usa certificados roubados de empresas sul-coreanas para assinar backdoors entregues a pesquisadores e jornalistas - [[g0093-gallium|GALLIUM]] - APT chinês focado em telecomúnicações; usa certificados válidos para assinar variantes do PoisonIvy e outros implantes - [[g0049-oilrig|OilRig]] - APT iraniano que assina seus backdoors com certificados de empresas do Oriente Médio para atacar governo e energia - [[g0040-patchwork|Patchwork]] - APT sul-asiático que compra certificados baratos de CAs de baixo custo para dar aparência legítima a seus droppers - [[g0021-molerats|Molerats]] - grupo do Oriente Médio que usa certificados auto-assinados com nomes de organizações governamentais legítimas - [[g1031-saint-bear|Saint Bear]] - APT russo que assinou o HermeticWizard com certificados roubados de empresa ucraniana antes do ataque wiper de 2022 ## Software Associado - [[s0154-cobalt-strike|Cobalt Strike]] - framework de red team/C2 frequentemente assinado com certificados roubados ou adquiridos para evadir detecção em ambientes corporativos brasileiros - [[black-basta|Black Basta]] - ransomware cujos operadores assinam loaders iniciais com certificados válidos para contornar SmartScreen e garantir execução silenciosa - [[s1240-redline-stealer|RedLine Stealer]] - infostealer amplamente disponível em MaaS; variantes assinadas são comuns e têm taxa de detecção significativamente menor - [[s0698-hermeticwizard|HermeticWizard]] - wiper usado na invasão da Ucrânia em 2022; assinado com certificado de empresa legítima ucraniana comprometida - [[s0170-helminth|Helminth]] - backdoor do OilRig assinado com certificados de empresas da região do Golfo para atacar governo e energia - [[s0475-backconfig|BackConfig]] - malware do Patchwork assinado para contornar SmartScreen em ataques contra governo sul-asiático e pesquisadores internacionais - [[s0187-daserf|Daserf]] - backdoor jáponês assinado com certificados de empresas nipônicas comprometidas; usado em espionagem industrial - [[s1226-bookworm|BOOKWORM]] - malware do Patchwork com múltiplas variantes assinadas para facilitar execução em ambientes restritivos - [[s1228-pubload|PUBLOAD]] - stager assinado usado pelo GALLIUM como primeiro estágio em ataques a telecomúnicações - [[s1235-corklog|CorKLOG]] - keylogger assinado com certificado válido para persistência discreta em sistemas Windows corporativos --- *Fonte: [MITRE ATT&CK - T1553.002](https://attack.mitre.org/techniques/T1553/002)*