T1497.003 Sumo Logic CSE · Sumo

Detect Time Based Checks in Sumo Logic CSE

Adversaries may employ various time-based methods to detect virtualization and analysis environments, particularly those that attempt to manipulate time mechanisms to simulate longer elapses of time. This includes using GetTickCount and GetSystemTimeAsFileTime to detect time acceleration in sandboxes, implementing long sleep delays (minutes to hours) to outlast sandbox analysis timeouts, checking system uptime to verify the machine has been running for a reasonable period, computing execution timing differences before and after sleep to detect sandbox time manipulation, and using API hammering (excessive printf or I/O calls) to delay execution. Notable examples include SUNBURST (2-week dormancy), Ursnif (30-minute delay), Bumblebee (hardcoded and randomized sleep intervals), and TrickBot (printf-based API hammering).

MITRE ATT&CK

Tactic
Defense Evasion Discovery
Technique
T1497 Virtualization/Sandbox Evasion
Sub-technique
T1497.003 Time Based Checks
Canonical reference
https://attack.mitre.org/techniques/T1497/003/

Sumo Detection Query

Sumo Logic CSE (Sumo)
sql
_sourceCategory=*windows* OR _sourceCategory=*sysmon*
| parse regex "(?i)<Data Name='EventID'>(?<event_id>\d+)</Data>" nodrop
| parse regex "(?i)<Data Name='CommandLine'>(?<command_line>[^<]+)</Data>" nodrop
| parse regex "(?i)<Data Name='Image'>(?<image>[^<]+)</Data>" nodrop
| parse regex "(?i)<Data Name='ParentImage'>(?<parent_image>[^<]+)</Data>" nodrop
| parse regex "(?i)<Data Name='User'>(?<user>[^<]+)</Data>" nodrop
| where event_id = "1"
| eval timing_api = if(command_line matches /(?i)(gettickcount|getsystemtimeasfiletime|queryperformancecounter|ntquerysystemtime|timegettime|getsystemtime)/, 1, 0)
| eval long_timeout = if(image matches /(?i)\\timeout\.exe$/ AND command_line matches /\/t\s+\d{3,}/, 1, 0)
| eval long_ping_sleep = if(image matches /(?i)\\ping\.exe$/ AND command_line matches /-n\s+\d{3,}\s+127\.0\.0\.1/, 1, 0)
| eval script_sleep = if(command_line matches /(?i)(start-sleep|wscript\.sleep|thread\.sleep)/, 1, 0)
| eval uptime_query = if(command_line matches /(?i)(lastbootuptime|boot time|net statistics)/, 1, 0)
| eval suspicion_score = (timing_api * 2) + (long_timeout * 2) + (long_ping_sleep * 2) + script_sleep + uptime_query
| where suspicion_score > 0
| fields _messagetime, _sourcehost, user, image, command_line, parent_image, timing_api, long_timeout, long_ping_sleep, script_sleep, uptime_query, suspicion_score
| sort by _messagetime desc
medium severity medium confidence

Sumo Logic query detecting T1497.003 time-based evasion from Sysmon EventID 1 (Process Create) events ingested as Windows XML event log data. Parses raw XML to extract process fields, then applies scored detection logic for timing APIs, long sleep delays, scripting sleep calls, and uptime enumeration. Requires Sysmon deployed with process creation logging enabled.

Data Sources

Windows Sysmon EventID 1 (Process Create) via Sumo Logic Installed CollectorWindows Event Log via Sumo Logic Windows Event Log Source

Required Tables

_sourceCategory=*sysmon*_sourceCategory=*windows*

False Positives & Tuning

  • Help desk runbooks querying lastbootuptime to diagnose boot-related issues submitted through ticketing automation
  • Monitoring agents (Zabbix, Nagios NRPE) executing net statistics to collect uptime metrics on scheduled intervals
  • PowerShell-based health check scripts in containerized or VM environments using Start-Sleep between readiness probe attempts
Download portable Sigma rule (.yml)

Other platforms for T1497.003


Testing Methodology

Validate this detection against 3 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.

  1. Test 1Extended timeout delay for sandbox evasion

    Expected signal: Sysmon Event ID 1: Process Create for timeout.exe with '/t 180' argument. The process will be visible in task list for the duration of the delay. Security Event ID 4688 with command line.

  2. Test 2Ping-based sleep for sandbox evasion

    Expected signal: Sysmon Event ID 1: Process Create for ping.exe with '-n 300 127.0.0.1' arguments. Sysmon Event ID 3: Network Connection events to 127.0.0.1 (loopback).

  3. Test 3WMI uptime check for sandbox detection

    Expected signal: Sysmon Event ID 1: Process Create for wmic.exe with 'os get lastbootuptime' arguments. WMI Operational log entry for Win32_OperatingSystem query.

Unlock Pro Content

Get the full detection package for T1497.003 including response playbook, investigation guide, and atomic red team tests.

Response PlaybookInvestigation GuideHunting QueriesAtomic Red Team TestsTuning Guidance

Related Detections