# T1027.014 - Polymorphic Code ## Técnica Pai Esta é uma sub-técnica de [[t1027-obfuscated-files|T1027 - T1027 - Obfuscated Files or Information]]. ## Descrição A técnica T1027.014 - Polymorphic Code descreve o uso de código polimórfico (também chamado de metamórfico ou mutante) para evadir sistemas de detecção. Código polimórfico é uma classe de software capaz de alterar sua própria estrutura em tempo de execução - a cada execução, o código se reescreve em uma nova variante que produz o mesmo resultado funcional da versão original, mas com assinatura binária completamente diferente. O objetivo central é tornar ineficaz a detecção baseada em assinaturas estáticas, que é o mecanismo fundamental de antivírus tradicionais. O princípio técnico por trás do polimorfismo é a separação entre o payload funcional e a camada de ofuscação. Um motor de mutação (*mutation engine*) é responsável por transformar o código a cada ciclo: embaralhando instruções equivalentes, substituindo opcodes por sequências funcionalmente idênticas, inserindo instruções NOP (no-operation) como ruído ou reordenando blocos de código independentes. O resultado é que duas amostras do mesmo malware polimórfico geradas com intervalo de minutos podem ter hashes MD5, SHA-1 e SHA-256 completamente distintos - tornando listas negras de hashes essencialmente inúteis contra elas. O polimorfismo frequentemente é combinado com outras subtécnicas de [[t1027-obfuscated-files-or-information|Obfuscated Files or Information]]: [[t1027-002-software-packing|Software Packing]] para empacotar a carga útil, [[t1027-010-command-obfuscation|Command Obfuscation]] para mascarar scripts invocados pelo malware, e [[Encoded File]] para proteger o payload em repouso. Juntas, essas técnicas criam camadas de evasão que podem frustrar até soluções de segurança mais modernas sem capacidades heurísticas e comportamentais avançadas. **Contexto Brasil/LATAM:** O ecossistema de malware bancário brasileiro - um dos mais prolíficos do mundo - tem adotado progressivamente técnicas de polimorfismo para evadir os antivírus corporativos comuns no mercado nacional. Famílias como [[s0574-bendybear|BendyBear]] demonstram implementações sofisticadas de polimorfismo em nível de bloco. Operadores de crimeware voltados ao setor financeiro brasileiro geram novas variantes polimórficas de loaders e droppers em escala quase-automatizada, o que explica por que soluções baseadas exclusivamente em assinatura têm taxas de detecção historicamente baixas nesse cenário. Organizações com exposição a [[t1566-001-spearphishing-attachment|Spearphishing Attachment]] como vetor inicial - especialmente no setor financeiro e varejo - são as mais impactadas por essa técnica. ## Attack Flow ```mermaid graph TB A([Desenvolvimento do Malware]) --> B([Motor de Mutação Aplicado]) B:::highlight --> C([Variante Única Gerada por Execução]) C --> D([Evasão de Assinatura AV]) D --> E([Payload Executado com Sucesso]) classDef highlight fill:#e74c3c,color:#fff,stroke:#c0392b ``` ## Como Funciona 1. **Preparação:** O autor do malware integra um *mutation engine* ao código - um componente que conhece o payload funcional e é capaz de reescrevê-lo com representações instrução-equivalentes. O motor pode atuar sobre o corpo do executável, sobre scripts intermediários (PowerShell, VBScript) ou sobre shellcode. Alguns frameworks de crimeware comerciais oferecem mutação como serviço: o operador envia o binário e recebe uma nova variante a cada requisição. 2. **Execução:** Quando o malware é executado no sistema-alvo, o motor de mutação gera uma nova cópia de si mesmo antes de realizar qualquer ação maliciosa - de modo que o arquivo em disco e/ou em memória difere do sample original. Técnicas associadas podem incluir: inserção de código lixo (junk code), substituição de constantes, reordenação de blocos básicos do CFG (*control flow graph*), ou re-cifragem do payload com uma nova chave derivada do ambiente. O resultado é que scanners baseados em assinatura, ao compararem o arquivo com sua base de conhecimento, não encontram correspondência. 3. **Pós-execução:** Com a detecção inicial bypassada, o payload funcional - o código malicioso de fato - executa normalmente: estabelece persistência via [[t1547-boot-or-logon-autostart-execution|registro ou agendador]], realiza reconhecimento, e abre canal de C2. Cada nova vítima potencialmente recebe uma variante distinta, dificultando a correlação entre incidentes e a criação de IOCs baseados em hash. ## Detecção **Fontes de dados:** - **EDR com análise comportamental** - independente de hash: monitorar comportamentos pós-execução (injeção de processo, criação de chaves de registro de persistência, conexões C2) é mais resiliente que detecção por assinatura - **Sysmon Event ID 1** (Process Creaté) - capturar hashes de todos os processos criados; correlacionar com threat intel feeds para identificar variantes conhecidas - **Sysmon Event ID 7** (Image Loaded) - monitorar DLLs carregadas em memória com hashes desconhecidos ou sem assinatura digital válida - **Análise de entropia estática** - binários com alta entropia em múltiplas seções PE (> 7.0 bits/byte) são suspeitos de empacotamento/cifração associada ao polimorfismo - **Sandbox comportamental** - submeter amostras suspeitas a sandboxes como Any.run, Hybrid Analysis ou Cuckoo; o comportamento funcional é estável mesmo quando a assinatura muda - **YARA com heurísticas estruturais** - regras baseadas em estrutura PE (importações, características de seção) em vez de bytes específicos são mais resilientes a variações polimórficas **Sigma Rule:** ```yaml title: Execução de PE com Alta Entropia e Sem Assinatura Digital id: c9e5f3a2-6b4d-4c8f-9e0a-3d2b1f0e5c6d status: experimental description: Detecta execução de arquivos PE com alta entropia nas seções de código e ausência de assinatura digital Authenticode - padrão comum em malware polimórfico (T1027.014) references: - T1027.014 logsource: category: process_creation product: windows detection: selection_unsigned: # Processos sem assinatura digital válida Signed: 'false' # Executados de paths temporários ou de usuário Image|contains: - '\AppData\Local\Temp\' - '\AppData\Roaming\' - '\Users\Public\' - '\ProgramData\' filter_known_tools: Image|endswith: - '\python.exe' - '\node.exe' - '\java.exe' condition: selection_unsigned and not filter_known_tools falsepositives: - Ferramentas internas de desenvolvimento sem assinatura - Instaladores legítimos em fase de execução temporária level: medium tags: - attack.defense_evasion - attack.t1027.014 ``` ## Mitigação | Mitigação | Recomendação Prática | |-----------|---------------------| | [[m1040-behavior-prevention-on-endpoint\|M1040 - Behavior Prevention on Endpoint]] | Implantar EDR com capacidades de detecção comportamental e análise em memória - soluções que analisam o que o código *faz* em vez de *como ele é* são fundamentais contra polimorfismo. No Brasil, priorizar cobertura de endpoints que processam documentos financeiros (NF-e, boletos, declarações). Habilitar proteção contra injeção de processo e *process hollowing*, comportamentos pós-infecção comuns mesmo quando a variante é nova. | | [[Antimalware]] | Privilegiar soluções com detecção heurística e machine learning (ex: Defender com proteção baseada em nuvem, CrowdStrike Falcon, SentinelOne) em detrimento de AV puramente baseado em assinatura. Configurar envio automático de amostras suspeitas para análise em nuvem - essencial para que novas variantes polimórficas sejam identificadas em tempo real. Complementar com análise de sandbox automática integrada ao gateway de e-mail e proxy web. | ## Threat Actors Nenhum threat actor específico está mapeado atualmente para T1027.014 no MITRE ATT&CK v16.2. No entanto, técnicas de polimorfismo são amplamente utilizadas por operadores de crimeware em escala, particularmente em famílias de malware bancário direcionadas ao Brasil, e por grupos APT que precisam manter persistência de longo prazo em ambientes com controles de segurança robustos. Grupos como [[g0032-lazarus-group|Lazarus Group]] e operadores de [[s1202-lockbit-30|LockBit]] são conhecidos por atualizar continuamente seus loaders com variantes mutadas para contornar assinaturas. ## Software Associado - [[s0574-bendybear|BendyBear]] (malware) - shellcode polimórfico avançado atribuído a grupo APT de língua chinesa; demonstra implementação de polimorfismo em nível de bloco com re-cifragem por chave derivada do ambiente, tornando cada execução única --- *Fonte: [MITRE ATT&CK - T1027.014](https://attack.mitre.org/techniques/T1027/014)*