# T1027 - Obfuscated Files or Information ## Descrição Adversários ofuscam conteúdo de arquivos, scripts, comandos, comúnicações e payloads para dificultar a detecção por ferramentas de segurança, análise forense e inspeção de analistas de ameaças. A ofuscação é uma técnica fundamental no arsenal de virtualmente todos os grupos de ameaças - desde grupos de cibercrime até APTs patrocinados por estados. A técnica permite que código malicioso evite detecção por antivírus baseado em assinaturas estáticas, dificulte a engenharia reversa, oculte indicadores de comprometimento (IoCs) e complique a análise de respostas a incidentes. A ofuscação pode ser aplicada em múltiplas camadas da cadeia de ataque: no payload inicial, em comúnicações C2, em scripts de pós-exploração e em arquivos de persistência. **Sub-técnicas do T1027:** | ID | Nome | Descrição resumida | |----|------|--------------------| | T1027.001 | Binary Padding | Inflação de tamanho do binário para ultrapassar limites de análise de sandbox | | T1027.002 | Software Packing | Empacotamento de executáveis com packers (UPX, custom) | | T1027.003 | Steganography | Dados ocultos em imagens, áudio ou outros arquivos | | T1027.004 | Compile After Delivery | Código-fonte entregue e compilado no alvo | | T1027.005 | Indicator Removal from Tools | Remoção de strings e metadados de ferramentas de ataque | | T1027.006 | HTML Smuggling | Payloads embutidos em HTML/JavaScript entregues via browser | | T1027.007 | Dynamic API Resolution | Resolução dinâmica de APIs de sistema em tempo de execução | | T1027.009 | Embedded Payloads | Payloads embutidos dentro de outros arquivos | | T1027.010 | Command Obfuscation | Ofuscação de comandos de shell (PowerShell, cmd, bash) | | T1027.011 | Fileless Storage | Armazenamento de payload em locais não-convencionais (registry, WMI) | | T1027.012 | LNK Icon Smuggling | Ocultar dados em arquivos LNK | | T1027.013 | Encrypted/Encoded File | Arquivos criptografados ou codificados entregues e decodificados em execução | **Contexto LATAM/Brasil:** Trojans bancários brasileiros como [[s0531-grandoreiro|Grandoreiro]] fazem uso extensivo de ofuscação, incluindo file bloating (inflação de tamanho para ultrapassar limites de sandbox), criptografia CTS e uso de CAPTCHA para evadir análise automatizada. A ofuscação de PowerShell via encoding Base64 é prevalente em ataques de phishing direcionados a organizações brasileiras. ## Como Funciona A ofuscação funciona interrompendo o processo de análise estática ao transformar o conteúdo malicioso em uma forma que as ferramentas de segurança não reconhecem como ameaça, mas que pode ser revertida ao estado original em tempo de execução pelo próprio malware. **Fluxo geral:** 1. **Preparação (pre-delivery):** O adversário aplica uma ou mais camadas de ofuscação ao payload: encoding (Base64, Hex, XOR), compressão (gzip, zlib), empacotamento (UPX, custom packer), criptografia simétrica (AES, ChaCha20, RC4) ou combinações desses métodos. 2. **Entrega:** O payload ofuscado é entregue ao alvo via phishing, download drive-by, supply chain ou outro vetor inicial. Por estar ofuscado, passa por soluções de gateway (email security, proxy, NGFW) sem disparar assinaturas. 3. **Execução e deofuscação:** Em tempo de execução no host comprometido, o payload se auto-decodifica, descomprime ou decripta em memória, reconstituindo o código malicioso original sem escrevê-lo em disco de forma legível. 4. **Execução da funcionalidade maliciosa:** O código reconstituído em memória executa sua função: RAT, ransomware, stealer, loader, etc. **Variantes técnicas documentadas:** - **Encoding Base64 em PowerShell:** Argumentos do PowerShell codificados via `-EncodedCommand` para contornar monitoramento de linha de comando. - **String concatenation (Invoke-Expression):** Construção dinâmica de comandos pela concatenação de fragmentos de string que individualmente não disparam assinaturas. - **XOR de payload:** Cifra XOR simples com chave de 1 byte - facilmente reversível mas suficiente para evadir assinaturas estáticas básicas. - **File bloating ([[s0531-grandoreiro|Grandoreiro]]):** Binário inflado com dados nulos ou aleatórios para ultrapassar o limite de tamanho de análise de sandboxes (geralmente 20-50 MB). - **Criptografia AES-128/ChaCha20 ([[operation-dreamjob|Operation DreamJob]]):** Loaders com payload criptografado decriptado apenas em memória durante execução. - **Protocolo customizado mascarado ([[solarwinds-supply-chain-attack|SolarWinds]]):** Tráfego C2 do [[s0559-sunburst|SUNBURST]] ofuscado como consultas DNS e tráfego OIP (protocolo legítimo), com dados de C2 codificados no subdomínio. ## Attack Flow ```mermaid graph TB A[Preparação do Payload Malicioso] --> B{Método de Ofuscação} B --> C[Encoding Base64 / Hex / XOR<br>scripts, shellcode] B --> D[Software Packing<br>UPX, custom packer] B --> E[Criptografia Simétrica<br>AES, ChaCha20, RC4] B --> F[File Bloating<br>inflação de tamanho] B --> G[Steganografia<br>payload em imagem/áudio] C --> H[Entrega ao Alvo<br>phishing, download, supply chain] D --> H E --> H F --> H G --> H H --> I[Evasão de Gateway<br>email security, proxy, NGFW] I --> J[Execução no Host Comprometido] J --> K[Deofuscação em Memória<br>decode/decrypt/unpack em runtime] K --> L[Código Malicioso Reconstituído<br>nunca escrito em disco legível] L --> M[Execução da Funcionalidade<br>RAT, Ransomware, Stealer, Loader] M --> N[Comúnicação C2 Ofuscada<br>exfil, staging, comandos] ``` ## Exemplos de Uso **APT29 / Cozy Bear - SolarWinds Supply Chain:** O [[g0016-apt29|APT29]] implementou ofuscação multicamada no [[s0559-sunburst|SUNBURST]], o backdoor usado na campanha [[solarwinds-supply-chain-attack|SolarWinds Supply Chain Attack]]. O tráfego C2 era codificado em subdomínios DNS usando um esquema customizado que imitava tráfego legítimo de telemetria. Dados de configuração sensíveis eram armazenados no registro do Windows em formato ofuscado. A sofisticação da ofuscação atrasou a análise forense por semanas após a descoberta. **Lazarus Group - Operation DreamJob:** O [[g0032-lazarus-group|Lazarus Group]] utilizou loaders com criptografia AES-128 e ChaCha20 em múltiplas camadas na campanha [[operation-dreamjob|Operation DreamJob]], visando profissionais de defesa e aeroespacial. Os payloads eram entregues como arquivos de proposta de emprego e somente decriptados em memória durante a execução, deixando zero artefatos legíveis em disco. **Grandoreiro Operators - Campanhas contra Brasil:** O [[s0531-grandoreiro|Grandoreiro Operators]] é um dos exemplos mais documentados de ofuscação direcionada ao Brasil. Na [[grandoreiro-banking-campaign|Grandoreiro Banking Campaign]], o trojan bancário utilizou: - File bloating para ultrapassar limites de tamanho de análise de sandbox (arquivos de 300+ MB) - Criptografia CTS (Ciphertext Stealing) para strings e configurações - CAPTCHA integrado ao processo de inicialização para impedir execução automatizada em sandbox - Arquivos Delphi compilados com proteção de strings **FIN7 - Campaigns de phishing com HTML Smuggling:** O [[g0046-fin7|FIN7]] utilizou HTML Smuggling (T1027.006) extensivamente para entrega de payloads JavaScript ofuscados via email, contornando inspeção de conteúdo em gateways de email corporativo. ## Sub-técnicas - [[t1027-001-binary-padding|T1027.001 - Binary Padding]] - [[t1027-002-software-packing|T1027.002 - Software Packing]] - [[t1027-003-steganography|T1027.003 - Steganography]] - [[t1027-004-compile-after-delivery|T1027.004 - Compile After Delivery]] - [[t1027-005-indicator-removal-from-tools|T1027.005 - Indicator Removal from Tools]] - [[t1027-006-html-smuggling|T1027.006 - HTML Smuggling]] - [[t1027-007-dynamic-api-resolution|T1027.007 - Dynamic API Resolution]] - [[t1027-008-stripped-payloads|T1027.008 - Stripped Payloads]] - [[t1027-009-embedded-payloads|T1027.009 - Embedded Payloads]] - [[t1027-010-command-obfuscation|T1027.010 - Command Obfuscation]] - [[t1027-011-fileless-storage|T1027.011 - Fileless Storage]] - [[t1027-012-lnk-icon-smuggling|T1027.012 - LNK Icon Smuggling]] - [[Encoded File]] - [[t1027-014-polymorphic-code|T1027.014 - Polymorphic Code]] - [[t1027-015-compression|T1027.015 - Compression]] - [[t1027-016-junk-code-insertion|T1027.016 - Junk Code Insertion]] - [[t1027-017-svg-smuggling|T1027.017 - SVG Smuggling]] ## Detecção **Fontes de dados prioritárias:** | Fonte | O Que Monitorar | Prioridade | |-------|-----------------|------------| | Script Block Logging | Conteúdo de scripts PowerShell antes/após deofuscação via AMSI | Alta | | Process Monitoring | Processos com argumentos `-EncodedCommand`, `-enc`, `FromBase64String` | Alta | | File Monitoring | Entropia alta em arquivos em diretórios temporários (entropia > 7.5 bits/byte indica packing/criptografia) | Alta | | Memory Analysis | Payloads em memória divergindo do conteúdo do arquivo em disco | Média | | Network Traffic | Tráfego com padrões de encoding (Base64 em DNS, HTTP headers incomuns) | Média | | AMSI Telemetry | Bloqueios de AMSI em scripts deofuscados | Alta | **Regra Sigma - PowerShell com encoding Base64:** ```yaml title: PowerShell com Comando Codificado Base64 status: experimental logsource: category: process_creation product: windows detection: selection: Image|endswith: - "\\powershell.exe" - "\\pwsh.exe" CommandLine|contains: - "-EncodedCommand" - " -enc " - "FromBase64String" - "[Convert]::FromBase64" - "::Únicode.GetBytes" condition: selection falsepositives: - Scripts de administração legítimos que usam encoding para transmissão de dados - Ferramentas de gestão (SCCM, Ansible) que operam via encoded commands level: high tags: - attack.defense_evasion - attack.t1027 - attack.t1027.010 ``` **Regra Sigma - Execução de payload via Invoke-Expression ofuscado:** ```yaml title: PowerShell Invoke-Expression com Concatenação Suspeita status: experimental logsource: category: process_creation product: windows detection: selection: Image|endswith: - "\\powershell.exe" - "\\pwsh.exe" CommandLine|contains: - "IEX" - "Invoke-Expression" - "Invoke-WebRequest" - "DownloadString" filter_legit: CommandLine|contains: - "chocolatey" - "NuGet" - "winget" condition: selection and not filter_legit falsepositives: - Gerenciadores de pacote (Chocolatey, winget) - Scripts de bootstrap de ambientes de desenvolvimento level: high tags: - attack.defense_evasion - attack.t1027 - attack.t1059.001 ``` **KQL (Microsoft Sentinel) - Detecção via AMSI:** ```kql // Detecção de scripts ofuscados via AMSI telemetry DeviceEvents | where ActionType == "AmsiScriptContent" | where AdditionalFields has_any ("base64", "xor", "invoke", "downloadstring", "iex", "encodedcommand") | extend DecodedContent = tostring(AdditionalFields) | project Timestamp, DeviceName, InitiatingProcessFileName, DecodedContent | order by Timestamp desc ``` **Falsos positivos conhecidos:** - Scripts de administração legítimos que usam Base64 para transmissão segura de dados - Empacotadores comerciais legítimos em instaladores de software - Ferramentas de segurança ofensiva em ambientes de red team autorizados - Pipelines de CI/CD que codificam argumentos para evitar problemas de escaping de shell ## Mitigação | ID | Mitigação | Descrição | |----|-----------|-----------| | M1049 | [[Antimalware]] | Habilitar AMSI (Antimalware Scan Interface) em todos os endpoints Windows para inspeção de scripts PowerShell, VBScript e JScript em tempo de execução - após deofuscação, antes da execução. | | M1040 | [[m1040-behavior-prevention-on-endpoint\|M1040 - Behavior Prevention on Endpoint]] | Implementar EDR com capacidade de análise comportamental. Detecções baseadas em comportamento (execução de processo suspeito, download + execução, injeção de memória) são mais eficazes que assinaturas estáticas contra payloads ofuscados. | | M1045 | [[m1045-code-signing\|M1045 - Code Signing]] | Exigir assinatura digital válida para execução de scripts e binários. Combinado com políticas de execução do PowerShell (Restricted, AllSigned), reduz a superfície de ataque para scripts ofuscados entregues via phishing. | **Recomendações práticas para Brasil/LATAM:** - Habilitar **Script Block Logging** (`HKLM\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging`) em todos os endpoints Windows para capturar conteúdo de scripts antes e após deofuscação. - Implementar **PowerShell Constrained Language Mode** em endpoints de usuários finais para bloquear recursos avançados de ofuscação. - Monitorar **entropia de arquivos** em diretórios temporários: entropia superior a 7.5 bits/byte é indicador confiável de conteúdo empacotado ou criptografado. - Adotar **EDR com inspeção de memória** para detectar payloads que nunca tocam o disco em forma legível. ## Contexto Brasil/LATAM O Brasil é um dos países com maior prevalência de trojans bancários que utilizam ofuscação avançada como mecanismo primário de evasão. As famílias brasileiras de trojans bancários como [[s0531-grandoreiro|Grandoreiro]], Mekotio, Casbaneiro e Amavaldo estão entre as mais sofisticadas do mundo em técnicas de ofuscação, especialmente: **File Bloating como estratégia anti-sandbox:** A maioria dos sandboxes automáticos impõe limite de tamanho de arquivo (tipicamente 20-50 MB). Famílias brasileiras inflariam deliberadamente seus binários com dados aleatórios para ultrapassar esse limite, forçando analistas a trabalho manual. **CAPTCHA anti-análise:** O [[s0531-grandoreiro|Grandoreiro]] introduziu CAPTCHA integrado ao fluxo de inicialização - o malware só avança para a fase maliciosa se um humano resolver o desafio, bloqueando execução em sandboxes automatizadas. **Ofuscação de Delphi:** A maioria dos trojans bancários brasileiros é desenvolvida em Delphi, com ofuscação de strings nativa que difere dos patterns de PowerShell/C# que ferramentas de detecção tipicamente monitoram. **Impacto nos setores:** - [[financial|Setor financeiro]] - alvo primário de trojans bancários com ofuscação avançada - [[government|Governo]] - campanhas de espionagem com ofuscação multicamada via grupos como [[g0016-apt29|APT29]] e APTs regionais - [[technology|Setor de tecnologia]] - alvo de grupos como [[g0032-lazarus-group|Lazarus Group]] com loaders criptografados ## Referências - [[t1059-001-powershell|T1059.001 - PowerShell]] - técnica frequentemente combinada com T1027 - [[Decode Files or Information]] - técnica inversa de deofuscação - [[t1071-001-web-protocols|T1071.001 - Web Protocols]] - comunicação C2 frequentemente ofuscada - [[Antimalware]] - AMSI como mitigação principal - [[m1040-behavior-prevention-on-endpoint|M1040 - Behavior Prevention on Endpoint]] - EDR comportamental - [[s0559-sunburst|SUNBURST]] - malware que implementou ofuscação sofisticada de C2 - [[s0531-grandoreiro|Grandoreiro]] - exemplo paradigmático de ofuscação direcionada ao Brasil - [[g0016-apt29|Cozy Bear]] - uso de ofuscação em operações de espionagem de alto nível *Fonte: MITRE ATT&CK - T1027*