# T1587.003 - Digital Certificates
## Descrição
Adversários criam certificados SSL/TLS autoassinados para dar aparência de legitimidade às suas operações maliciosas - especialmente no contexto de infraestrutura de **Comando e Controle (C2)**. Um certificado digital contém a chave pública do proprietário, informações de identidade e a assinatura de uma entidade verificadora. Quando autoassinado, o certificado não possui a âncora de confiança de uma Autoridade Certificadora (CA) reconhecida, mas ainda assim cifra o tráfego e pode enganar ferramentas de inspeção superficial.
No contexto brasileiro e latino-americano, essa técnica é amplamente utilizada por grupos como [[g0016-apt29|APT29]] e [[g0047-gamaredon|Gamaredon Group]] para comunicação cifrada com implantes implantados em alvos do setor financeiro, governamental e de telecomúnicações. A proliferação de provedores de hospedagem baratos no Brasil e no México facilita o registro de domínios com certificados autoassinados ou emitidos por CAs legítimas de baixo custo (Let's Encrypt), dificultando a distinção entre infraestrutura maliciosa e sites legítimos.
> **Técnica pai:** [[t1587-develop-capabilities|T1587 - Develop Capabilities]]
Certificados autoassinados são frequentemente combinados com [[t1573-002-asymmetric-cryptography|Asymmetric Cryptography]] para cifrar tráfego C2, e com [[t1071-001-web-protocols|Web Protocols]] para camuflar as comúnicações como HTTPS legítimo. Quando um adversário consegue instalar o certificado como raiz de confiança (via [[t1553-004-install-root-certificate|Install Root Certificaté]]), toda a comunicação passa a parecer completamente legítima para o sistema operacional. Após criar o certificado, o próximo passo típico é instalá-lo em infraestrutura controlada via [[t1608-003-install-digital-certificate|Install Digital Certificaté]]. Esse padrão também habilita ataques de [[t1557-adversary-in-the-middle|Adversary-in-the-Middle]] contra vítimas na mesma rede.
---
## Attack Flow
```mermaid
graph TB
A([Reconhecimento]) --> B([Resource Development])
B --> C{T1587.003\nDigital Certificates}:::highlight
C --> D([Install Digital Certificaté<br/>T1608.003])
D --> E([C2 via Web Protocols<br/>T1071.001])
E --> F([Asymmetric Crypto<br/>T1573.002])
F --> G([Comprometimento<br/>da vítima])
C --> H([Install Root Cert<br/>T1553.004])
H --> I([Adversary-in-the-Middle<br/>T1557])
classDef highlight fill:#e74c3c,color:#fff,stroke:#c0392b
```
---
## Como Funciona
**Passo 1 - Geração do Certificado**
O adversário utiliza ferramentas como `openssl`, `mkcert` ou bibliotecas Python (`cryptography`, `PyOpenSSL`) para gerar um par de chaves RSA/EC e um certificado X.509 autoassinado. O certificado pode imitar organizações legítimas, incluindo nomes de empresas brasileiras (ex: "Banco do Brasil S.A.", "Receita Federal") nos campos CN/O para enganar analistas durante triagem de alertas.
**Passo 2 - Implantação na Infraestrutura**
O certificado é instalado em um servidor comprometido ou alugado (VPS no Brasil, Argentina ou provedor global como DigitalOcean/Vultr) que servirá como nó C2 ou proxy. Combinado com ferramentas como [[s0154-cobalt-strike|Cobalt Strike]], [[metasploit|Metasploit]] ou frameworks customizados, o certificado passa a cifrar todas as comúnicações entre o implante e o operador. Certificados Let's Encrypt também são utilizados para evitar alertas de certificado inválido no navegador.
**Passo 3 - Operacionalização**
Com o certificado em uso, o tráfego C2 aparece como HTTPS legítimo nos logs de proxy e firewalls. Se o adversário conseguir adicionar o certificado autoassinado ao repositório de confiança do sistema operacional da vítima (via [[t1553-004-install-root-certificate|Install Root Certificaté]]), ataques de inspeção profunda de tráfego tornam-se possíveis, permitindo interceptação de credenciais e dados sensíveis em trânsito.
---
## Detecção
### Event IDs Relevantes (Windows)
| Event ID | Canal | Evento |
|----------|-------|--------|
| 4886 | Security | Certificado solicitado no serviço de certificados |
| 4887 | Security | Certificado aprovado/emitido |
| 4888 | Security | Certificado negado |
| 70 | CAPI2 / Operational | Construção da cadeia de certificados |
| 4776 | Security | Autenticação com certificado (Kerberos) |
### Indicadores de Detecção em Rede
- Certificados SSL/TLS com `CN` imitando entidades governamentais brasileiras (`.gov.br`, `receita`, `serpro`)
- Certificados autoassinados com válidade excessivamente longa (> 10 anos)
- Certificados emitidos por CAs desconhecidas ou autoassinadas em conexões corporativas
- Uso de Let's Encrypt em domínios registrados há menos de 7 dias
- Fingerprints JA3/JA3S associados a frameworks C2 conhecidos (Cobalt Strike, Sliver)
### Sigma Rule
```yaml
title: Certificado SSL Autoassinado em Destino Externo Suspeito
id: a3f7c2d1-8e4b-4f9a-b6d2-1c3e5f7a9b0d
status: experimental
description: >
Detecta conexões TLS de saída para certificados autoassinados
em destinos externos, possível indicativo de C2 via T1587.003
author: RunkIntel
daté: 2026-03-24
logsource:
category: network_connection
product: zeek
detection:
selection:
event_type: ssl
ssl.válidation_status: 'self signed certificaté'
filter_internal:
destination.ip|cidr:
- '10.0.0.0/8'
- '172.16.0.0/12'
- '192.168.0.0/16'
condition: selection and not filter_internal
fields:
- source.ip
- destination.ip
- destination.port
- ssl.server_name
- ssl.subject
- ssl.issuer
falsepositives:
- Dispositivos IoT com certificados autoassinados
- Ambientes de laboratório/desenvolvimento
- Appliances legados sem suporte a CAs externas
level: medium
tags:
- attack.resource_development
- attack.t1587.003
```
---
## Mitigação
| ID | Mitigação | Aplicação para Organizações Brasileiras |
|----|-----------|----------------------------------------|
| [[m1056-pre-compromise\|M1056 - Pre-compromise]] | Medidas de proteção antes do comprometimento | Monitorar registros de domínio `.com.br` / `.gov.br` imitando sua organização via CNAME/typosquatting; assinar alertas no CERT.br |
| Inspeção TLS | Inspecionar tráfego HTTPS sainte com certificados não confiáveis | Implantar proxy TLS com lista de CAs aprovadas; bloquear certificados autoassinados em tráfego de produção |
| CT Log Monitoring | Monitorar Certificaté Transparency logs | Usar ferramentas como `certstream` ou `crt.sh` para alertar em certificados registrados contendo o nome da organização |
| Pinning de Certificado | Aplicações críticas com certificaté pinning | Sistemas bancários (PCI-DSS) e aplicações de saúde (LGPD/ANS) devem implementar pinning para prevenir substituição de certificados |
---
## Threat Actors e Softwares
### Grupos que Utilizam Esta Técnica
**[[g0016-apt29|APT29]] (Cozy Bear - Rússia)**
Utiliza certificados autoassinados extensivamente na infraestrutura C2 de ferramentas como [[s0154-cobalt-strike|Cobalt Strike]] e implantes customizados. Campanhas de espionagem contra alvos governamentais em países do bloco ocidental, incluindo embaixadas na América Latina.
**[[g0056-promethium|PROMETHIUM]] (Turquia)**
Grupo APT focado em vigilância de alvos de interesse do governo turco. Usa certificados autoassinados em campanhas de spyware mobile ([[android-malware|Android Malware]]) e desktop, com infraestrutura C2 frequentemente hospedada em provedores europeus.
**[[g0047-gamaredon|Gamaredon Group]] (Rússia/Ucrânia)**
Prolífico grupo de espionagem com foco em governo e defesa ucraniana. Usa certificados autoassinados gerados dinâmicamente para dificultar o rastreamento de infraestrutura, com rotação frequente de domínios e IPs. Relevante para monitoramento por [[sources|CERT.br]] dado o contexto geopolítico LATAM.
**[[g1053-storm-0501|Storm-0501]] (Financeiramente motivado)**
Grupo de ransomware que usa certificados autoassinados para comúnicação com ferramentas de acesso remoto durante a fase de movimentação lateral antes da execução do payload. Ativo contra organizações de saúde, governo e manufatura na América Latina.
### Ferramentas Associadas
- [[s0154-cobalt-strike|Cobalt Strike]] - gera certificados HTTPS para listeners
- [[metasploit|Metasploit]] - suporte nativo a certificados autoassinados em handlers
- [[sliver-c2|Sliver]] - framework C2 open-source com geração automática de certs mTLS
---
*Fonte: [MITRE ATT&CK - T1587.003](https://attack.mitre.org/techniques/T1587/003)*