T1480 Execution Guardrails
Adversaries may use execution guardrails to constrain execution or actions based on adversary supplied and environment specific conditions that are expected to be present on the target. Guardrails ensure that a payload only executes against an intended target and reduces collateral damage from an adversary’s campaign. Values an adversary can provide about a target system or environment to use as guardrails may include specific network share names, attached physical devices, files, joined Active Directory (AD) domains, and local/external IP addresses.
Guardrails can be used to prevent exposure of capabilities in environments that are not intended to be compromised or operated within. This use of guardrails is distinct from typical Virtualization/Sandbox Evasion. While use of Virtualization/Sandbox Evasion may involve checking for known sandbox values and continuing with execution only if there is no match, the use of guardrails will involve checking for an expected target-specific value and only continuing with execution if there is such a match.
|Linux, Windows, macOS
|31 January 2019
|03 May 2022
|Anchor can terminate itself if specific execution flags are not present.
|BitPaymer compares file names and paths to a list of excluded names and directory names during encryption.
|BoomBox can check its current working directory and for the presence of a specific file and terminate if specific values are not found.
|DEADEYE can ensure it executes only on intended systems by identifying the victim’s volume serial number, hostname, and/or DNS domain.
|EnvyScout can call
window.location.pathname to ensure that embedded files are being executed from the C: drive, and will terminate if they are not.
|NativeZone can check for the presence of KM.EkeyAlmaz1C.dll and will halt execution unless it is in the same directory as the rest of the malware’s components.
|Small Sieve can only execute correctly if the word
Platypus is passed to it on the command line.
|Stuxnet checks for specific operating systems on 32-bit machines, Registry keys, and dates for vulnerabilities, and will exit execution if the values are not met.
|SUNSPOT only replaces SolarWinds Orion source code if the MD5 checksums of both the original source code file and backdoored replacement source code match hardcoded values.
|Torisma is only delivered to a compromised host if the victim’s IP address is on an allow-list.
|VaporRage has the ability to check for the presence of a specific DLL and terminate if it is not found.
|Do Not Mitigate
|Execution Guardrails likely should not be mitigated with preventative controls because it may protect unintended targets from being compromised. If targeted, efforts should be focused on preventing adversary tools from running earlier in the chain of activity and on identifying subsequent malicious behavior if compromised.