Cross-source coverage
T1497.001 / ATT&CK
Virtualization/Sandbox Evasion: System Checks
From MITRE ATT&CK 19.2
Adversaries may employ various system checks to detect and avoid virtualization and analysis environments. This may include changing behaviors based on the results of checks for the presence of artifacts indicative of a virtual machine environment (VME) or sandbox. If the adversary detects a VME, they may alter their malware to disengage from the victim or conceal the core functions of the implant. They may also search for VME artifacts before dropping secondary or additional payloads. Adversaries may use the information learned from Virtualization/Sandbox Evasion during automated discovery to shape follow-on behaviors.
Specific checks will vary based on the target and/or adversary, but may involve behaviors such as Windows Management Instrumentation, PowerShell, System Information Discovery, and Query Registry to obtain system information and search for VME artifacts. Adversaries may search for VME artifacts in memory, processes, file system, hardware, and/or the Registry. Adversaries may use scripting to automate these checks into one script and then have the program exit if it determines the system to be a virtual environment.
Checks could include generic system properties such as host/domain name and samples of network traffic. Adversaries may also check the network adapters addresses, CPU core count, and available memory/drive size. Once executed, malware may also use File and Directory Discovery to check if it was saved in a folder or file with unexpected or even analysis-related naming artifacts such as malware, sample, or hash.
Other common checks may enumerate services running that are unique to these applications, installed programs on the system, manufacturer/product fields for strings relating to virtual machine applications, and VME-specific hardware/processor instructions. In applications like VMWare, adversaries can also use a special I/O port to send commands and receive output.
Hardware checks, such as the presence of the fan, temperature, and audio devices, could also be used to gather evidence that can be indicative a virtual environment. Adversaries may also query for specific readings from these devices.
- Platforms
- Linux · macOS · Windows
- Telemetry
-
WinEventLog:Sysmonauditd:SYSCALLmacos:unifiedlog
How MITRE says to detect it DET0168
Virtualization/Sandbox Evasion via System Checks across Windows, Linux, macOS
Windows Analytic 0478
Script or binary performs a rapid sequence of system discovery checks (e.g., CPU count, RAM size, registry keys, running processes) indicative of VM detection
WinEventLog:SysmonEventCode=1WinEventLog:SysmonEventCode=7WinEventLog:SysmonEventCode=10
Linux Analytic 0479
Shell script or binary uses multiple system commands (e.g., dmidecode, lscpu, lspci) in quick succession to detect virtualization environment
auditd:SYSCALLexecve of system tools like dmidecode, lspci, lscpu, dmesg, systemd-detect-virt
macOS Analytic 0480
Bash, Swift, or Objective-C programs enumerate system profile, I/O registry, or inspect kernel extensions to identify VM artifacts
macos:unifiedlogexec or spawn of 'system_profiler', 'ioreg', 'kextstat', 'sysctl', or calls to sysctl API
SigmaHQ/sigma
3 rules| Detection | Severity | Format |
|---|---|---|
| Powershell Detect Virtualization Environment | Medium | Sigma |
| System Information Discovery Using System_Profiler | Medium | Sigma |
| System Information Discovery Via Sysctl - MacOS | Medium | Sigma |
elastic/detection-rules
3 rules| Detection | Severity | Format |
|---|---|---|
| Virtual Machine Fingerprinting | High | Elastic TOML |
| Suspicious SIP Check by macOS Application | Medium | Elastic TOML |
| Virtual Machine Fingerprinting via Grep | Medium | Elastic TOML |
chainguard-dev/osquery-defense-kit
2 rules| Detection | Severity | Format |
|---|---|---|
| Unexpected calls to macOS system utilities (event-based) | Undefined | osquery SQL |
| Unexpected calls to system utilities (event-based) | Undefined | osquery SQL |
socfortress/Wazuh-Rules
2 rules · 1 family| Detection | Severity | Format |
|---|---|---|
| Virtualization detection command executed: systemd-detect-virt 2 variants | High | Wazuh XML |
| Virtualization detection command executed: systemd-detect-virt 2 variants | High | Wazuh XML |
elastic/protections-artifacts
1 rule| Detection | Severity | Format |
|---|---|---|
| Potential Virtual Machine Fingerprinting via VMDetect | Undefined | Elastic TOML |