用于恶意软件分析的虚拟机
任何知道如何使用计算机的人都可以进行基本的恶意软件分析。您所需要的只是一点动力、野心和一台虚拟机来开始工作。虚拟机用于模拟原始环境的理想环境副本,以查看恶意软件样本如何与从文件系统到注册表的所有内容进行交互。恶意软件测试可以在很大程度上保护您的网络免受最危险的网络攻击。在同一台机器上模拟多个操作系统实例并提供真实环境但以受到高度保护的方式的能力使虚拟化成为基于行为的分析中极其强大的工具。以下是虚拟化的一些优点:
- 支持跨平台分析:恶意软件分析通常跨各种系统进行,以使测试人员了解样本如何与不同的操作系统平台交互。虚拟化使创建多个虚拟系统成为可能,例如 Windows、Mac OS X、Linux 等。这简单地消除了购买和安装庞大物理机的需要。
- 提供系统保护:通过在虚拟机内进行测试活动,您可以保护系统的其余部分免受损害。
- 轻松创建理想的测试条件:虚拟化非常灵活,可用于模拟理想的测试环境,以测试各种应用程序。您可以分配测试环境所需的所有虚拟 RAM 存储和处理能力。
在本文中,我们将涵盖以下主题:
- 为恶意软件分析准备 VM
- 保护您的主机免受恶意软件的侵害
- 恶意软件如何区分在真实硬件上运行和在虚拟机内运行?
- 与虚拟机相比,某些恶意软件在真实硬件上的行为有何不同?
让我们开始并详细讨论每个主题。
1. 为恶意软件分析准备 VM
您无需成为专门的安全专家即可开始进行恶意软件分析。您所需要的只是一个正确配置的虚拟机,它将帮助您玩网络 CSI。对于大多数软件来说,创建虚拟机的过程是相似的。以下是您在设置虚拟机时可以遵循的一些常规步骤。请注意,这些不属于任何单一的虚拟化程序。
- 创建虚拟机。
- 选择操作系统类型。
- 分配内存。大多数虚拟机配置建议至少 1024 MB。
- 创建虚拟硬盘。我们希望创建一个尽可能与物理机相似的虚拟机。因此,我们将创建一个虚拟硬盘,允许恶意软件访问文件、文件夹等。
- 分配存储。大多数虚拟机监视器允许您动态或按固定值分配存储空间。
- 安装来宾操作系统。虚拟机启动后,我们需要安装虚拟操作系统以使虚拟机运行。
- 快照您的虚拟机。虚拟机中的快照功能类似于 Windows 中的还原点功能。此功能允许将来宾操作系统的状态保留到可以按需恢复的特定时间点。
2. 保护您的主机免受恶意软件的侵害
曾几何时,虚拟机被认为是进行恶意软件分析的更安全方式。由于它与虚拟系统分离,因此它可以保护物理安装在底层硬件上的主机。在 Xen、我亲爱的 VirtualBox 和 KVM 中发现的 Venom 漏洞证明恶意软件可以逃离虚拟环境。以下是保护主机的一些方法:
- 您需要通过共享文件夹在两个系统之间交换文件,您可以将该文件夹的权限设置为只读。这将阻止 VM 对主机进行更改。
- 安装防病毒软件。
- 大多数病毒防护软件都可以抵御间谍软件,Windows Defender 应用于在 Windows 机器上提供额外保护。
- 使您的操作系统保持最新。
- 限制对主机的访问(关闭防火墙)。
3. 恶意软件如何区分在真实硬件上运行和在虚拟机内运行?
虚拟机旨在从各个方面模仿物理机,无论是 RAM 分配还是存储分配。虚拟机软件的目标是提供一个平台,该平台可以促进多个操作系统的并发执行,既高效又具有可接受的隔离级别(以及所需的共享功能),而不是提供与裸机系统。
某些恶意软件会寻找特定差异,当它们在虚拟机软件内运行的虚拟化操作系统上时可以检测到这些差异。这些差异在很大程度上无关紧要,但这些差异确实让恶意软件有机会确定它们是在真实机器还是虚拟机中运行。以下是真实机器和虚拟机之间的一些差异,恶意软件通常会通过查看来发现差异。
- 当虚拟机软件套件中的特定软件(称为来宾添加项)安装在 VM 中时,大多数虚拟机软件使用起来要方便得多。这些来宾添加通常是设备驱动程序、服务、系统托盘组件等。此类来宾添加的存在是恶意软件检测 VM 时最简单的事情之一。他们经常进行这种练习以发现差异。
- 从 VM 内部到主机(反之亦然)的通信是使用共享内存或特殊指令序列等来完成的。恶意软件作者密切关注这些组件。
- 一些恶意软件会寻找普通用户在做日常工作时使用的系统的迹象,而不是专门设计并用于特定目的(如恶意软件分析)的干净系统。通常,恶意软件分析从干净的 VM 开始,原因有两个:
- 拥有一个干净的系统确实消除了许多变量,这使得分析过程更容易和更一致。
- 为每个恶意软件分析会话获取一个干净的 VM 很容易。
- 恶意软件分析人员不太可能在一段时间内继续使用他用于分析特定恶意软件的 VM 实例,并像典型的最终用户那样做日常工作。
- 现代硬件可能非常复杂,即使是现在的官方设备驱动程序也没有利用实际硬件中存在的所有功能。在虚拟机中模拟硬件的情况下,一般方法是充分模拟硬件,使操作系统设备驱动程序可以与模拟硬件正常工作。仿真硬件将缺乏真实硬件中存在的功能,如果硬件是真实的还是仿真的,人们可以寻找这些功能。
- 消除或模拟时序差异是一个极其困难的问题。即使使用硬件辅助的虚拟化技术,与物理机相比,虚拟机内的某些操作也会慢得多或表现不同。
恶意软件作者会检测到此类差异以做出判断。
4. 与虚拟机相比,某些恶意软件在真实硬件上的行为有何不同?
一些恶意软件非常聪明和讨厌,在检测到它们是在具有真实硬件和真实软件的虚拟机而不是物理机中执行后,它们的行为开始有所不同。在本节中,我们将讨论某些恶意软件在 VM 中的行为与在真实硬件上运行时的行为有何不同。
- 避免将恶意代码注入系统应用程序和进程:恶意软件倾向于将恶意代码注入系统中的正常应用程序和进程。例如:
- 他们可能会将寻找私有或专有数据的代码注入到 Windows 资源管理器进程中。
- 他们可能会将恶意的“回拨”代码注入主要浏览器进程,例如 Internet Explorer、Firefox 或 Chrome。
这种类型的代码注入旨在绕过基于主机的安全技术,这些技术仅允许一组特定的应用程序在系统上执行特定操作。它帮助恶意软件伪装成进程本身并绕过限制。当恶意软件在虚拟机内运行时,它会避免将恶意代码注入系统应用程序和进程,就像通常会做的那样,以防止分析人员当场抓住它。
- 恶意软件通常会对其恶意代码进行加密和/或高度混淆:在虚拟机内部运行时,恶意软件会尽量不解密和公开其代码,因此分析人员无法通过查看代码在系统上的作用来动态检查它或者静态地通过反汇编和查看 CPU 指令来查看它的作用。
- 当代恶意软件往往不连接也不与恶意软件犯罪者的 C&C 服务器和/或僵尸网络基础设施通信:当在真机内运行时,恶意软件会与 C&C 服务器连接并与 C&C 服务器和僵尸网络基础设施通信。但在 VM 的情况下,它们避免了此类连接和通信,因为分析师可以观察网络活动以检测、剖析和分析这些通信。
虚拟化为构建恶意软件分析环境提供了一种方便且省时的机制。请务必建立必要的控制和机制,以防止恶意软件逃离您的测试环境。通过精心调整的实验室,您将能够充分利用您的恶意软件分析技能。