82、恶意软件分析(二):动态分析(沙箱、行为监控、网络模拟)
动态分析,说白了就是把恶意软件真的跑起来,看它到底干了什么。静态分析就像看一个人的简历,动态分析则是直接观察他的行为。我个人觉得,这两者缺一不可。
你可能会问:为什么不直接静态分析到底?嗯,我遇到过不少样本,代码被混淆得亲妈都不认识,静态分析根本无从下手。这时候,动态分析就成了救命稻草。
沙箱:给恶意软件一个“假家”
沙箱是动态分析的基础设施。它的核心思想很简单:给恶意软件一个隔离的环境,让它以为自己真的在目标机器上运行,实际上它的一举一动都被监控着。
我常用的沙箱方案有几种:
- Cuckoo Sandbox:开源界的经典,支持Windows、Linux、Android。我早期做分析时基本靠它。
- FireEye:商业方案,检测能力强,但价格不菲。
- 自建沙箱:用VirtualBox或VMware配合API监控脚本。适合定制化需求。
核心要点:沙箱不是万能的。恶意软件会检测是否在虚拟机中运行。比如检查注册表、进程列表、硬件信息等。我曾经遇到一个样本,它检测到Cuckoo的默认用户名“Cuckoo”就直接退出。所以,定制化沙箱环境很重要。
行为监控:看它到底干了什么
行为监控是动态分析的核心。我们需要监控以下几类行为:
- 文件系统操作:创建、删除、修改文件。恶意软件常会在%TEMP%或%APPDATA%目录下释放文件。
- 注册表操作:写入启动项、修改系统设置。这是持久化的常见手段。
- 进程操作:创建新进程、注入代码、结束进程。很多恶意软件会注入到explorer.exe中。
- 网络操作:连接C2服务器、下载payload、上传数据。
我常用的监控工具有:
| 工具 | 监控范围 | 个人评价 |
|---|---|---|
| Process Monitor | 文件、注册表、进程 | Windows下最全的监控工具,没有之一 |
| API Monitor | API调用 | 可以拦截到具体函数参数,适合深度分析 |
| Wireshark | 网络流量 | 网络分析必备,配合过滤规则使用 |
| FakeNet | 网络模拟 | 模拟网络服务,让恶意软件以为连上了C2 |
个人技巧:我习惯先跑一次Process Monitor,记录所有操作。然后根据可疑操作,再用API Monitor深入分析。这样效率最高。
网络模拟:让恶意软件“开口说话”
很多恶意软件需要连接C2服务器才能完全激活。如果不模拟网络环境,它可能什么都不做。网络模拟的目的就是让恶意软件以为它成功连接到了C2。
我常用的网络模拟方案:
- FakeNet-NG:开源工具,可以模拟DNS、HTTP、HTTPS等服务。我经常用它来捕获恶意软件的请求。
- INetSim:Linux下的网络模拟工具,功能更全,但配置稍复杂。
- 自建模拟服务:用Python写一个简单的HTTP服务器,返回伪造的响应。
举个例子,我曾经分析一个勒索软件。它连接C2获取加密密钥。我用FakeNet模拟了一个HTTP服务器,返回了一个伪造的密钥。结果勒索软件真的开始加密文件了。嗯,虽然有点危险,但确实拿到了完整的加密流程。
警告:网络模拟有风险。如果恶意软件真的连接到了真实C2,可能会造成数据泄露。务必在完全隔离的网络环境中操作。我一般会在沙箱内再套一层网络隔离,双重保险。
动态分析的核心流程
我总结了一套动态分析的流程,你可以参考:
- 准备环境:配置沙箱、安装监控工具、设置网络模拟。
- 基线快照:记录系统初始状态(文件、注册表、进程)。
- 运行样本:在沙箱中执行恶意软件。
- 监控记录:实时记录所有行为。
- 分析结果:对比基线,找出变化。
- 深入分析:对可疑行为进行API级别的跟踪。
这套流程我用了很多年,基本没出过问题。当然,遇到特别狡猾的样本,可能需要反复调整环境。
知识体系图
下面这张图展示了动态分析的核心知识结构。我把它画出来,方便你理解各个模块之间的关系。
避坑指南
做动态分析这么多年,我踩过不少坑。分享几个给你:
- 环境检测:恶意软件会检测是否在虚拟机中。我曾经遇到一个样本,它检查硬盘序列号,发现是虚拟硬盘就直接退出。解决办法是修改虚拟机配置文件,让硬件信息更接近真实机器。
- 时间延迟:有些恶意软件会等待一段时间再执行恶意行为。我习惯让沙箱运行至少30分钟,甚至更久。
- 网络模拟不完整:如果模拟的服务不完整,恶意软件可能无法完全激活。比如它需要HTTPS,而你只模拟了HTTP。这时候需要仔细分析它的网络请求,然后补全模拟服务。
我的习惯:每次分析前,我都会先跑一遍干净的基线记录。这样对比起来一目了然。另外,我会保留每次分析的日志,方便后续回溯。
动态分析是一门实践性很强的技术。光看书没用,得动手。我建议你从Cuckoo Sandbox开始,搭一个简单的环境,然后找一些公开的恶意软件样本练手。嗯,注意安全,别在真实机器上跑。
公众号:蓝海资料掘金营,微信deep3321