ID | Name |
---|---|
T1497.001 | System Checks |
T1497.002 | User Activity Based Checks |
T1497.003 | Time Based Evasion |
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.[1]
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.[2] 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.[3]
ID | Name | Description |
---|---|---|
S0373 | Astaroth |
Astaroth can check for Windows product ID's used by sandboxes and usernames and disk serial numbers associated with analyst environments.[4] |
S1087 | AsyncRAT |
AsyncRAT can identify strings such as Virtual, vmware, or VirtualBox to detect virtualized environments.[5] |
S0438 | Attor |
Attor can detect whether it is executed in some virtualized or emulated environment by searching for specific artifacts, such as communication with I/O ports and using VM-specific instructions.[6] |
S0337 | BadPatch |
BadPatch attempts to detect if it is being run in a Virtual Machine (VM) using a WMI query for disk drive name, BIOS, and motherboard information. [7] |
S1070 | Black Basta |
Black Basta can check system flags and libraries, process timing, and API's to detect code emulation or sandboxing.[8][9] |
S0657 | BLUELIGHT |
BLUELIGHT can check to see if the infected machine has VM tools running.[10] |
S1039 | Bumblebee |
Bumblebee has the ability to search for designated file paths and Registry keys that indicate a virtualized environment from multiple products.[11] |
S0527 | CSPY Downloader |
CSPY Downloader can search loaded modules, PEB structure, file paths, Registry keys, and memory to determine if it is being debugged or running in a virtual environment.[12] |
S1111 | DarkGate |
DarkGate queries system resources on an infected machine to identify if it is executing in a sandbox or virtualized environment.[13] |
G0012 | Darkhotel |
Darkhotel malware has used a series of checks to determine if it's being analyzed; checks include the length of executable names, if a filename ends with |
S1066 | DarkTortilla |
DarkTortilla can search a compromised system's running processes and services to detect Hyper-V, QEMU, Virtual PC, Virtual Box, and VMware, as well as Sandboxie.[16] |
S0354 | Denis |
Denis ran multiple system checks, looking for processor and register characteristics, to evade emulation and analysis.[17] |
S1159 | DUSTTRAP |
DUSTTRAP decryption relies on the infected machine's |
S0024 | Dyre |
Dyre can detect sandbox analysis environments by inspecting the process list and Registry.[19][20] |
S0396 | EvilBunny |
EvilBunny's dropper has checked the number of processes and the length and strings of its own file name to identify if the malware is in a sandbox environment.[21] |
G0120 | Evilnum |
Evilnum has used a component called TerraLoader to check certain hardware and file information to detect sandboxed environments. [22] |
S0679 | Ferocious |
Ferocious can run anti-sandbox checks using the Microsoft Excel 4.0 function |
S0182 | FinFisher |
FinFisher obtains the hardware device list and checks if the MD5 of the vendor ID is equal to a predefined list in order to check for sandbox/virtualized environments.[24] |
C0001 | Frankenstein |
During Frankenstein, the threat actors used a script that ran WMI queries to check if a VM or sandbox was running, including VMWare and Virtualbox. The script would also call WMI to determine the number of cores allocated to the system; if less than two the script would stop execution.[25] |
S0588 | GoldMax |
GoldMax will check if it is being run in a virtualized environment by comparing the collected MAC address to |
S0531 | Grandoreiro |
Grandoreiro can detect VMWare via its I/O port and Virtual PC via the |
S0237 | GravityRAT |
GravityRAT uses WMI to check the BIOS and manufacturer information for strings like "VMWare", "Virtual", and "XEN" and another WMI request to get the current temperature of the hardware to determine if it's a virtual machine environment. [29] |
S0561 | GuLoader |
GuLoader has the ability to perform anti-VM and anti-sandbox checks using string hashing, the API call |
S0260 | InvisiMole |
InvisiMole can check for artifacts of VirtualBox, Virtual PC and VMware environment, and terminate itself if they are detected.[31] |
S1160 | Latrodectus |
Latrodectus can determine if it is running in a virtualized environment by checking the OS version, checking the number of running processes, ensuring a 64-bit application is running on a 64-bit host, and checking if the host has a valid MAC address.[32][33][34] |
S0532 | Lucifer |
Lucifer can check for specific usernames, computer names, device drivers, DLL's, and virtual devices associated with sandboxed environments and can enter an infinite loop and stop itself if any are detected.[35] |
S1048 | macOS.OSAMiner |
macOS.OSAMiner can parse the output of the native |
S0576 | MegaCortex |
MegaCortex has checked the number of CPUs in the system to avoid being run in a sandbox or emulator.[37] |
S1122 | Mispadu |
Mispadu can run checks to verify if it is running within a virtualized environments including Hyper-V, VirtualBox or VMWare and will terminate execution if the computer name is "JOHN-PC."[38][39] |
S0637 | NativeZone |
NativeZone has checked if Vmware or VirtualBox VM is running on a compromised host.[40] |
S1147 | Nightdoor |
Nightdoor embeds code from the public |
S0644 | ObliqueRAT |
ObliqueRAT can halt execution if it identifies processes belonging to virtual machine software or analysis tools.[42] |
G0049 | OilRig |
OilRig has used macros to verify if a mouse is connected to a compromised machine.[43] |
S0439 | Okrum |
Okrum's loader can check the amount of physical memory and terminates itself if the host has less than 1.5 Gigabytes of physical memory in total.[44] |
S0264 | OopsIE |
OopsIE performs several anti-VM and sandbox checks on the victim's machine. One technique the group has used was to perform a WMI query |
C0022 | Operation Dream Job |
During Operation Dream Job, Lazarus Group used tools that conducted a variety of system checks to detect sandboxes or VMware services.[45] |
S0352 | OSX_OCEANLOTUS.D |
OSX_OCEANLOTUS.D checks a number of system parameters to see if it is being run on real hardware or in a virtual machine environment, such as |
S0626 | P8RAT |
P8RAT can check the compromised host for processes associated with VMware or VirtualBox environments.[49] |
S1145 | Pikabot |
Pikabot performs a variety of system checks to determine if it is running in an analysis environment or sandbox, such as checking the number of processors (must be greater than two), and the amount of RAM (must be greater than 2GB).[50] |
S0013 | PlugX |
PlugX checks if VMware tools is running in the background by searching for any process named "vmtoolsd".[51] |
S0428 | PoetRAT |
PoetRAT checked the size of the hard drive to determine if it was being run in a sandbox environment. In the event of sandbox detection, it would delete itself by overwriting the malware scripts with the contents of "License.txt" and exiting.[52] |
S0192 | Pupy |
Pupy has a module that checks a number of indicators on the system to determine if its running on a virtual machine.[53] |
S0650 | QakBot |
QakBot can check the compromised host for the presence of multiple executables associated with analysis tools and halt execution if any are found.[54][55] |
S1130 | Raspberry Robin |
Raspberry Robin performs a variety of system environment checks to determine if it is running in a virtualized or sandboxed environment, such as querying CPU temperature information and network card MAC address information.[56] |
S0332 | Remcos | |
S0270 | RogueRobin |
RogueRobin uses WMI to check BIOS version for VBOX, bochs, qemu, virtualbox, and vm to check for evidence that the script might be executing within an analysis environment. [58][59] |
S0240 | ROKRAT |
ROKRAT can check for VMware-related files and DLLs related to sandboxes.[60][61][62] |
S1018 | Saint Bot |
Saint Bot has run several virtual machine and sandbox checks, including checking if |
S1019 | Shark |
Shark can stop execution if the screen width of the targeted machine is not over 600 pixels.[64] |
S0226 | Smoke Loader |
Smoke Loader scans processes to perform anti-VM checks. [65] |
S1086 | Snip3 |
Snip3 has the ability to detect Windows Sandbox, VMWare, or VirtualBox by querying |
S0627 | SodaMaster |
SodaMaster can check for the presence of the Registry key |
S0559 | SUNBURST |
SUNBURST checked the domain name of the compromised host to verify it was running in a real environment.[67] |
S1064 | SVCReady |
SVCReady has the ability to determine if its runtime environment is virtualized.[68] |
S0242 | SynAck |
SynAck checks its directory location in an attempt to avoid launching in a sandbox.[69][70] |
S0094 | Trojan.Karagany |
Trojan.Karagany can detect commonly used and generic virtualization platforms based primarily on drivers and file paths.[71] |
S0333 | UBoatRAT |
UBoatRAT checks for virtualization software such as VMWare, VirtualBox, or QEmu on the compromised machine.[72] |
G1017 | Volt Typhoon |
Volt Typhoon has run system checks to determine if they were operating in a virtualized environment.[73] |
S0612 | WastedLocker |
WastedLocker checked if UCOMIEnumConnections and IActiveScriptParseProcedure32 Registry keys were detected as part of its anti-analysis technique.[74] |
S0689 | WhisperGate |
WhisperGate can stop its execution when it recognizes the presence of certain monitoring tools.[75] |
S0248 | yty |
yty has some basic anti-sandbox detection that tries to detect Virtual PC, Sandboxie, and VMware. [76] |
This type of attack technique cannot be easily mitigated with preventive controls since it is based on the abuse of system features.
ID | Data Source | Data Component | Detects |
---|---|---|---|
DS0017 | Command | Command Execution |
Monitor executed commands and arguments that may employ various means to detect and avoid virtualization and analysis environments. Detecting actions related to virtualization and sandbox identification may be difficult depending on the adversary's implementation and monitoring required. |
DS0009 | Process | OS API Execution |
Monitor for API calls that may employ various means to detect and avoid virtualization and analysis environments. Detecting actions related to virtualization and sandbox identification may be difficult depending on the adversary's implementation and monitoring required. |
Process Creation |
Virtualization, sandbox, user activity, and related discovery techniques will likely occur in the first steps of an operation but may also occur throughout as an adversary learns the environment. Data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities, such as lateral movement, based on the information obtained. Detecting actions related to virtualization and sandbox identification may be difficult depending on the adversary's implementation and monitoring required. Monitoring for suspicious processes being spawned that gather a variety of system information or perform other forms of Discovery, especially in a short period of time, may aid in detection. |