我最近设法隔离并归档了一些文件,这些文件对我的客户端系统之一造成了严重破坏。因此,我想知道哪种软件和技术可以最好地隔离代码并进行深入研究以了解其工作原理。

通常,到现在为止,我还是会启动一个新的沙箱。 VMWare或QEMU实例消失了,但我很清楚,一些编写良好的恶意软件可以相对容易地从VM中爆发。因此,我正在寻找技术(例如,使用具有不同仿真CPU架构的VM。)和软件(也许是类似的沙盒套件?)来减轻我正在“爆发”代码的可能性。 br />
您推荐什么技术?您推荐什么软件?

评论

在VM中安装恶意软件是否安全提供了一些背景知识。

虚拟机还能阻止恶意软件造成危害吗?

请注意,格式为“你们都使用X的问题”。将被视为一个轮询问题,在Stack Exchange上,这种问题很少被认为比我们的问与答格式更适合论坛格式。

注意...还有人建议进行修改以解决此问题,因此我接受了。

#1 楼

标题提到“沙盒”,但通常不称VMWare或QEMU,因此问题似乎更多是关于“如何在没有感染危险的情况下对其进行分析?”

有三大类您可以在此处使用的工具和方法。

1。用户模式沙箱

用户模式沙箱基本上运行正在调查的示例,但拦截所有或至少访问主机操作系统的最关键的API,将它们中和并修改结果,以欺骗软件认为它独自运行。此类工具中最受欢迎的工具之一似乎是Sandboxie,但还有其他工具,例如PyBox。通常可以很容易地被恶意软件检测到,并且始终存在未经仿真的API会使代码无法运行的危险。

2。虚拟机和仿真器

这些要更深入一些,不仅要模拟API,还要模拟实际代码的执行。同样,通常您需要在仿真器中运行完整的操作系统,并且不能按原样使用主机操作系统(根据您的目标而定,可能是优缺点)。可以通过用于仿真的方法将它们进一步分为三类:

a)虚拟化

,其中包括VMWare,VirtualBox和VirtualPC。他们使用最新处理器的虚拟化功能来本地运行大多数代码,并且仅模拟内存或硬件访问。这可以使它们快速运行,但从理论上讲,可以在实现错误的情况下使代码转义VM。

b)动态转换

QEMU使用这种方法。它将每个基本块转换为一系列本机CPU的指令并执行。这种方法允许它合理地快速仿真许多不同的体系结构,但是时序可能与原始体系有很大不同。我想我没有听说过任何VM转义的错误,但可以检测到。

c)完全仿真这是Bochs使用的。当它们执行时,它可以完全逐条模拟每条单独的指令。这使它比其他解决方案要慢一些,但即使是最底层的细节也可以实现几乎完美的仿真。对于VM转义错误,这可能也是最安全的。有一些实现错误可以用来检测它,但我认为其中大多数已得到修复。

3。静态分析

避免突围的最佳方法是根本不运行代码!此外,静态分析使您可以查看二进制文件的完整代码,并查看所有代码,甚至包括运行该二进制代码无法获取的代码路径,并且可以避开所有运行时检查和检测。 ,静态分析可能会因恶意软件中使用的打包或混淆而受阻。因此,通常有必要结合几种方法。我不是专业分析师,但是涉足某些恶意软件分析。我的工作流程通常是这样的:


在IDA中打开示例。
如果它看起来已打包或加密,请使用Bochs调试器模拟其执行并使其自身解压缩。
完成后(通常很明显),我会拍摄一个内存快照,停止调试,并继续进行静态分析。
如果解压后的代码包含另一个嵌入式文件(很常见的情况),请将其保存到一个单独的文件中文件并转到步骤1


#2 楼

Bochs,如果您不需要速度,但需要很大的灵活性。您可以将Bochs与GDB一起使用。

Qemu如果需要更高的速度和更少的灵活性(它可以动态翻译,因此可以提高速度,但会丢失指令的执行顺序),可能比博克斯它类似于Vmware和virtualbox,实际上是从中衍生而来的。您可以将GDB与Qemu一起使用。

Xen我的一个朋友对Xen虚拟机管理程序非常有信心,只要正确设置它即可,这意味着使用串行环回进行配置和其他复杂设置。但是,这将非常快,但仍然是孤立的,并且据我所知,只要您控制串行连接,它就可以保证您的安全。仍然Bochs可能是最安全的。

尽管现在没有许多仿真软件可以检测和规避它,但像SoftICE这样的仿真器/虚拟化解决方案调试器也可能会很有用。

#3 楼

Gilles提供了一些很棒的链接,我想再讨论一下使用虚拟机进行恶意软件分析。尽管确实有可能突破虚拟机,但我还没有遇到过这样的情况,甚至没有听说过这样的情况,并且我认为如果有人找到它,这将引起一些轰动。为了安全起见,只需像在使用调试器时那样,在隔离的计算机和网络上运行VM软件即可。

我建议您尝试使用Cuckoo Sandbox。它可以自动化在VM(支持VMware,VirtualBox和KVM)中运行恶意软件的过程,并提取数据,例如修改后的文件,内存转储或网络流量。它甚至还通过DLL注入支持API跟踪,这非常简洁。

#4 楼

从字面上看,对于恶意软件来说,您不需要先在本地安装任何特殊软件。
您可以使用足够多的在线沙箱:



totaltotal。 com的沙箱是使用Cuckoo沙箱实现的。当您应用新样品时,它会作为分析的一部分自动执行。大约10-15分钟后,您可以在“行为信息”中看到结果。

anubis.iseclab.org是另一个可以在本地执行二进制文件之前查看其行为的地方。在这里,您可以获得网络活动的报告和pcap文件(如果有的话)。

结果-您可能基本了解二进制文件的功能以及如何对其进行分析。
但是-请注意,该复杂的恶意软件会在其环境中检查沙盒跟踪和VM是否存在。因此,在实际情况下,看似“无害的二进制文件”很有可能是复杂的恶意软件。