# T1027.001 - Binary Padding
## Técnica Pai
[[t1027-obfuscated-files-or-information|T1027 - Obfuscaté Files or Information]]
## Descrição
Adversários podem utilizar *binary padding* - preenchimento binário com dados inúteis - para alterar a representação em disco de um malware. Esse processo pode ser realizado sem afetar a funcionalidade ou o comportamento do binário, mas aumenta seu tamanho além do que algumas ferramentas de segurança conseguem processar, devido a limitações de tamanho de arquivo.
O binary padding altera efetivamente o checksum do arquivo e também pode ser usado para evitar blocklists baseadas em hash e assinaturas estáticas de antivírus. O preenchimento normalmente é gerado por uma função que cria dados aleatórios ou com padrões específicos (bytes nulos, sequências repetidas, dados pseudoaleatórios), inseridos no final ou em seções internas do binário malicioso.
Aumentar o tamanho do arquivo pode reduzir a eficácia de determinadas ferramentas e capacidades de detecção que não são projetadas ou configuradas para escanear arquivos de grande porte. Isso também reduz a probabilidade de o arquivo ser coletado para análise. Serviços públicos de escaneamento, como o VirusTotal, limitam o tamanho máximo de um arquivo para análise, tornando impossível a triagem automática de binários excessivamente grandes.
## Como Funciona
A técnica explora uma fragilidade arquitetural das soluções de segurança: a maioria dos scanners de arquivos tem limites de tamanho configurados por questões de performance. Ao inflar o binário além desses limites, o adversário garante que o arquivo não será inspecionado por ferramentas baseadas em hash ou assinatura estática.
**Mecanismos de preenchimento comuns:**
1. **Bytes nulos no final** - A forma mais simples. Bytes `0x00` são acrescentados após o último segmento legítimo do PE (Portable Executable). O sistema operacional ignora esses bytes na execução, mas o arquivo em disco tem um hash completamente diferente.
2. **Dados pseudo-aleatórios** - Funções de geração de números pseudo-aleatórios produzem blocos de dados sem padrão reconhecível. Isso evita que ferramentas detectem o padding pela uniformidade dos bytes (ex: muitos zeros consecutivos podem ser um indicador).
3. **Inserção em seções do PE** - Em vez de apenas adicionar ao final, o adversário insere dados em seções do arquivo PE como `.rsrc` (recursos) ou cria novas seções. Isso torna a detecção por análise estrutural do PE mais complexa.
4. **Overlay com dados aparentemente legítimos** - Dados de imagens, documentos ou arquivos de configuração são concatenados ao binário para simular um arquivo composto, confundindo ferramentas de identificação de tipo.
**Impacto no processo de detecção:**
- **Hash-based detection**: SHA256, MD5 e SHA1 do arquivo modificado diferem completamente do hash original, inválidando blocklists estáticas.
- **Tamanho e upload**: VirusTotal rejeita arquivos acima de 650 MB; muitas soluções EDR têm limites similares, deixando o arquivo fora do escopo de análise em nuvem.
- **YARA rules**: Regras que dependem do tamanho do arquivo (`filesize < 5MB`) serão contornadas se o binário for inflado acima do limite.
- **Análise em sandbox**: Sandboxes com timeout por arquivo podem não completar a análise de binários muito grandes, resultando em veredicto inconclusivo.
## Attack Flow
```mermaid
graph TB
A[Malware original compilado<br/>ex: RAT, loader, backdoor] --> B[Geração de dados de padding<br/>bytes nulos / pseudo-aleatórios / overlay]
B --> C{Estrategia de inserção}
C --> D[Append ao final do binário<br/>Seção .text ou overlay]
C --> E[Inserção em seção PE<br/>.rsrc / nova seção criada]
C --> F[Concatenação com arquivo legítimo<br/>Imagem / PDF / ZIP]
D & E & F --> G[Hash do arquivo alterado<br/>Checksum diferente do original]
G --> H{Resultado na cadeia de entrega}
H --> I[VirusTotal / sandbox rejeitam<br/>Arquivo acima do limite de tamanho]
H --> J[AV / EDR não detectam<br/>Hash não consta em blocklist]
H --> K[YARA rules baseadas em filesize<br/>não disparam]
I & J & K --> L[Binário entregue à vítima<br/>Phishing / drive-by / supply chain]
L --> M[Execução bem-sucedida<br/>Defesas estáticas contornadas]
```
## Exemplos de Uso
**[[s0531-grandoreiro|Grandoreiro]] - Banking Trojan brasileiro com padding massivo**
O Grandoreiro, trojan bancário com ampla atuação no Brasil e na América Latina, é notório pelo uso de binary padding extremo. Amostras documentadas chegaram a 400 MB de tamanho - tornando o upload ao VirusTotal impossível. O binário funcional representa menos de 5% do arquivo; o restante é preenchimento com dados pseudo-aleatórios. Essa técnica permite que o Grandoreiro evada detecção automática em tempo de entrega, especialmente em campanhas de phishing direcionadas ao [[financial|setor financeiro]].
**[[s0367-emotet|Emotet]] - Padding para inválidar hashes**
O Emotet utilizou binary padding como parte de seu processo de empacotamento automático, gerando uma nova amostra com hash único a cada campanha. Combinado com polimorfismo de código, o padding garantia que cada instância da campanha fosse efetivamente um "novo" arquivo do ponto de vista de ferramentas baseadas em hash.
**[[s0528-javali|Javali]] - Trojan bancário LATAM com overlay**
O Javali, outro trojan bancário com foco em Brasil e México, utilizou overlays de arquivos ZIP legítimos concatenados ao binário principal. A técnica confundia ferramentas de identificação de tipo de arquivo, que classificavam o arquivo como ZIP inofensivo antes de uma inspeção mais profunda.
**[[g0016-apt29|APT29]] - Evasão de análise forense**
O APT29 documentadamente utilizou variantes de binary padding para garantir que amostras de malware não fossem automaticamente compartilhadas com plataformas de inteligência de ameaças, que têm limites de tamanho para coleta e envio.
**[[g0094-kimsuky|Kimsuky]] - Padding em RATs para espionagem**
O grupo norte-coreano Kimsuky aplicou binary padding em RATs utilizados em campanhas de espionagem contra alvos governamentais e de defesa, incluindo entidades na América do Sul, para contornar inspeção em gateways de e-mail corporativos com limites de scanning configurados.
**[[g1024-akira|Akira]] - Ransomware com padding pré-entrega**
O ransomware Akira, ativo em campanhas contra empresas brasileiras de médio porte, utilizou loaders com padding para contornar controles de segurança em e-mail e EDR durante a fase de entrega inicial, antes da execução do payload de cifragem.
## Detecção
A detecção de binary padding é desafiadora porque o arquivo executa normalmente. A melhor abordagem é comportamental e heurística, combinada com inspeção estrutural do PE.
```yaml
title: Binário PE com Tamanho Anômalo ou Padding Detectado
status: experimental
logsource:
category: file_event
product: windows
detection:
selection_large_pe:
TargetFilename|endswith:
- .exe
- .dll
- .scr
FileSize|gt: 52428800
selection_pe_overlay:
TargetFilename|endswith:
- .exe
- .dll
Imphash: ''
condition: selection_large_pe or selection_pe_overlay
level: medium
tags:
- attack.defense_evasion
- attack.t1027.001
```
**Estrategias de detecção complementares:**
- **Análise estrutural do PE**: Ferramentas como `pefile` (Python) ou `pecheck` identificam quando o tamanho declarado no header PE difere substancialmente do tamanho real do arquivo - indicativo claro de overlay ou padding.
- **Entropia de seções**: Seções com entropia muito baixa (próxima de zero - bytes nulos) ou muito alta (dados pseudo-aleatórios) em binários que deveriam ter entropia moderada são suspeitas.
- **Detecção por comportamento em execução**: Independentemente do tamanho, monitorar o comportamento pós-execução (injeção de processo, conexões C2, acesso a credenciais) é mais confiável que a análise estática do binário em disco.
- **Bloqueio por tamanho com quarentena**: Configurar EDR/AV para colocar em quarentena executáveis acima de um determinado limiar de tamanho (ex: 50 MB) para análise manual, em vez de ignorar silenciosamente.
- **YARA com verificação de overlay**: Regras que calculam `pe.overlay.size > pe.size * 0.5` detectam binários onde mais da metade do arquivo é overlay potencial.
## Mitigação
Não há mitigações MITRE ATT&CK específicas catalogadas para T1027.001. As medidas de defesa são de natureza detectiva e procedurial:
| Controle | Descrição |
|----------|-----------|
| Hardening de e-mail gateway | Configurar MTA para bloquear ou quarentenar anexos executáveis acima de um limiar de tamanho definido pela política de segurança |
| EDR com análise comportamental | Priorizar detecção comportamental (pós-execução) sobre análise estática baseada em hash, que é trivialmente contornada por padding |
| Monitoramento de entropia | Ferramentas de SIEM que calculam entropia de seções PE em arquivos detectados podem identificar padding de bytes nulos ou dados aleatórios |
| Inspeção profunda de pacotes (DPI) | Inspecionar transferências de arquivos grandes em protocolos de e-mail e HTTP/HTTPS para identificar executáveis inflados |
| Controle de aplicações (allowlist) | Implementar [[m1038-execution-prevention\|M1038 - Execution Prevention]] via allowlist de hashes ou certificados assinados, reduzindo a superfície de ataque para binários não autorizados independentemente do tamanho |
## Contexto Brasil/LATAM
O binary padding é uma técnica especialmente prevalente no ecossistema de malware bancário latino-americano. A região abriga uma das maiores comunidades de desenvolvimento de trojans bancários do mundo, e o padding é uma característica quase universal desses payloads.
**Panorama regional:**
- **Trojans bancários brasileiros**: [[s0531-grandoreiro|Grandoreiro]], [[s0528-javali|Javali]], [[mekotio|Mekotio]], [[guildma|Guildma]] e [[amavaldo|Amavaldo]] - o chamado "Quarteto LATAM" identificado pela ESET - utilizam binary padding como técnica padrão de evasão. Esses grupos têm como alvo primário o [[financial|setor financeiro]] brasileiro, com expansão para México, Chile e Espanha.
- **Infraestrutura de distribuição**: Campanhas de phishing direcionadas a clientes de bancos brasileiros frequentemente distribuem arquivos ZIP com executáveis acima de 200 MB, explorando a incapacidade de gateways de e-mail corporativos de escanear arquivos muito grandes.
- **CERT.br e relatórios de incidentes**: O CERT.br documenta regularmente amostras de malware brasileiro com uso extensivo de padding. Em 2024, o relatório anual indicou que trojans bancários representaram mais de 60% do malware detectado em alvos brasileiros, com evasão por tamanho de arquivo como vetor técnico recorrente.
- **[[g1024-akira|Ransomware Akira]] no Brasil**: Operadores do ransomware Akira comprometeram empresas de médio porte brasileiras nos setores de varejo e logística em 2024, utilizando loaders com binary padding na fase de acesso inicial para contornar EDR de entrada antes de executar o payload de cifragem.
## Referências
- MITRE ATT&CK - T1027.001 Binary Padding
- ESET Research: Latin Américan Banking Trojans (2020, 2021, 2022, 2024)
- CERT.br: Relatório Anual de Atividades - Incidentes Reportados
- Kaspersky LATAM: Grandoreiro Banking Trojan Analysis
- Análises técnicas de Javali, Mekotio e Guildma disponíveis em repositórios de threat intelligence públicos
*Fonte: MITRE ATT&CK - T1027.001*