恶意软件沙箱检测

信息安全 恶意软件 逆向工程 沙盒 调试
2021-08-18 12:26:49

我使用OllydbgIDA Pro和Sysinternals 套件等其他工具开始了一些逆向工程练习。其中一些练习是关于恶意软件的。我从名为The Zoo的很棒的 github 存储库下载了一些不同的恶意软件

我创建了自己的基于 Windows 的 Virtualbox vm 作为沙盒环境。问题是一些高级恶意软件能够检测到它在沙盒环境中运行并且它具有不同的行为(在沙盒中是个好孩子)。

我尝试了像Pafish这样的软件来检测虚拟环境。它追踪了一些特征:

癞蛤蟆

我试图“调整”其中一些(注册键),但它们在每次重新启动时都会恢复。无论如何,我想其中有些是无法隐藏的。所以让我们假设恶意软件如果稍微详细一点,总是能够检测到沙盒虚拟机环境。

有没有其他更好的沙盒方法来避免恶意软件沙盒检测?

2个回答

从本指南开始——https: //github.com/hfiref0x/VBoxHardenedLoader——它在使 VirtualBox 来宾 VM 更难以检测方面是令人难以置信的最新,包括 2017 年有效的技术。这肯定会让你自动化恶意软件分析计划和目标更容易实现。

考虑使用 VirtualKD 在来宾 VM 之外进行跟踪和调试,如三本书中所述:1) Windows 恶意软件分析要点,2) Gray Hat Hacking 4th Edition,3) 实用逆向工程。您可以使用 qb-sync 在Windbg和 IDA Pro之间同步视图。

与其他用户级调试技术(如 Scylla、HideToolz、HideCon 等)相比,更喜欢 VirtualKD。这些都不是很好,因为击败 VM 检测已经足够困难了。击败反调试和相关的不良行为只需要在用户空间做太多的工作。

Pafish 和sem 工具一样,也有点过时了。我建议您使用 -- https://github.com/LordNoteworthy/al-khaser -- 使用沙盒(例如来宾虚拟机)对您的自动恶意软件分析进行压力测试。

这些博客上提供了有关 VM 检测的其他信息:

请将二进制分析和逆向工程问题直接发送到https://reverseengineering.stackexchange.com/特别是如果您刚刚开始,因为已经有大量相关知识已经在那里共享并且由专业人士经常使用和贡献逆向工程师和恶意软件分析师。

可能相关的现有问答:

首先也是最重要的:如何安全地分析潜在有害的二进制文件?

如果您想动态分析采用反分析技术的 PE 二进制文件,ScyllaHideImmunity DebuggerCheat Engine可能会很有用。

了解更多信息。

根据文章A Look at Malware with Virtual Machine Detection,根据用于检测程序是否在 VM 中运行的方法,可以直接修补二进制文件以使这些方法不执行。

上述文章中提到的 Ed Skoudis 2006 年的一篇名为On the Cutting Edge: Thwarting Virtual Machine Detection 的论文也可能会给您一些想法。

二进制文件使用的虚拟机检测技术也可能取决于它的编写时间:根据 2014 年赛门铁克的文章恶意软件仍然检测虚拟机吗?,

大多数示例使用带有内置 VM 检测的运行时打包程序。通常,这意味着打包器或加密器将执行检测,而不是样本本身。恶意软件作者已经意识到,当应用程序检测到它正在虚拟机上运行时,这是可疑的,因此他们近年来已停止使用这些功能。

如果您要分析的某些二进制文件属于这种情况,那么这些可能包含有用的信息:

除了传统方法之外,还有诸如 angr 和 valgrind 之类的二进制检测框架,它们无需执行二进制的原始目标代码即可完成动态分析。

如果这些都对您没有帮助,请在https://reverseengineering.stackexchange.com/上提出一个新问题。