如何安全地测试 VM 中的恶意软件?

信息安全 视窗 恶意软件 虚拟化
2021-09-07 19:18:48

这个问题可能已经在这里被问过好几次了,但我会问的有点不同。

我正在尝试了解恶意软件以及它如何感染计算机以及如何在计算机受到攻击时对计算机进行消毒。我见过几个人使用虚拟机来测试恶意软件(我已经使用 VirtualBox 几年了),我也考虑过这样做,但我担心恶意软件可能会从虚拟机中“泄漏”出来并毁掉我的主机和我网络上的所有计算机。

我的问题是:

  1. 我可以在 VirtualBox中测试恶意软件并在 VM 中访问 Internet而不会损害我的主机或我网络上的任何其他计算机吗?

  2. 如果我使用一台真正的计算机来测试恶意软件(我有一个破旧的戴尔 XP 塔),格式化后记就足够了吗?

  3. 我的 Dell XP 塔式机是否也可以启用 Internet 而不会影响我的其他计算机的恶意软件?

  4. 即使我不能同时启用 Internet 并在 VM 中使用恶意软件,该恶意软件是否仍能“跳出”VM 并攻击我的主机?

  5. 由于我还将“恶作剧”一些陈词滥调的 Windows 诈骗者(好吧,不是真正的恶作剧,只是测试他们可以进入并造成损害的方式),使用虚拟机是否安全,或者我什至可以使用那个垃圾我的戴尔?

  6. 是否还需要屏蔽我的 IP 和 MAC 地址,以便在我进行恶意软件测试时它们不会被记录并发送给任何可以接收它的人?

  7. 如果我可以在 VM 中安全地执行恶意软件,那么需要哪些步骤来确保我的真实东西的安全?

如果这有帮助,我的主机要么是运行 OS X 10.8.5 的 Mac,要么是运行 XP 的塔式计算机(不是我的戴尔计算机)。

来宾将是任何操作系统,但主要是 Windows(是的,从最新到最旧)

我希望我已经为你们解释得足够好。

任何和所有的帮助将不胜感激。

谢谢!

4个回答

1/3/4/7-访问互联网?这不是一个好主意,因为取决于它的作用,您的 VM 可以将它“释放到野外”。如果它没有连接到互联网,在虚拟机中运行它应该是非常好的。The Bear 的回答将详细介绍有关逃逸 VM 的恶意软件。这里

对于 99% 的恶意软件,2 格式应该没问题。有些可能会攻击硬盘驱动器以外的其他区域,因此请记住这一点并研究您正在玩什么。更多信息在这里

6 - 您可以使用代理,但正如 Munkyoto 所说,要正确分析,您需要查看流量。

至于你在评论中的问题...... - 是的。您不应该对格式化有任何问题。如果 MBR、bios、固件可以驻留极其复杂的恶意软件,但这将高于日常恶意软件。除非您连接了外围设备(例如 USB 驱动器)。

您的 1)我可以在 VirtualBox 中测试恶意软件并在 VM 中访问 Internet 而不会损害我的主机或我网络上的任何其他计算机吗?

你不会想要的。假设您正在分析的恶意软件被设计为立即以银行或政府机器为目标。你可以让自己承担巨额债务。在等式的一方面,没有连通性会限制您的结果。例如,在处理基于 C&C 的恶意软件时,您永远不会看到任何新的 dropper 或 C&C 基本命令。

解决此问题的方法是在您和世界其他地方之间插入一个代理。要正确执行此操作,您需要做的是观察连接,立即停止连接,验证您的系统没有进行恶意连接,然后创建允许恶意机器 fw 规则,同时阻止其他连接。看起来像这样:

You --> run malware
Malware connects to malicious site --> get commands (here you get the address of malicious host)
You --> create a BLOCK ALL fw rule, and then create an ALLOW MALICIOUS RULE

这使您的系统只能与恶意系统对话。如果它试图从您的机器发起攻击,fw 规则会阻止它。理想情况下,您会想要创建假路线。例如:

route add 0.0.0.0/0 10.10.10.10/32

任何和所有出站流量都进入系统 (10.10.10.10/32),您将在该机器上运行网络分析工具(Wireshark、Netwitness)。

您的 2)如果我使用一台真实的计算机来测试恶意软件(我有一个垃圾戴尔 XP 塔在乱跑),格式化后记就足够了吗?

为什么不直接创建和存储幻像、分析、恢复您的幻像。基于 Bios 的恶意软件很少见,但为了安全起见,您可以使用密码保护您的 bios,或者运行类似“ regshot ”的东西来跟踪正在执行的命令。甚至可能来自 HB Gary 的捕蝇器(如果仍然可用)

您的 3)我的戴尔 XP 塔式机是否也可以启用 Internet 而不会影响我的其他计算机的恶意软件?

你永远不可能知道。一些恶意软件可以下载漏洞利用工具(metasploit 等),然后扫描您的内部主机以查找漏洞

您的 4)即使我不能同时启用 Internet 并在 VM 中使用恶意软件,该恶意软件是否仍然可以“跳出”VM 并攻击我的主机?

这在你的 3 中得到了回答

你的 5)因为我也会“恶作剧”一些陈词滥调的 Windows 骗子(好吧,不是真的恶作剧,只是测试他们可以进入并造成损害的方式),使用虚拟机是否安全,或者我什至可以使用我的那个垃圾戴尔?

定义“恶作剧”。许多恶意软件作者非常精通技术,常见的恶意软件可以确定它们是否在蜜罐上、在虚拟机中运行,或者是否有问题。除此之外,许多恶意软件作者经常参与有组织的犯罪活动,因此这可能是一个非常危险的游戏。

您的 6)是否还需要屏蔽我的 IP 和 MAC 地址,以便在我进行恶意软件测试时它们不会被记录并发送给任何可以接收它的人?

不清楚这个说法。定义屏蔽 IP。如果/当您连接到主机时,您需要来自某个地方。获得正确结果(恶意软件在做什么)的唯一解决方案是机器需要响应您。您可以使用 VPN 代理,但没有办法欺骗任何东西。

你的 7)如果我可以在虚拟机中安全地执行恶意软件,那么需要哪些步骤来保证我的真实东西的安全?

不要在与您的“真实东西”相同的网络上分析恶意软件,给自己一个单独的路由器,并且只将该主机放在那里。

在使用虚拟机时,您实际上会遇到的问题是,大多数恶意软件会拒绝打开其有效负载,因此您无法完成大量研究。使用虚拟机剖析恶意软件的研究人员太常见了,现在大多数恶意软件通过寻找它在虚拟机中运行的线索来主动阻止它,如果发现它们就保持休眠状态。请记住,如果您追求虚拟化方法,您可能会得到与在裸机系统上进行相同测试的人不同的结果。

话虽如此,您应该可以使用桌面并采取相同的预防措施:限制所有网络访问,永远不要将其连接到本地网络并且永远不要提供互联网访问,除非您直接使用流量嗅探器观察它在做什么并且可以杀死如果它开始做一些恶意的事情,比如发起 DoS 攻击或对 NSA 进行端口扫描。此外,在部署恶意软件后,不要在系统上共享任何媒体(拇指驱动器等)。如果您确实想保存文件以供以后使用,请在驱动器上放一圈繁文缛节,以确保您不会将其与其他文件混淆。

这取决于哪种恶意软件 - 如果您对正在测试的特定恶意软件的行为有一个很好的了解,那么互联网访问应该不是问题。当然,您必须确信运行它不会攻击任何 Internet 主机,例如,来自有关恶意软件分析的其他知名报告。

总有可能出现 VM 突破,但这些错误是否已被发现是另一个问题。一般来说,您是安全的,特别是如果您只测试已知不包含任何 VM 漏洞利用的恶意软件。

我最近为恶意软件测试设置了一个 VMware Fusion 网络。根据恶意软件的种类,我可以设置 Iptables 来阻止互联网访问(除了 DNS 和其他列入白名单的主机),或者允许公共互联网访问。始终禁止访问私人地址 - 这将保护您的本地网络免受恶意软件的遍历。

我的拓扑如下:

Host (Mac) <--> Debian running as IP forwarder with Iptables <--> Windows Test machine
                                                              |->  Kali box

Kali 盒子就在那里,所以我也可以从外部角度对目标机器运行我自己的自定义漏洞利用。

Debian 系统有两个网络接口,这使得有权配置的网络不能访问主机,也不能访问任何外部网络。左边的网络被配置为只能访问互联网,没有主机访问。

您无需担心 MAC 被暴露,因为它们是二级网络实体,因此对设备的互联网连接没有任何影响,仅对本地网络有任何影响。当然,如果恶意软件接触任何基于 Internet 的服务,您的 IP 将暴露于此,除非您将 Debian 系统配置为 VPN 或 Tor 这些连接。

房间里的大象是,即使有“受信任的恶意软件行为”,有问题的恶意软件也可能从其控制器主机下载任意可执行文件,因此它可能会做任何事情,例如攻击银行网站或试图突破虚拟机。因此,如果这是一个问题,如果您要真正分析恶意软件的行为并完全禁止互联网访问,您将不得不使用另一个虚拟机来模拟控制器主机。