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