# T1573.001 - Encrypted Channel: Symmetric Cryptography
> [!warning] Técnica de Comando e Controle
> Adversários utilizam criptografia simétrica (AES, ChaCha20, XOR, RC4) para criptografar o tráfego C2, ocultando comandos e dados exfiltrados dentro de comúnicações que parecem legítimas para soluções de inspeção de rede.
## Visão Geral
A sub-técnica T1573.001 descreve o uso específico de algoritmos de criptografia simétrica para proteger comúnicações entre implantes (malware) e infraestrutura de Comando e Controle. Na criptografia simétrica, a mesma chave é utilizada para criptografar e descriptografar dados, o que significa que a chave precisa estar presente no binário do malware ou ser derivada durante a execução.
Esta é uma das técnicas C2 mais prevalentes no cenário de ameaças, utilizada por virtualmente todos os frameworks C2 modernos como [[s0154-cobalt-strike|Cobalt Strike]] (AES-256), Sliver (ChaCha20-Poly1305), Metasploit (XOR/RC4) e [[s1063-brute-ratel-c4|Brute Ratel]] (AES-256). Grupos APT como [[g0007-apt28|APT28]], [[g0016-apt29|APT29]], [[g0010-turla|Turla]] e [[g0032-lazarus-group|Lazarus Group]] implementam criptografia simétrica customizada em seus implantes proprietários.
A principal vantagem da criptografia simétrica para adversários é a performance: algoritmos como AES e ChaCha20 são extremamente rápidos, permitindo comunicação C2 de baixa latência mesmo em dispositivos com recursos limitados. A principal fraqueza é a gestão de chaves - a chave deve existir no binário ou ser negociada, criando oportunidades para engenharia reversa e extração.
A técnica parent [[t1573-symmetric-cryptography|T1573]] abrange o conceito geral de canais criptografados em mobile, enquanto esta sub-técnica foca específicamente no uso de criptografia simétrica como mecanismo de proteção do tráfego C2 em todas as plataformas.
## Attack Flow
```mermaid
graph TB
subgraph "Implante no Host"
A["🦠 Malware Executado<br/>Implante ativo no endpoint"]
B["🔑 Chave Simétrica<br/>Hardcoded ou derivada"]
end
subgraph "Canal C2 Criptografado"
C["📡 Beacon Criptografado<br/>AES/ChaCha20 sobre HTTP(S)"]
D["🔄 Troca de Comandos<br/>Payload criptografado bidirecional"]
end
subgraph "Infraestrutura C2"
E["🖥️ Servidor C2<br/>Descriptografa com mesma chave"]
F["📋 Painel do Operador<br/>Controle do implante"]
end
A --> B --> C --> E
E --> D --> A
E --> F
classDef implant fill:#e74c3c,stroke:#c0392b,color:#ecf0f1
classDef crypto fill:#e67e22,stroke:#d35400,color:#ecf0f1
classDef c2 fill:#9b59b6,stroke:#8e44ad,color:#ecf0f1
class A,B implant
class C,D crypto
class E,F c2
```
## Algoritmos e Implementações
| Algoritmo | Tipo | Força | Uso em Malware |
|-----------|------|-------|----------------|
| **AES-256-CBC** | Bloco | Forte | Cobalt Strike, APT29 implants, LockBit C2 |
| **AES-128-GCM** | Bloco + auth | Forte | Implantes modernos com autenticação |
| **ChaCha20-Poly1305** | Stream + auth | Forte | Sliver C2, implantes mobile modernos |
| **XOR** | Stream (trivial) | Fraco | Banking trojans, malware commodity, ofuscação básica |
| **RC4** | Stream | Fraco (deprecated) | Legacy malware, Emotet variantes antigas |
| **3DES** | Bloco | Obsoleto | Implantes antigos de APTs |
| **Custom XOR chain** | Customizado | Variável | Malware brasileiro, implantes one-off |
### Padrões de Gestão de Chaves
1. **Chave hardcoded** - Chave fixa no binário (mais comum, mais fácil de extrair)
2. **Chave derivada** - Gerada a partir de dados do host (hostname, MAC, timestamp)
3. **Troca Diffie-Hellman** - Negociação inicial seguida de sessão simétrica
4. **RSA + AES** - Chave AES criptografada com RSA público do C2 (mais seguro)
5. **Chave por sessão** - Nova chave a cada conexão (dificulta replay analysis)
### Exemplo de Tráfego
```
# Beacon HTTP com payload AES-256
POST /api/v2/check HTTP/1.1
Host: cdn-update.legitimate-site.com
Content-Type: application/octet-stream
[AES-256-CBC encrypted payload]
[IV: 16 bytes | Encrypted data | HMAC: 32 bytes]
```
## Detecção
| Método | Fonte de Dados | Indicadores |
|--------|----------------|-------------|
| JA3/JA3S fingerprinting | Zeek, Suricata | TLS fingerprints de C2 frameworks conhecidos |
| Entropy analysis | Network IDS | Payloads HTTP com alta entropia (dados criptografados) |
| Behavioral analysis | NDR (Darktrace, Vectra) | Beacons regulares com payload de tamanho consistente |
| Malware RE | Sandbox, YARA | Chaves AES/XOR extraídas de amostras |
| Network metadata | Firewall, proxy logs | Comúnicação regular com IPs/domínios não-categorizados |
| TLS inspection | SSL proxy | Detecção de camada de criptografia dentro de HTTPS |
### Regra Sigma
```yaml
title: Tráfego HTTP com Payload de Alta Entropia (Possível C2 Criptografado)
id: 4d6e8f0a-5b3c-4d7e-9f1a-2b3c4d5e6f7a
status: experimental
description: Detecta requisições HTTP com payload de alta entropia indicando criptografia simétrica
logsource:
category: proxy
product: web
detection:
selection_method:
cs-method:
- POST
- PUT
selection_content:
cs-content-type:
- 'application/octet-stream'
- 'application/x-www-form-urlencoded'
filter_legitimate:
cs-host|endswith:
- '.microsoft.com'
- '.google.com'
- '.amazonaws.com'
- '.cloudflare.com'
selection_size:
# Payloads C2 tipicamente entre 100 bytes e 10KB
sc-bytes|gte: 100
sc-bytes|lte: 10240
condition: selection_method and selection_content and not filter_legitimate and selection_size
falsepositives:
- Uploads de arquivos binários legítimos
- APIs que usam serialização binária
level: medium
tags:
- attack.command_and_control
- attack.t1573.001
```
## Mitigação
- **Inspeção TLS/SSL** - Implementar [[TLS Inspection]] para descriptografar e inspecionar tráfego HTTPS, detectando camada adicional de criptografia
- **Network Intrusion Prevention** - Utilizar [[m1031-network-intrusion-prevention|M1031]] com assinaturas para JA3 fingerprints de C2 frameworks conhecidos (Cobalt Strike, Sliver, Metasploit)
- **DNS filtering** - Bloquear domínios recém-registrados e não-categorizados que frequentemente hospedam C2
- **Segmentação de rede** - Implementar [[m1030-network-segmentation|M1030]] para limitar comunicação outbound de segmentos críticos
- **NDR/NTA** - Soluções de Network Detection and Response para identificar padrões de beaconing com entropia anômala
- **Threat intelligence feeds** - Manter IOCs atualizados com IPs e domínios de infraestrutura C2 conhecida
- **Egress filtering** - Restringir tráfego de saída a portas e protocolos necessários via [[m1037-filter-network-traffic|M1037]]
## Relevância LATAM/Brasil
- **Banking trojans brasileiros** - Famílias como BrasDex, Grandoreiro e Mekotio utilizam XOR customizado ou AES para criptografar comunicação C2, frequentemente com servidores hospedados em provedores brasileiros (Locaweb, HostGator Brasil)
- **Cobalt Strike pirata** - Versões crackeadas do [[s0154-cobalt-strike|Cobalt Strike]] são amplamente utilizadas por grupos cibercriminosos que operam no Brasil, com beacons AES-256 configurados para perfis de comunicação que imitam tráfego legítimo
- **PIX fraud infrastructure** - Malware mobile brasileiro focado em fraude PIX utiliza AES para proteger comunicação com servidores que processam transferências fraudulentas no [[financial|setor financeiro]]
- **Baixa adoção de NDR** - Poucas organizações brasileiras possuem soluções de Network Detection and Response, tornando canais criptografados eficazes para persistência de longo prazo
- **Infraestrutura C2 local** - Adversários brasileiros frequentemente hospedam C2 em provedores nacionais para reduzir latência e evitar bloqueio por geolocalização, complicando investigações que dependem de colaboração internacional
## Referências
- [MITRE ATT&CK - T1573.001](https://attack.mitre.org/techniques/T1573/001/)
- [Recorded Future - C2 Encryption Analysis](https://www.recordedfuture.com/blog/rss.xml)
- [Red Canary - Detecting Encrypted C2](https://redcanary.com/blog/)
- [Salesforce JA3 - TLS Fingerprinting](https://github.com/salesforce/ja3)
- [Cisco Talos - Cobalt Strike Analysis](https://blog.talosintelligence.com/feeds/posts/default)