Files
2025-09-25 04:02:19 +08:00

45 lines
3.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
### 恶意软件有哪些方案检测自己处于沙箱中
**1. 基于环境特征的检测**
沙箱为了快速分析大量样本,通常会使用标准化的、不完整的系统配置。恶意软件可以利用这些不寻常的特征来判断自己是否被分析
- **硬件特征**
- **CPU 指令**:通过 `cpuid` 指令查询 CPU 供应商字符串。虚拟机通常会返回 `VMwareVMware`, `KVMKVMKVM``Microsoft Hv` 等特殊字符串,而真实的物理机则会返回 `GenuineIntel``AuthenticAMD`
- **MAC 地址**:检查网卡(MAC)地址。某些虚拟化厂商的 MAC 地址范围是公开的,例如 VMware 的 MAC 地址通常以 `00-50-56` 开头
- **内存大小**:沙箱为了节省资源,通常会分配较少的内存(例如 1GB 或 2GB)。恶意软件可以查询系统内存大小,如果远低于正常桌面系统的配置,就可能怀疑自己处于沙箱中
- **文件系统和注册表**
- **特定文件**:检查是否存在某些虚拟化工具或分析工具的特定文件,例如 `C:\windows\System32\Drivers\VBoxGuest.sys` (VirtualBox) 或 `C:\Program Files\VMware\VMware Tools\vmtoolsd.exe` (VMware Tools)
- **注册表项**:查询与虚拟化相关的注册表键值,例如 `HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\Scsi\Scsi Port 0\Scsi Bus 0\Target Id 0\Logical Unit Id 0\Identifier`,其值可能会包含 `VBOX``VMware` 等字符串
**2. 基于行为和用户交互的检测**
正常的桌面环境会有频繁的用户活动,而沙箱通常是自动化运行的,缺乏这些活动
- **用户活动检测**
- **鼠标移动**:检查鼠标自启动以来的移动距离。如果鼠标几乎没有移动,可能表明没有真实用户在操作
- **窗口数量**:查询桌面上的窗口数量。沙箱通常只运行一个应用程序,所以窗口数量可能很少
- **键盘输入**:监控键盘输入事件。如果长时间没有按键操作,也可能是沙箱
- **屏幕分辨率**:沙箱环境通常使用一个固定的、非标准的分辨率
- **执行时间检测**
- **延迟执行**:恶意软件会在运行初期休眠一段较长的时间(例如几分钟或几小时)。沙箱通常只运行几十秒到几分钟,无法捕捉到后续的恶意行为
- **时间戳**:检查系统启动时间,或使用 `Sleep` 函数,然后比较前后两次获取系统时间的时间差。如果时间差比预期的短得多(因为沙箱可能通过加快时钟来加速分析),就表明处于虚拟化环境
**3. 基于进程和文件分析工具的检测**
沙箱环境通常会运行一些监控工具,这些工具的进程或文件名可能暴露它的身份
- **进程列表**:遍历运行中的进程列表,查找常见的分析工具进程名,例如:
- `procmon.exe` (Process Monitor)
- `wireshark.exe` (Wireshark)
- `Fiddler.exe`
- `idaq64.exe` (IDA Pro)
- **文件名**:恶意软件可以检查自身的可执行文件名。一些自动化分析系统会把样本重命名为固定的、可预测的名字,例如 `sample.exe``malware.exe`
**4. 基于硬件和底层代码的检测**
这是更高级的反沙箱技术,直接利用虚拟机和物理机底层实现的差异
- **指令时序分析**:某些 CPU 指令在虚拟机中执行所需的时间与在物理机上不同。恶意软件可以执行这些特定指令,然后测量其执行时间,通过比较时间差来判断
- **中断描述符表(IDT)检测**:虚拟机管理程序(Hypervisor)通常会修改 IDT 以拦截某些特权指令。恶意软件可以检查 IDT 的地址或内容,寻找被篡改的迹象
- **内存布局**:检查内存布局,如某些特殊的地址或结构,它们在虚拟机中可能会有独特的模式