# 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)*