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