作为网管员,恶意软件分析可能并不是我们的最主要工作。不过,如果一个恶意软件影响了你的桌面应用程序的使用,你也许会考虑一下这种不熟悉的恶意代码的性质。一般来说,从行为分析入手开始你的调查工作,也就是观察恶意软件怎样影响文件系统、注册表及网络,可以很快地就产生极有价值的结果。一些虚拟化软件,如VMware在这个分析过程中具有很大的帮助作用。
VMWare是一个“虚拟PC”软件.它使你可以在一台机器上同时运行二个或更多Windows、DOS、LINUX系统。与“多启动”系统相比,VMWare采用了完全不同的概念。多启动系统在一个时刻只能运行一个系统,在系统切换时需要重新启动机器。VMWare是真正“同时”运行,多个操作系统在主系统的平台上,就象标准Windows应用程序那样切换。而且每个操作系统你都可以进行虚拟的分区、配置而不影响真实硬盘的数据,你甚至可以通过网卡将几台虚拟机用网卡连接为一个局域网,极其方便。不过今天我们要讨论的是如何运用VMware分析恶意软件的问题。
用VMware分析恶意软件的益处
VMware支持同时运行在一个物理系统上的多个计算机的仿真。与一个使用完全不同的物理结构部件的实验环境相比,这种方法用于恶意软件的行为分析有多种好处:
在分析实验室中,拥有几个系统通常是有益的,因而恶意软件只会与模拟的Internet部件交互。通过VMware,就可以构建一个多部件的试验室,而不用承担多个物理系统的臃肿之苦。
在感染恶意软件之前,能够捕捉系统状态的快照;而且通过定期的快照分析可以节省时间。这项功能可以提供一种几乎瞬间就恢复到目标系统的简单方式。VMware通过其集成的快照特性使这种恢复相当容易。VMware Workstation作为一种商业产品,允许生成多个快照。VMware Server是一种免费软件,只支持单一快照。VMware Player也是一个免费的软件,不能捕捉系统快照。
VMware的host-only网络选项对于通过仿真网络连接虚拟系统极其方便,而不需增加额外的硬件。这项设置使得分析人员对将实验室环境连接到生产网络不会太感兴趣。在用混杂模式(promiscuous mode) 监听时,Host-only网络允许虚拟系统在模拟的网络上查看所有的数据通信。这使得对监视网络的交互性变得很容易。
开始运用VMware分析恶意软件
准备一个基于VMware的分析实验室是相当简单的事情。你需要一个拥有一个大容量内存及磁盘空间的系统,用以充当一个物理主机。你还需要必需的软件:VMware Workstation 或 Server,以及要部署在实验室的操作系统的安装媒体。
VMware模仿计算机硬件,因此你必须将操作系统安装到每一个虚拟机之中,这些虚拟机是用VMware的新虚拟机向导(Virtual Machine Wizard)创建。操作系统安装好后,再安装VMware 工具包(VMware Tools package),这样会优化VMware的操作。然后,安装适当的恶意软件分析软件。
笔者推荐实验环境拥有几种不同的操作系统的虚拟主机,每一个操作系统代表恶意软件可能攻击的目标。这就便于我们在本地环境中观察恶意程序。如果使用VMware Workstation,你应该在安全更新安装过程中,在不同的时点上捕获虚拟系统的快照,从而可以在不同补丁级别上分析恶意软件。
保障生产系统的安全
在对付恶意软件时,必须采取预防措施不要让生产系统网络受到感染。如果不进行地正确的处理或恶意程序样本滥用了VMware安装程序中的一个漏洞,这种感染和破坏就会发生。在VMware中已经有几个众所周知的漏洞,这些漏洞从理论上讲,可允许恶意代码从虚拟系统找到通向物理主机的方法。感兴趣的读者可从此获得相关的文档资料。
为了减轻这些风险,笔者建议如下的方法:
跟上VMware安全补丁的步伐,经常浏览其网站,下载其最新的补丁。
将某物理主机用于基于VMware的试验环境,就不要将它用于其它目的。
不要将物理试验系统连接到生产性网络。
用基于主机的入侵检测软件监视物理主机,如一个文件集成检查器。
用克隆软件定期重镜象物理主机,如Norton Ghots。如果这样做速度太慢,可以考虑使用硬件模块,如Core Restore,用于撤消对系统状态的改变。
使用VMware进行恶意软件分析的一个挑战就是恶意代码可能会检测到它是否运行在一个虚拟系统之内,这会向恶意软件指明它正在被分析。如果你不能修改其代码来删除这项功能,你可以重新配置VMware来使它更加秘密地运行,可参考如下文档对VM的.vmx文件进行设置。这些设置的最大问题是它们可能会降低虚拟系统的性能,此外还要注意这些设置并不被VMware支持。
虚拟化选择和策略
当然,VMware并非可用于恶意软件分析的唯一虚拟化软件。常用的选择还包括微软的Virtual PC和Parallels Workstation。
虚拟化软件为构建一个恶意软件分析环境提供了一个方便省时的机制。不过,一定要为防止恶意软件逃离你的测试环境而建立必需的控制。借助一个配置良好的试验环境,我们就可以充分利用恶意软件的分析技巧。