# T1497.003 - Time Based Checks ## Técnica Pai Esta é uma sub-técnica de [[Sandbox Evasion]]. ## Descrição Adversários utilizam verificações baseadas em tempo como mecanismo para detectar ambientes de análise, sandboxes e máquinas virtuais antes de executar sua carga maliciosa principal. A lógica subjacente é simples: ambientes de sandboxing frequentemente manipulam o tempo do sistema para simular a passagem de horas ou dias em segundos - acelerando artificialmente a execução para capturar comportamentos maliciosos que dependem de atrasos. Ao medir o tempo real decorrido após uma instrução `sleep`, o malware pode detectar essa aceleração e interromper a execução. As chamadas de API mais comuns nessa técnica incluem `GetTickCount`, `GetSystemTimeAsFileTime`, `QueryPerformanceCounter` e `timeGetTime` no Windows. O malware registra o timestamp antes de uma função de espera, dorme por um intervalo determinado e compara o timestamp após a espera. Se a diferença for significativamente menor do que o esperado, conclui que está sendo analisado e encerra ou altera seu comportamento. Variações mais sofisticadas utilizam loops de instruções de alto custo computacional, como operações de criptografia, cujo tempo de execução é previsível em hardware real mas distorcido em VMs. **Contexto Brasil/LATAM:** Famílias de malware amplamente distribuídas na América Latina - incluindo bankers brasileiros como [[s0386-ursnif|Ursnif]] e ransomwares como [[clop|Clop]] - incorporam verificações temporais como primeira camada de anti-análise. Equipes de resposta a incidentes brasileiras relatam que amostras coletadas em campanhas direcionadas a bancos e fintechs nacionais frequentemente ficam inativas por longos períodos após a infecção inicial, dificultando a análise dinâmica em ambientes de sandbox com tempo de execução limitado. Isso exige que analistas de [[_sectors|setores]] financeiros utilizem sandboxes com execução prolongada e técnicas de patch de API de tempo para contornar a evasão. ## Attack Flow ```mermaid graph TB A[Entrega do Payload] --> B[Verificação de Tempo] B --> C{Sandbox\nDetectada?} C -->|Sim| D[Encerrar / Comportamento Benigno] C -->|Não| E[Execução Maliciosa] style B fill:#e74c3c,color:#fff ``` ## Como Funciona ### 1. Preparação O adversário instrumenta o malware com chamadas de API de tempo antes e depois de uma instrução `sleep` ou loop computacionalmente intenso. O intervalo esperado é codificado diretamente no binário (ex: espera de 30 segundos deve resultar em delta de ~30.000 ms via `GetTickCount`). Em alguns casos, o malware usa uma sequência de múltiplas verificações para aumentar a confiança na detecção do ambiente. ### 2. Execução Na inicialização, o malware captura o timestamp T1, executa `Sleep(30000)` (ou equivalente), captura T2 e calcula `delta = T2 - T1`. Se `delta < threshold` (ex: menos de 20.000 ms quando 30.000 eram esperados), interpreta como aceleração de sandbox. Variações usam loops de criptografia como AES ou hashing, cujo tempo de execução em hardware físico é consistente e previsível, mas acelerado em ambientes instrumentados. ### 3. Pós-execução Se sandbox não for detectada, o malware prossegue com seu payload principal - descriptografia de segunda etapa, contato com C2, ou início de movimentação lateral. Se sandbox for detectada, pode encerrar silenciosamente (`ExitProcess`), simular comportamento benigno, ou aguardar tempo adicional antes de tentar novamente (técnica chamada de "time-bomb" escalonada). ## Detecção ### Event IDs Relevantes | Fonte | Event ID | Descrição | |-------|----------|-----------| | Windows Security | 4688 | Criação de processo - monitorar argumentos suspeitos combinados com baixa utilização de CPU após início | | Sysmon | 1 | Process Creaté - identificar processos com tempo de vida longo mas sem atividade de rede | | Sysmon | 8 | CreateRemoteThread - injeção após atraso temporal | | ETW / WMI | - | Chamadas repetidas a `NtQuerySystemTime`, `NtDelayExecution` via ETW consumer | ### Sigma Rule ```yaml title: Suspicious Time-Based Sandbox Evasion via Sleep Loop id: b3f7c2a1-4e89-4d1f-9a3b-2c6d8e0f1a5b status: experimental description: > Detecta processos que chamam funções de temporização do sistema imediatamente antes e após uma instrução de sleep, padrão consistente com anti-sandbox baseado em tempo (T1497.003). author: RunkIntel daté: 2026-03-24 logsource: category: process_access product: windows detection: selection: TargetObject|contains: - 'GetTickCount' - 'QueryPerformanceCounter' - 'NtDelayExecution' - 'timeGetTime' timeframe: 60s condition: selection | count() > 3 falsepositives: - Aplicações legítimas de benchmark ou monitoramento de performance level: medium tags: - attack.defense_evasion - attack.t1497.003 ``` ## Mitigação | Controle | Ação Recomendada | Relevância para Orgs Brasileiras | |----------|-----------------|----------------------------------| | Patch de API de Tempo | Instrumentar sandboxes para retornar valores de tempo reais, sem aceleração | Essencial para laboratórios de análise de malware em bancos e CERTs | | Execução Prolongada | Configurar sandbox para executar amostras por 5-10 minutos, não 2-3 | Supera malwares com atraso inicial longo antes de ativação | | Detonação com Data Específica | Ajustar clock do sandbox para datas futuras previstas (ex: feriados bancários) | Útil contra time-bombs que ativam em datas específicas (Carnaval, Black Friday) | | Monitoramento de API via ETW | Capturar chamadas a `NtQuerySystemTime` e `NtDelayExecution` via Event Tracing | Implementável em SOCs com Elastic ou Splunk sem custo adicional de licença | | Threat Hunting Proativo | Buscar processos com tempo de vida > 5 min sem atividade de rede ou disco | Filtra amostras que "dormem" esperando análise terminar | ## Threat Actors Esta técnica não possui atribuição direta a grupos específicos no MITRE ATT&CK para esta sub-técnica, porém é amplamente documentada no contexto do [[software-associado|software associado]] abaixo. Grupos que operam malware financeiro e ransomware - incluindo operadores de [[clop|Clop]] e atores de ameaça que visam o [[_sectors|setor financeiro]] do Brasil - incorporam verificações temporais em suas ferramentas para maximizar a taxa de infecção em ambientes corporativos reais. ## Software Associado - [[s0565-raindrop|Raindrop]] - loader do grupo [[g0016-apt29|APT29]] que usa verificações de tempo para atrasar execução e evitar sandboxes de análise rápida - [[s0626-p8rat|P8RAT]] - RAT com anti-análise temporal usado em campanhas de espionagem na região Ásia-Pacífico - [[s0559-sunburst|SUNBURST]] - backdoor da operação SolarWinds que esperava até 14 dias após infecção antes de contato C2, técnica clássica de time-based evasion - [[s0574-bendybear|BendyBear]] - implante avançado com polimorfismo e verificações temporais para dificultar análise estática e dinâmica - [[s0554-egregor|Egregor]] - ransomware que incorpora delay antes de criptografia para evadir sandboxes corporativos - [[clop|Clop]] - ransomware com histórico de ataques a organizações no Brasil, usa verificações de uptime e tempo de sistema - [[s0627-sodamaster|SodaMaster]] - malware de espionagem que verifica uptime do sistema antes de iniciar beacon C2 - [[s0660-clambling|Clambling]] - backdoor com anti-análise temporal usado em campanhas APT direcionadas - [[s0386-ursnif|Ursnif]] - banker com ampla presença no Brasil que implementa delays e verificações de tempo como primeira camada de evasão - [[s0439-okrum|Okrum]] - implante com verificação de ambiente via uptime e outros indicadores temporais --- *Fonte: [MITRE ATT&CK - T1497.003](https://attack.mitre.org/techniques/T1497/003)*