恶意代码分析实战_02在虚拟机中分析恶意代码

本文介绍了在虚拟机中安全分析恶意代码的步骤,包括创建Windows XP虚拟机,配置VMware以断开网络,使用主机模式网络进行隔离,以及如何连接和断开外围设备。此外,还探讨了使用虚拟机进行分析的风险和重复运行轨迹的记录功能。
摘要由CSDN通过智能技术生成

0. 概述

在开始运行恶意代码进行动态分析之前,你必须建立一个安全环境。新鲜出炉的恶意代码可能充满了各种惊喜,如果你是在一台业务主机上运行它,它可能会迅速蔓延到网络中的其他主机上,而移除它会变得非常困难。建立一个安全的环境,可以让你避免将业务主机和网络上其他主机暴露在恶意代码的威胁下,从而规避这些不可预期而且不必要的风险。

1. 虚拟机的结构

虚拟机就像是在计算机中的一台计算机,客户操作系统被安装在宿主操作系统上层运行的虚拟机之中,而在虚拟机上运行的操作系统是与宿主操作系统相互隔离的,如图1所示。如果恶意代码破坏了虚拟机,你可以简单地在虚拟机中重装操作系统,或者将虚拟机回滚到一个干净的状态。本文在VMware Workstation 17 Pro上部署Windows XP虚拟机。

图1. 虚拟机的结构

2. 创建Windows XP虚拟机

为了创建Windows XP虚拟机,首先需要在VMware官网下载VMware,之后需要下载Windows XP镜像文件,最后在基于Windows XP镜像文件在VMware中创建虚拟机。其中,VMware及Windows XP镜像文件可通过上面的链接下载,虚拟机的创建过程可以参考其他教程

2.1 配置VMware

大多数恶意软件都具有联网功能。例如,蠕虫会通过网络攻击其他计算机来努力传播自身。但是你肯定不允许蠕虫访问你自己的网络,因为它可能会传播到其他计算机上。

当分析恶意代码时,你可能想通过观察恶意代码的网络活动来帮助你理解作者的意图,或建立检测特征,或各个充分的分析这个程序。VMware提供了几种虚拟网络的选项,如图2所示。这些网络选项将在后面的小节进一步讨论。

图2. VMware的网络设置

2.2 断开网络

尽管你可以将一个虚拟机配置成没有网络连接,但断开网络通常来说并不是一个好主意。但是只有在某些情况下,这样做会是有用的,没有网络连接,你将无法分析到恶意的网络活动。

不过,当你有理由在VMware中断开网络时,你可以从虚拟机中移除网络适配器,或移除虚拟机以断开网络适配器的连接。除此之外,你还可以在虚拟机启动的时候,通过勾选配置对话框中的启动时连接,来控制网络适配器是否自动连接。

2.3 创建主机模式网络

主机模式(Host-only)网络,可以在宿主操作系统和客户操作系统之间创建一个隔离的私有局域网,在进行恶意代码分析时,这是通常采样的联网方式。主机模式的局域网并不会连接到互联网,这意味着恶意代码会被包含在你的虚拟机里,同时也运行某些网络连接。

当启用主机模式网络时,VMware将在宿主计算机和虚拟机中都创建一个虚拟网络适配器,然后将它们进行连接,而与宿主的网络适配器则没有任何关联。宿主计算机的物理网络适配器仍然连接到互联网或其他外部网络,如图3所示。

图3. Host-only模式网络

2.4 使用多个虚拟机

多个虚拟机通过一个私有局域网连接,但是断开这个局域网和互联网以及宿主机的连接,这样恶意代码可以连接到网络,但是这个网络不会连接到任何业务主机。具体来说,通过一个虚拟机运行恶意代码,而第二个虚拟机则提供一些必要的网络服务。两个虚拟机都被连接到同一个VMNet虚拟交换机上,在这种情况下,宿主主机仍然连接到外部网络,但并没有连接运行恶意代码的虚拟机。

3. 使用恶意代码分析机

为了尽可能充分检查所分析代码样本的功能,必须模拟出恶意代码所以来的所有网络服务,例如,恶意代码经常会连接到一个HTTP服务器,下载其他恶意代码。要观察这个行为,你需要为恶意代码提供一个域名系统(DNS)服务器的访问,来解析出服务器的IP地址。在前面描述的自定义网络配置中提供服务的虚拟机就应该运行恶意代码通信所需的各种网络服务。

3.1 让恶意代码连接互联网

有时候你想将你运行恶意代码的机器连接到互联网,以提供更实际的分析环境,而忽视掉这会带来很明显的安全风险。其中最大的风险是,你的计算机可能会执行一些恶意活动,比如传播恶意代码到其他主机、参与发动分布式拒绝服务攻击、发送垃圾邮件。另一个风险是,恶意代码编写者可能会发现你正在连接到恶意代码服务器,并正在分析恶意代码样本。

在还没有进行一些分析,弄清除恶意代码连接互联网时会做些什么事情之前,你永远也不应该将恶意代码连接到互联网上。而只有你觉得可以承担相应风险后,才可以让它联网。

将VMware虚拟机连接到互联网最普遍的方式,是使用桥接模式网络适配器,它允许虚拟机与物理机器一样连接到相同的物理网卡上。另一种将虚拟机连接互联网的方法是使用VMware的网络地址转换(NAT)模型。

NAT模式会共享宿主机与互联网之间的IP连接。宿主机像是一个路由器,负责对所有来自虚拟机的连接进行翻译,让它们看起来就是从宿主机IP地址发出的一样。这种模式在宿主机连接网络而虚拟机难以获得配置连接到同一网络的场景下,是非常有用的。

3.2 连接和断开外围设备

外围设备,如CD-ROM和外部USB存储设备,对虚拟机构成一个特殊问题。大多数设备要么连接到宿主机上,要么连接到虚拟机上,但不能同时连接两者。

VMware的界面允许你连接和断开外部设备。当你将一个USB设备连接到一台机器,而同时一个虚拟机窗口正处于活跃状态,VMware将会把USB设备连接到虚拟机中,而不是宿主机,有些时候这是非预期的,比如日益流行的通过USB设备进行传播的蠕虫病毒。想要避免这种情况发生,需要修改虚拟机的配置。

3.3拍摄快照

VMware的虚拟机快照允许你保存一个计算机的当前状态,并可以回滚到以前的一个状态,这与Windows的还原点功能比较类似。

当你安装了操作系统和恶意软件分析工具,并配置完网络时,可以保存一个快照。使用这个快坐作为你的一个干净状态的基础镜像。然后运行恶意代码,完成你的分析,保存你的数据,再恢复到基础镜像快照。

3.4 从虚拟机传输文件

使用快照的缺点之一是:当你恢复到之前的一个快照时,这个阶段对虚拟机的所有操作都会丢失。但是你可以再恢复快照之前,使用VMware的拖放功能,将你想要保留的任何文件传输到宿主机上。只要你已经在客户机操作系统安装VMware Tools,而宿主机和虚拟机都运行着Windows操作系统,你就可以直接从客户操作系统拖放一个文件到宿主操作系统上。

另一种用来传输数据的方法是利用VMware共享文件夹。VMware共享文件夹在客户操作系统和宿主操作系统上都能够访问,类似于Windows共享文件夹。

4. 使用VMware进行恶意代码分析的风险

一些恶意代码会检测它是否在虚拟机环境中运行,目前已经公布了许多技术可以用来检测虚拟机。VMware并不认为这是一个安全漏洞,所有没有采取明确的技术措施,来避免检测。但一些恶意软件会在虚拟机环境中有着不同的执行过程,这极大的提升了恶意软件分析的难度。

同时,VMware偶尔也会被爆出安全漏洞。而这些安全漏洞被利用,导致宿主机操作系统奔溃,甚至在上面运行恶意代码。尽管只有少数公共工具或论文显示了攻击VMware的技术,但是在共享目录中已经发现了安全漏洞,而且也公开发布了利用拖放功能的攻击工具。

5. 重复计算机运行轨迹

VMware提供的记录/重放功能可以记录所有发生的一切,让你可以在稍后的时间重放出来。而且这种记录具有100%的保真度。在重放期间,每一个原始记录到的指令都会被同样的执行。甚至当你记录了一个概率为百万分之一的无法复制重新的竞争条件攻击过程,它也会在重放时被展示出来。

VMware具有视频捕捉功能,可以记录屏幕的视频输出。与记录/重放功能不同,它实际地执行了操作系统和应用程序的每一条CPU指令。并且可以在任意点中断执行,然后与计算机进行交互,并且对虚拟机进行修改。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值