# T1497 - Virtualization/Sandbox Evasion ## Sub-técnicas - [[t1497-001-system-checks|T1497.001 - System Checks]] - [[t1497-002-user-activity-based-checks|T1497.002 - User Activity Based Checks]] - [[t1497-003-time-based-checks|T1497.003 - Time Based Checks]] ## Descrição **T1497** descreve um conjunto de técnicas utilizadas por adversários para **detectar ambientes de análise automatizados** - como sandboxes, máquinas virtuais e sistemas de análise dinâmica - e, ao identificá-los, alterar ou interromper seu comportamento malicioso. O objetivo central é frustrar a análise de segurança e preservar as capacidades reais do malware para quando ele for executado em um sistema alvo genuíno, garantindo que ferramentas de detecção baseadas em comportamento dinâmico não consigam observar as ações verdadeiramente prejudiciais. Na prática, um implante que detecte estar rodando dentro do [[vmware|VMware]], [[virtualbox|VirtualBox]], [[hyper-v|Hyper-V]] ou em uma sandbox como a [[any-run|Any.run]] ou [[cuckoo-sandbox|Cuckoo]] pode simplesmente encerrar sua própria execução, aguardar indefidamente ou executar apenas funcionalidades benignas. Isso resulta em um relatório de análise vazio ou inofensivo, levando o produto de segurança a classificar o arquivo como legítimo. O [[g0032-lazarus-group|Lazarus Group]] é um dos grupos mais conhecidos por incluir rotinas extensas de anti-análise em seus implantes, verificando dezenas de indicadores em sequência antes de prosseguir com o payload principal, como documentado em amostras da [[operation-dreamjob|Operation DreamJob]]. A relevância desta técnica vai além da evasão de sandbox: adversários também a utilizam para evitar execução em ambientes de análise forense pós-incidente e para identificar se estão sendo monitorados por analistas. Quando combinada com técnicas como [[t1027-obfuscated-files|T1027 - Obfuscated Files]] e [[t1055-process-injection|T1055 - Process Injection]], a evasão de virtualização compõe uma cadeia robusta de anti-análise que torna a detecção consideravelmente mais difícil. ## Como Funciona A técnica opera em três grandes eixos de verificação: **1. Verificações de sistema (T1497.001):** O malware consulta indicadores estáticos que denunciam a presença de um hipervisor ou sandbox. Exemplos incluem: processos como `vmtoolsd.exe`, `vboxservice.exe` ou `sandbox.exe` em execução; chaves de registro específicas de VMware/VirtualBox; drivers virtuais como `VMMOUSE.SYS`; endereços MAC com prefixos reservados para VMs (ex: `00:0C:29` para VMware); CPUID com campos que indicam virtualização; e tamanho reduzido de disco (sandboxes frequentemente usam discos de 20-40 GB sem particionamento típico de produção). **2. Verificações de atividade do usuário (T1497.002):** Ambientes de análise tendem a carecer de sinais de uso humano real. O malware verifica: número de arquivos no diretório do usuário (`Documents`, `Downloads`, `Desktop`); histórico de navegação vazio; lista de contatos de e-mail vazia; ausência de software comum (Microsoft Office aberto, Spotify, etc.); resolução de tela atípica (800×600 ou 1024×768 sem escala); tempo de uptime muito baixo (sistema acabou de ser inicializado); e ausência de movimento de mouse ou eventos de teclado recentes. **3. Evasão por tempo (T1497.003):** O malware simplesmente aguarda - dormindo por períodos de 5, 10 ou até 30 minutos - antes de executar qualquer comportamento malicioso. Sandboxes com jánelas de análise curtas (tipicamente 2-5 minutos) encerram a análise sem observar atividade maliciosa. Variantes mais sofisticadas usam operações matemáticas computacionalmente intensas como substituto do `Sleep()`, pois funções de sleep são frequentemente aceleradas por sandboxes para reduzir o tempo de análise. ## Attack Flow ```mermaid graph TB A[Malware executado no alvo] --> B{Verificações de ambiente} B --> C[Verifica processos VM<br/>vmtoolsd.exe, vboxservice.exe] B --> D[Verifica artefatos de registro<br/>HKLM\SOFTWARE\VMware Inc.] B --> E[Verifica atividade humana<br/>arquivos, histórico, uptime] B --> F[Verifica tempo de execução<br/>Sleep / loop matemático] C --> G{Ambiente detectado?} D --> G E --> G F --> G G -->|SIM - ambiente de análise| H[Encerra execução<br/>ou comportamento benigno] G -->|NÃO - sistema real| I[Executa payload malicioso] I --> J[Persistência estabelecida] I --> K[Exfiltração de dados] I --> L[Movimento lateral] H --> M[Sandbox reporta: benigno] M --> N[Produto de segurança libera arquivo] ``` ## Exemplos de Uso **Lazarus Group / [[operation-dreamjob|Operation DreamJob]]:** Implantes do [[g0032-lazarus-group|Lazarus Group]] analisados pela Mandiant e ESET incluem rotinas que verificam mais de 30 indicadores de virtualização antes de executar o payload. Em campanhas direcionadas ao setor de defesa e aeroespacial, amostras aguardavam até 30 minutos em sleep antes de qualquer atividade de rede. **[[g0096-apt41|APT41]]:** O grupo chinês utiliza verificações de CPUID e consultas WMI para detectar hipervisores. Seus loaders verificam `Win32_ComputerSystem.Manufacturer` via WMI - se retornar `VMware, Inc.` ou `innotek GmbH` (VirtualBox), o processo é encerrado silenciosamente. **[[s0266-trickbot|TrickBot]]:** O banking trojan implementa verificações de resolução de tela e número de processos em execução. Em sistemas com menos de 50 processos ativos ou resolução abaixo de 800×600, o módulo principal não é carregado, retornando apenas telemetria de sistema benigna. **[[s0367-emotet|Emotet]]:** Utiliza evasão temporal combinada com verificações de atividade de mouse. Amostras registraram técnicas de "aceleração de sleep" para contornar sandboxes que aceleram chamadas de tempo, usando loops de cálculo de hash como alternativa. **[[s0650-qakbot|QakBot]]:** Implementa verificações de domínio de Active Directory - se o sistema não está ingressado em um domínio corporativo real, o payload bancário não é ativado, dificultando análise em ambientes de laboratório isolados. ## Detecção A detecção direta de T1497 é desafiadora porque as verificações em si são difíceis de distinguir de comportamento legítimo. A abordagem mais eficaz é comportamental e ambiental: ```yaml title: Detecção de Evasão de Virtualização - Consultas WMI Suspeitas status: experimental logsource: category: process_creation product: windows detection: selection_wmi: Image|endswith: - '\wmic.exe' - '\powershell.exe' CommandLine|contains: - 'Win32_ComputerSystem' - 'Win32_BIOS' - 'Win32_VideoController' - 'Manufacturer' selection_vm_keywords: CommandLine|contains: - 'VMware' - 'VirtualBox' - 'innotek' - 'QEMU' - 'Hyper-V' condition: selection_wmi and selection_vm_keywords level: medium tags: - attack.defense_evasion - attack.t1497.001 ``` ```yaml title: Detecção de Verificação de Processos de VM status: experimental logsource: category: process_creation product: windows detection: selection: Image|endswith: '\tasklist.exe' CommandLine|contains: - 'vmtoolsd' - 'vboxservice' - 'vboxtray' - 'wireshark' - 'procmon' - 'fiddler' condition: selection level: medium tags: - attack.defense_evasion - attack.t1497.001 ``` **Estrategias adicionais de detecção:** - Monitorar consultas de registro a caminhos associados a VMs (`HKLM\SOFTWARE\VMware Inc.`, `HKLM\SYSTEM\CurrentControlSet\Services\VBoxSF`) - Detectar processos que dormem por períodos incomumente longos logo após a inicialização - Usar sandboxes bare-metal (hardware físico dedicado) para eliminar artefatos de virtualização - Comparar comportamento de amostras em múltiplos ambientes com configurações diferentes ## Mitigação | ID | Mitigação | Descrição | |----|-----------|-----------| | M1049 | Antivirus/Antimalware | Usar soluções com análise comportamental que não dependem exclusivamente de sandbox dinâmica - combinar com análise estática e reputação | | M1040 | Behavior Prevention on Endpoint | Plataformas de EDR que detectam padrões de anti-análise independentemente do ambiente de execução | | - | Hardening de Sandbox | Usar sandboxes bare-metal; simular atividade humana real (mouse, teclado, arquivos); configurar software comum (Office, navegador com histórico) | | - | Análise Híbrida | Combinar sandbox dinâmica com análise estática (YARA, heurísticas) e inteligência de reputação para não depender exclusivamente do comportamento observado em análise | | - | Ambiente Realista | Ingressar a VM em um domínio AD simulado; usar discos com dados reais de usuário; configurar resolução de tela padrão corporativo | ## Contexto Brasil/LATAM A evasão de virtualização tem impacto direto na eficácia de produtos de segurança amplamente utilizados no Brasil. Soluções de e-mail security e gateways web que dependem de sandbox para análise de anexos são específicamente contornadas por malwares que implementam T1497 - permitindo que [[banking-trojans-brasil|trojans bancários brasileiros]] como o Guildma/Grandoreiro cheguem às caixas de entrada de funcionários corporativos mesmo após passarem por análise dinâmica. O ecossistema de malware bancário brasileiro, que historicamente é um dos mais sofisticados do mundo, incorporou verificações de anti-análise desde meados dos anos 2010. Grupos por trás de trojans como o [[s0531-grandoreiro|Grandoreiro]] e o [[mekotio|Mekotio]] utilizam verificações de idioma do sistema (se o sistema não está configurado em Português do Brasil ou Espanhol, o malware não executa), combinando evasão de sandbox com segmentação geográfica. Essa característica dupla torna a análise em laboratórios internacionais particularmente ineficaz. Para organizações no Brasil, a mitigação mais eficaz é o uso de múltiplas camadas de análise - não depender exclusivamente de sandbox - e manter feeds de inteligência de ameaças que cubram o ecossistema de malware latino-americano, como os produzidos pelo [[sources|CERT.br]] e por pesquisadores regionais. ## Referências - [[g0032-lazarus-group|Lazarus Group]] - [[g0096-apt41|APT41]] - [[operation-dreamjob|Operation DreamJob]] - [[t1027-obfuscated-files|T1027 - Obfuscated Files or Information]] - [[t1055-process-injection|T1055 - Process Injection]] - [[t1497-001-system-checks|T1497.001 - System Checks]] - [[t1497-002-user-activity-based-checks|T1497.002 - User Activity Based Checks]] - [[t1497-003-time-based-evasion|T1497.003 - Time Based Evasion]] - [[s0531-grandoreiro|Grandoreiro]] - [[sources|CERT.br]] *Fonte: MITRE ATT&CK - T1497*