Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

虚拟化/沙箱规避 (T1497)

一句话通俗理解

检测自己是否在虚拟机或分析环境里运行——恶意软件启动前先“探探周围“,如果发现自己在实验室的监控环境下,就装睡不动。

30秒速查卡

维度你需要知道的
这是什么?恶意软件通过检测硬件特征(CPU、MAC地址)、用户行为(鼠标移动)、时间偏差(Sleep加速)来判断是否在沙箱/虚拟机中运行
为什么危险?沙箱规避是高级恶意软件的核心能力,能在分析环境中隐藏真实行为,只在真实目标环境中才激活恶意功能
谁需要关心?沙箱运维团队、恶意软件分析师、威胁狩猎团队、任何需要检测反分析行为的安全人员
你的第一步防御监控 wmic cpu get manufacturerwmic bios get serialnumber 等硬件查询,检测长时间 Sleep 调用后的异常行为
如果只做一件事对进程启动后执行硬件信息查询并紧接着长时间 Sleep 的行为模式立即告警,这是典型的沙箱检测特征

难度等级

  • ⭐⭐⭐ 高级(需要深入技术知识)

技术描述

虚拟化/沙箱规避(T1497)是MITRE ATT&CK框架中的一种发现技术。

通俗解释: 安全分析师会把可疑软件放在“沙箱“(一个隔离的观察室)里运行,观察它的行为。聪明的恶意软件会先检查自己是否在这样一个观察室里——比如检查CPU是不是虚拟机的型号、检测有没有分析工具在运行、看看鼠标有没有人操作。如果发现自己在被观察,就装作无害或直接停止运行,让分析师白忙一场。就像小偷在行动前先观察四周有没有警察。

技术原理:

  1. 硬件特征检测:检查CPU制造商、核心数、内存大小、MAC地址前缀
  2. 进程检测:检查是否有Wireshark、Procmon、IDA Pro等分析工具运行
  3. 用户交互检测:检查鼠标是否移动、键盘是否有输入
  4. 时间检测:沙箱会加快运行速度,检测时间是否异常
  5. 人工痕迹检测:检查文件系统和注册表中是否有用户活动的痕迹

用途与影响: 沙箱规避帮助恶意软件:避免被自动分析系统检测和分析;延长在真实环境中的存活时间;隐藏真实的恶意功能(如勒索加密、数据窃取);提高逆向分析的难度和成本。

子技术列表

该技术共有 3 个子技术:

子技术ID中文名称通俗解释
T1497.001系统检查检查CPU、BIOS、MAC地址等硬件特征判断是否在虚拟机中
T1497.002基于用户活动的检查检查鼠标移动、键盘输入等用户行为判断是否在沙箱中
T1497.003基于时间的规避通过Sleep调用和计时器检测时间是否被沙箱加速
展开查看各子技术详细说明

各子技术详细说明请参阅独立文档:

攻击流程

典型攻击流程

执行检查 --> 检测环境 --> 判断是否沙箱 --> 选择行为
graph TD
    A["恶意软件启动"] --> B["执行系统检查"]
    B --> C["执行用户活动检查"]
    C --> D["执行时间检测"]
    D --> E{"综合判断环境"}
    E -->|"检测到沙箱特征"| F["停止执行/显示诱饵内容"]
    E -->|"检测到调试器"| G["隐藏真实行为"]
    E -->|"判断为真实环境"| H["执行完整恶意功能"]
    F --> I["逃避分析"]
    G --> I
    H --> J["实施攻击"]

步骤详解:

  1. 检测虚拟化痕迹

    • 通俗描述:检查系统硬件特征判断是否在虚拟机中
    • 技术细节:检查CPU制造商、MAC地址前缀、BIOS信息
    • 常用工具:wmic, PowerShell
  2. 检测用户交互

    • 通俗描述:检查是否有真人操作电脑
    • 技术细节:监控鼠标移动、键盘输入、文档访问
    • 常用工具:Windows API(GetCursorPos等)
  3. 检测时间异常

    • 通俗描述:检查系统时间是否被加速
    • 技术细节:执行Sleep并测量实际耗时
    • 常用工具:GetTickCount, QueryPerformanceCounter
  4. 执行恶意行为

    • 通俗描述:确认是真实环境后执行攻击
    • 技术细节:解密payload、连接C2、执行勒索加密
    • 常用工具:自定义payload

真实案例

案例1:Emotet - 多维度虚拟化规避

  • 时间: 2018年-2023年
  • 目标: 全球企业网络(金融、政府、医疗)
  • 攻击组织: Emotet
  • 手法: Emotet银行木马使用复杂的沙箱检测技术。它首先执行系统检查(T1497.001),使用 wmic 查询CPU、内存、硬盘和BIOS信息,检测VMware/VirtualBox的特定硬件签名。然后执行用户行为检测(T1497.002),检查鼠标光标在60秒内是否被移动过。最后执行时间规避(T1497.003),通过多次10-30秒的Sleep调用测试时间是否被加速。如果任何检测被触发,Emotet停止执行恶意代码或解码诱饵PDF显示给分析师。
  • 影响: 全球数百万台计算机被感染
  • 参考链接: MITRE - Emotet

案例2:TrickBot - 沙箱时间检测

  • 时间: 2019年-2022年
  • 目标: 全球企业网络
  • 攻击组织: TrickBot
  • 手法: TrickBot木马在初始化过程中检查系统运行时间(uptime)。如果 GetTickCount 返回的毫秒数小于10分钟(600,000ms),判定系统为新启动的环境或沙箱,延迟执行核心恶意模块达数小时。TrickBot还检查 NtQuerySystemInformation 中的系统时间信息来检测时间是否被篡改。这些时间检测机制帮助TrickBot绕过自动沙箱和动态分析平台。
  • 影响: 大量企业网络被入侵,用于部署勒索软件
  • 参考链接: MITRE - TrickBot

案例3:Ursnif (Gozi) - 调试器检测

  • 时间: 2020年-2022年
  • 目标: 全球金融机构和企业
  • 攻击组织: Ursnif (Gozi)
  • 手法: Ursnif恶意软件在执行过程中通过 NtQueryInformationProcess 检查进程是否正在被调试。它还扫描PEB(进程环境块)的 BeingDebugged 标志位,检查是否存在硬件断点,并检查异常处理来检测分析工具。如果检测到调试环境,Ursnif将正常执行而非调用卸装代码,使分析人员难以观察其真实行为。
  • 影响: 金融机构的敏感数据被大量窃取
  • 参考链接: MITRE - Ursnif

案例4:挖矿恶意软件 - CI/CD沙箱规避

  • 时间: 2021年-2023年
  • 目标: CI/CD管道中的临时容器
  • 攻击组织: 加密货币挖矿团伙
  • 手法: 攻击者在使用暴露的CI/CD凭证在GitLab Runner容器中部署挖矿恶意软件时,挖矿程序包含沙箱规避逻辑。它检查容器是否在CI/CD分析环境中运行——检查环境变量(如 CI=true)、检查CPU核心数(少于4核则退出)、检查系统内存(小于2GB则退出)。如果在生产服务器上运行则启动挖矿进程;如果在CI/CD分析管道中运行则立即退出。
  • 影响: 云服务商的计算资源被非法占用
  • 参考链接: MITRE - T1497

红队视角

⚠️ 免责声明:以下内容仅用于合法的安全测试、渗透测试和教育目的。未经授权对他人系统进行测试是违法行为。

实战技巧

  1. 多维度检测组合 单一检测指标容易被绕过,组合3种以上的检测方法可大幅降低误报率。

  2. 检查常见沙箱特征

    • 检查MAC地址前缀:VMware(00:50:56, 00:0C:29)、VirtualBox(08:00:27)
    • 检查常见分析工具进程:Wireshark、Procmon、Process Explorer
  3. 使用延迟执行 在获得系统访问后等待30分钟以上再执行恶意操作,大多数自动沙箱在10分钟内就结束分析。

常用工具

工具名称用途平台链接
wmic硬件信息查询Windows内置命令
GetTickCount系统运行时间检测WindowsWindows API
NtQueryInformationProcess调试器检测WindowsWindows API
PEB.BeingDebugged调试标志检查Windows进程环境块

注意事项

  • 过于激进的沙箱检测可能导致合法环境误判
  • 高级沙箱(如FireEye、Cuckoo 3)会隐藏虚拟化痕迹
  • 某些EDR产品会监控沙箱检测行为本身

蓝队视角

检测要点

  1. 异常的系统属性查询

    • 日志来源:Sysmon Event ID 1
    • 关注字段:wmic cpuwmic bios 等硬件信息查询
    • 异常特征:非管理员执行硬件信息查询
  2. 长时间的Sleep行为

    • 日志来源:进程行为监控
    • 关注字段:连续5分钟以上的Sleep调用
    • 异常特征:启动后长时间休眠然后突然执行恶意行为

监控建议

  • 监控对虚拟化痕迹的异常查询(如 wmic bios get serialnumber
  • 检测长时间 Sleep 调用后的异常行为模式
  • 使用EDR的行为分析功能检测沙箱规避的聚合行为

检测建议

网络层检测

检测方法: 监控虚拟化环境检测相关的网络流量,特别关注恶意软件在判断运行环境时发出的 VM 服务 DNS 查询以及沙箱特征 IP 的连接尝试。

具体规则/命令示例:

# 检测对 VM 服务特有 DNS 名称的查询(如与 VMWare/VirtualBox/Hyper-V 相关的反向 DNS 查询)
# 关注恶意代码向已知沙箱/分析环境特征 IP 发起的连接测试
# 使用 Zeek 分析 dns 日志,检测针对虚拟化平台相关域名的异常解析请求

主机层检测

Windows事件ID:

  • 事件ID 4688:进程创建
  • 事件ID 4104:PowerShell脚本
  • Sysmon Event ID 1:进程创建

用人话说: 这条规则在监控有人用 WMI 查询 CPU 制造商信息。攻击者为什么要查这个?因为虚拟机的 CPU 制造商通常显示为 “VirtualBox”、“VMware” 或 “QEMU”,而真实物理机显示的是 “Intel” 或 “AMD”。恶意软件在启动时会检查这个信息——如果发现是虚拟机,就知道自己可能在安全分析师的沙箱里,就会停止运行或显示假的正常行为。正常情况下,IT 运维人员可能在做资产盘点时查这个,但普通用户或后台进程执行它就很可疑。如果你看到一个新启动的进程先查 CPU 信息,再查 BIOS 序列号,然后长时间 Sleep,这就是典型的沙箱检测行为链。

Sigma规则示例:

title: Virtualization Detection via WMI
status: experimental
description: Detects WMI queries for virtualization detection
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        CommandLine|contains|all:
            - 'wmic'
            - 'cpu'
            - 'manufacturer'
    condition: selection
level: medium
tags:
    - attack.t1497

缓解措施

优先级1:关键措施

措施名称: 使用高级沙箱技术

具体实施步骤:

  1. 使用隐藏虚拟化痕迹的沙箱(如FireEye、Cuckoo 3)
  2. 在沙箱中模拟真实用户交互行为

优先级2:重要措施

措施名称: 多层防护组合

具体实施步骤:

  1. 不依赖单一沙箱检测
  2. 结合EDR、网络检测和日志分析

优先级3:建议措施

措施名称: 针对沙箱规避的行为检测

具体实施步骤:

  1. 监控长时间的Sleep调用
  2. 检测Sleep后的异常行为

MITRE ATT&CK 缓解措施映射

缓解措施ID缓解措施名称适用性说明
M1040Behavior Prevention on Endpoint适用EDR行为检测
M1041Encrypt Sensitive Information部分适用加密敏感数据
M1045Code Signing不适用-

动手实验

⚠️ 重要提示:所有实验必须在隔离的实验室环境中进行,禁止对未授权的真实系统进行测试。

实验环境准备

所需工具: Windows VM + 沙箱环境

实验1:检测虚拟化环境(初级)

实验目标: 学习使用wmic检测虚拟化特征。

实验步骤:

  1. 执行 wmic cpu get manufacturer 查看CPU制造商
  2. 执行 wmic bios get serialnumber 查看BIOS序列号
  3. 执行 ipconfig /all 查看MAC地址

预期结果: 在VMware中看到VMware特定的硬件特征。

学习要点: 理解恶意软件如何检测虚拟化环境。

实验2:时间检测实验(中级)

实验目标: 使用PowerShell模拟时间基准检测。

实验步骤:

  1. 执行 $start = Get-Date; Start-Sleep -Seconds 10; $elapsed = (Get-Date) - $start 计算实际耗时
  2. 比较实际耗时与请求的Sleep时间

预期结果: 真实环境中实际耗时与Sleep时间基本一致。

术语解释

术语英文原名通俗解释
沙箱Sandbox隔离分析环境,像玻璃房子一样观察恶意软件的行为
虚拟化Virtualization用软件模拟计算机硬件,如VMware、VirtualBox
PEBProcess Environment Block进程环境块,Windows中存储进程信息的结构
BIOSBasic Input/Output System计算机的基本输入输出系统,存储底层硬件信息
调试器Debugger用来分析程序运行过程的工具,如IDA Pro、x64dbg

参考资料

官方文档

安全报告

工具与资源