本文目录导读:

分析病毒样本(恶意软件)是一项严谨的技术工作,需要遵循逆向工程和动态分析的方法论,为了确保安全,千万不要在实机(日常使用的电脑)上运行任何可疑样本。
以下是系统性的病毒样本分析研判流程,分为准备阶段、静态分析、动态分析、行为研判和报告输出五个步骤。
第一阶段:环境准备与安全策略
-
隔离网络:
- 在虚拟机(如VMware, VirtualBox)或专用的沙箱环境中进行分析。
- 虚拟机网络设置为 仅主机模式(Host-Only) 或 NAT模式,并禁止桥接模式(防止病毒扩散)。
- 建议断开物理网络连接,使用虚拟网络模拟器(如INetSim)或切断对外通信。
-
专用分析机:
- 操作系统:推荐使用 Windows 7/10 或 Windows Server(作为基础)。
- 工具安装:预装一套完整的分析工具包(见下文),不要安装杀毒软件,否则会干扰样本运行。
第二阶段:静态分析
这是在不运行样本的情况下,通过文件本身提取信息。
文件识别与查杀
- 工具:VirusTotal(上传Hash或文件)、微步在线、Any.Run(在线沙箱)。
- 目的:
- 确认是否已知威胁(家族名、变种)。
- 查看VT社区的“Community Score”,了解杀软检测率。
- 注意:病毒会检测并跳过VirusTotal,所以如果检测率低于10%,可能是新变种或针对性样本。
基础信息提取
- 工具:Detect It Easy (DIE), Exeinfo PE, BinText。
- 关键数据:
- 编译时间(Timestomp):检查时间戳是否合理,伪造的时间(如2030年或1970年)或静态日期通常是加壳或编译后的产物。
- 熵值:Entropy值 > 7.5(高熵)通常表示加壳或加密,需先脱壳。
- 导入表/导出表:查看调用了哪些Windows API。
VirtualAlloc,WriteProcessMemory,CreateRemoteThread:内存注入。InternetOpenUrl,URLDownloadToFile:远程下载。RegOpenKey,CreateService:持久化。
代码审计(进阶)
- 工具:IDA Pro, Ghidra, x64dbg。
- 目的:
- 寻找字符串:加密的URL、C2服务器地址、互斥体名称(Mutex)、硬编码密钥。
- 定位关键函数:解密循环、APC注入、进程镂空等核心代码段。
第三阶段:动态分析
这是真正运行样本,观察其行为的过程。
监控系统行为
- 工具:
- Process Monitor (Procmon):监控文件、注册表、进程、网络活动。
- Process Explorer (Procexp):查看进程树、线程、句柄、加载的DLL(有无可疑模块)。
- Regshot:对比运行前后的注册表快照。
- 需关注的行为:
- 自启动:写入
Run,RunOnce等注册表项,或创建计划任务。 - 进程注入:病毒进程是否会打开其他合法进程(如
svchost.exe,explorer.exe,notepad.exe)并注入代码。 - 文件操作:释放到
%TEMP%,%System32%或系统目录的副件。 - 网络连接:对外部IP的TCP/UDP连接(即使被禁止也会尝试)。
- 自启动:写入
监控网络行为
- 工具:Wireshark, Fiddler, TCPView, FakeNet / INetSim。
- 目的:
- 捕获DNS查询、HTTP请求、HTTPS连接。
- 即使断网,FakeNet可以伪造所有网络响应,观察病毒尝试访问的域名或IP(这就是C2服务器地址)。
内存与行为取证
- 工具:Volatility(内存取证), x64dbg(下断点调试)。
- 目的:分析病毒注入后被修改的进程内存,寻找加密密钥或Shellcode。
第四阶段:行为研判与分类
根据前三步的结果,对样本进行定性:
-
类型判断:
- 木马(Trojan):伪装成正常文件,窃取信息(键盘记录、截屏)。
- 勒索软件(Ransomware):加密文件并索要赎金。
- 僵尸网络(Bot):连接C2服务器,等待远程指令。
- 蠕虫(Worm):利用漏洞自传播,消耗内网带宽。
- Rootkit:隐藏自身进程、文件、注册表项,躲避检测。
- 下载器(Downloader):只负责下载更复杂的恶意载荷。
-
攻击向量分析:
如何进入的?(宏病毒、漏洞利用、钓鱼邮件附件等)。
-
持久化机制:
重启后如何再次激活?(注册表、服务、计划任务、DLL劫持)。
-
C2通信协议:
HTTP/HTTPS/DNS隧道/ICMP隧道/WebSocket。
第五阶段:报告输出
分析研判的最终结果需要以可读性强的报告呈现,通常包含:
- 样本基本信息:文件名、MD5/SHA256、文件大小、文件类型。
- 检测结果:VT检测率,是否加壳。
- 行为描述:
- 运行后产生多个进程(列举)。
- 创建文件(路径、内容摘要)。
- 修改注册表(键值、值)。
- 网络连接(域名、IP、端口)。
- 危害定级:高危/中危/低危,以及建议处置措施(如封禁IP、删除注册表项、隔离主机)。
- YARA规则:为安全设备编写检测规则。
必装工具清单
| 类别 | 工具名称 | 用途 |
|---|---|---|
| 分析环境 | VMware Workstation | 隔离运行样本 |
| 在线沙箱 | VirusTotal, Any.Run | 快速查询与社区参考 |
| 静态分析 | Detect It Easy (DIE) | 查壳、识别编译语言 |
| 静态分析 | IDA Pro / Ghidra | 反汇编与逆向(专业) |
| 动态监控 | Process Monitor + Process Explorer | 行为监控 |
| 网络分析 | Wireshark + INetSim | 抓包与网络模拟 |
| 内存分析 | Volatility | 内存取证(进阶) |
| 调试器 | x64dbg | 动态调试,追踪调用 |
特别警告
- 绝对不要在联网的物理机上执行未知样本。
- 使用虚拟机快照功能,运行前打快照,运行后还原。
- 如果发现样本具有极强的检测虚拟机能力(如探测是否有VMware Tools、MAC地址),请不要直接运行在默认配置的虚拟机上,需配合反反虚拟机技术(如修改配置文件)。
- 对于勒索软件,如果不需要提取密钥,尽量不要让其加密文件,直接断网并监控其初始行为即可。
掌握了以上流程,你就能系统地对恶意软件进行“解剖”,如果你手头有一个样本,可以根据上述步骤一步步进行,重点关注静态分析中的字符串和动态分析中的进程注入。