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