我之前曾使用 Cuckoo Sandbox 分析过恶意软件,但是,我发现某些恶意软件无法运行,因为它们检测到它们实际上是在虚拟环境中运行(它们实施了一些反虚拟化技术)。所以我的想法是在真实环境中运行恶意软件,然后使用系统的干净副本回滚到干净状态。我只想检查以下内容:
- 这是分析实施反虚拟化技术的恶意软件的正确方法还是通常遵循的其他方法?
- 是否有恶意软件分析器广泛使用的特定程序来保留干净系统状态的副本并重新安装它?(我只对 Windows 恶意软件感兴趣)
我之前曾使用 Cuckoo Sandbox 分析过恶意软件,但是,我发现某些恶意软件无法运行,因为它们检测到它们实际上是在虚拟环境中运行(它们实施了一些反虚拟化技术)。所以我的想法是在真实环境中运行恶意软件,然后使用系统的干净副本回滚到干净状态。我只想检查以下内容:
是的,这是一种常用的方法。
Faronics Deep Freeze 是一款有趣的软件,可在重新启动时擦除更改,但它本身会受到检测。Clonezilla 是一个很好的成像工具,使用起来非常简单。我见过的最佳设置是使用 Intel AMT 从 RAM 启动映像,这使得映像过程更快。
提问者的#2 的答案是完整的,但让我们更深入地研究一下#1。
还有其他分析恶意软件的方法,这些方法实现了反虚拟化、虚拟机检测、沙箱检测和沙箱规避技术。但是,恶意软件是否还包括环境键控检测或规避技术,例如此处概述的技术——https: //www.vmray.com/blog/sandbox-evasion-techniques-part-4/——(又名上下文-aware 恶意软件又名环境敏感)?
Cuckoo 是用于特征和行为提取的优秀沙箱,因此跳转到 Windbg 或其他经典的裸机调试并不总是明智的(尽管有时这样做是明智的)。如果 Cuckoo 的内置伪装解决方案vmcloak可以阻止恶意软件检测或规避它,那么您仍然可以获得 Cuckoo 的所有好处。
其中一些可以在静态分析或什至在简单的 Yara 分类过程中尽早引出。还有一些执行 Yara 分类的高级方法可以在活动中捕获恶意进程,例如 Godaddy 的 procfilter -- https://github.com/godaddy/yara-rules/blob/master/features/virtualbox_detection.yara
如果您使用动态分析来引出沙箱检测、规避或上下文感知恶意软件技术,请务必了解您的局限性。makin是一个很好的起始框架,可以确定那些反调试功能。
这在很大程度上取决于您使用恶意软件的目标。你想了解他们什么?你有什么问题?您是否需要为仅供内部使用的黑名单提取主动威胁指标,还是会共享它们?您是否需要取消配置在您网络中的系统上运行的 RAT?例如,对民族国家 RAT 的关注可能需要跳转到 -- https://github.com/ctxis/CAPE -- 工具或类似工具。
如果您想要一个简单的解决方案来扩展基于沙箱的自动化,并且具有超越 vmcloak 的隐蔽功能,请查看 -- drakvuf.com
我绝对对@ekse 在主要答案中谈到的更多裸机技术(尤其是 AMT RAM 克隆器!)感兴趣。这些也是非常有价值的!但是,仅仅因为您拥有裸机并不意味着上下文感知恶意软件技术(例如定时炸弹、逻辑炸弹和专门针对的恶意逻辑)不会成为额外的问题——您必须考虑到它们!