当前位置: 首页 > 科技观察

恶意软件沙盒规避技术详解

时间:2023-03-21 13:11:00 科技观察

网络攻击正变得越来越复杂,因为黑客正在实施最新的技术来绕过保护。勒索软件和零日攻击是过去几年中最普遍的威胁,而今天逃避沙箱的恶意软件将成为未来网络攻击者的主要武器。沙盒广泛用于恶意软件检测和预防,因此黑客一直在寻找使他们的恶意软件在沙盒内保持不活动状态的方法。这样,逃避沙盒的恶意软件就可以绕过保护并执行恶意代码,而不会被现代网络安全解决方案检测到。在本文中,我们描述了恶意软件用来避免沙箱分析的技术,并说明了用于检测逃避沙箱的恶意软件的现有方法。本文对正在开发网络安全解决方案的开发人员很有用。在讨论逃避沙箱的恶意软件之前,让我们定义什么是沙箱。沙盒是一种用于恶意软件检测的自动化技术,被传统防病毒程序和其他安全应用程序广泛使用。通过将具有潜在危险的程序放置在不会造成任何伤害的受控虚拟环境中,安全软件可以分析恶意软件的行为并开发针对恶意软件的保护措施。虽然沙盒技术被认为是有效的,但网络犯罪分子现在正在应用新技术来允许恶意软件逃离沙盒。据估计,近98%的现代恶意软件至少使用一种规避技术。此外,超过32%的恶意软件配备了六种或更多方法来避免在防病毒沙箱中被检测到。例如,Cerber勒索软件运行28个进程以确定它是否已到达目标环境。一些网络安全专家甚至预测,到2020年,第一个使用AI算法逃避虚拟环境的恶意软件可能会出现。什么是沙箱规避恶意软件?沙盒逃避型恶意软件是一种新型恶意软件,可以识别是在沙箱环境还是虚拟机环境中。这些恶意软件仅在受控环境之外执行其恶意代码。第一个绕过沙箱保护的恶意软件出现在1980年代。该恶意软件使用逃避技术,允许病毒加密自己的代码,这样安全专家就无法读取它。从那时起,网络罪犯开发了500多种规避技术,并以几个当代恶意软件家族为基础。如今,加密的恶意软件可以隐藏更复杂的威胁,这些威胁旨在长时间攻击受害者的系统。此外,还有全新类型的恶意软件采用沙盒规避技术,甚至可以绕过使用机器学习算法的保护措施。逃避沙箱的恶意软件的真实示例近年来,通过逃避沙箱的恶意软件进行的攻击有所增加。尽管它们以不同的方式攻击计算机,但它们都使用允许恶意软件了解其环境的技术。以下是一些逃避沙盒的恶意软件示例:2016年发布的Locky勒索软件是逃避沙盒的典型示例。Locky通过感染了加密DLL文件的JavaScript代码传播。该恶意软件需要run32dll.exe来执行DLL。但是,run32dll.exe在沙盒环境中不可用,因此,这使得恶意软件无法检测到。Locky家族的另一种恶意软件KeRanger在下载到系统三天后才开始工作。2018年年中,中东地区发现新版RogueRobin木马。这种面向政府的恶意软件通过电子邮件在附加的RAR存档中分发。一旦启动,该恶意软件就会使用虚拟机映像来验证其运行所在系统的BIOS版本、CPU内核和物理内存,并且不会在沙箱中运行。2019年,黑客利用HAWKBALL后门攻击中亚地区的政府部门。该恶意软件利用MicrosoftOffice漏洞来传递有效载荷并收集系统信息。它能够执行本机Microsoft命令、调查主机,甚至验证它使用的进程是否经过调试。2019年3月,检测到使用改进的沙箱规避技术的新macOS恶意软件样本。与之前的版本相比,OSX_OCEANLOTUS.D具有带有UPX字符串的Mach-O签名,这使得在虚拟环境中进行静态分析时无法检测到它。此外,后门可执行文件会检查它是否连接到调试器并收集有关主机的数据。如您所见,逃避沙箱的恶意软件使用不同的技术来混淆沙箱。让我们更深入地了解恶意软件如何逃避反恶意软件程序,以及我们如何在沙盒分析期间检测恶意软件。最常见的沙盒规避技术为了避免检测,恶意软件使用特殊的沙盒规避技术,这些技术主要基于检测用户或系统交互或获得环境意识。检测用户交互用户以不同的方式与计算机系统交互,但在沙盒环境中没有类似人类的交互。因此,黑客可以让恶意软件在显示恶意行为之前等待特定的用户操作。以下是一些可以激活逃避沙箱的恶意软件的用户操作示例:滚动文档。可以将现代恶意软件编程为仅在滚动到文档中的特定位置后才执行。例如,恶意软件仅在用户将RTF文档滚动到第二页后才会被激活。为了检测这一点,恶意软件包含MicrosoftWord文档中使用的段落代码。尽管RTF文件也包含段落标记(./par),但恶意软件代码由一系列段落组成,在执行利用代码之前需要滚动这些段落。另一方面,沙盒环境不包含任何滚动操作,使恶意软件处于休眠状态。移动并单击鼠标。一些恶意软件被编程为检查鼠标移动和点击的速度,并在速度可疑时保持不活动状态。例如,Trojan.APT.BaneChan仅在用户点击一定次数的鼠标后才会激活。检测系统签名可以对规避沙箱的恶意软件进行编程,以查找真实系统的某些功能,这些功能在沙箱或虚拟环境中不可用。内核计数技术允许恶意软件发现虚拟系统和物理系统之间的差异,例如CPU内核的数量。这就是为什么许多沙盒供应商隐藏他们的实际配置,以便黑客无法检测到沙盒规范的原因。数字系统签名。某些恶意软件旨在查找系统的数字签名,其中包含有关计算机配置的信息。安装程序。该技术允许恶意软件通过查找操作系统中的活动进程来检查防病毒程序的可用性。逃避沙盒的恶意软件的一个示例是ClientMaximus恶意软件,它使用隐形驱动程序来应用此技术。操作系统重新启动。恶意软件可能被设计为仅在系统重新启动时激活。使用此技术是因为某些沙箱无法在重启后继续存在。虽然虚拟环境可能会尝试通过让用户登录和注销来模拟重启,但恶意软件可以检测到这一点,因为并非所有重启触发器都会执行。具有环保意识的网络罪犯开发具有环保意识的恶意软件通常都知道沙箱的工作原理。因此,他们可以很容易地编写病毒程序来检测它们是否在裸机环境中运行。为了检查其环境,可以对恶意软件进行编程以检测安装在受感染系统上的设备,或寻找仅属于虚拟环境一部分的指标,例如管理程序调用、某些文件名和典型的沙盒进程。此外,此恶意软件可以在将沙箱命名为“样本”或“恶意软件”时检测到沙箱。此外,当病毒发现vmusrvc.exe、boxservice.exe或vmtoolsd.exe等进程时,它可以检测到它处于虚拟环境中。例如,旨在挖掘Monero加密货币的BlackSquid恶意软件使用多种方法来感知其环境。特别是,该恶意软件会检查常见的沙箱用户名并为硬件断点注册断点。它还验证磁盘驱动器模型、设备驱动程序和动态链接库。其他规避技术其他流行的规避沙箱技术包括计时和数据混淆。基于时间的技术在某些情况下,恶意软件使用基于时间的技术来规避沙箱。沙箱通常只在有限的时间内分析恶意软件,而基于时间的技术很乐意滥用此功能。以下是三种常见的基于时间的沙箱规避技术:休眠。当恶意软件使用长睡眠调用时,它可以在执行前成功离开沙箱。定时。在某些情况下,可以将恶意软件编程为在特定日期和时间执行。暂停代码。恶意软件可能包含执行无用的CPU周期以延迟真实代码直到沙箱完成测试的恶意代码。混淆内部数据沙箱规避技术允许恶意软件更改或加密其代码和通信,使其无法被沙箱分析。快速通量。这种技术基于更改DNS名称和IP地址,并被想要隐藏发送网络钓鱼和恶意软件的地址的僵尸网络广泛使用。它允许恶意软件绕过安全解决方案创建的恶意网站黑名单。例如,Necurs僵尸网络使用每四天创建一个新域名的域生成算法来更改网站地址。数据加密。一些恶意软件,例如特洛伊木马Dridex,也可以加密API调用,这样传统的恶意软件沙箱就无法读取它们。Andromeda僵尸网络使用多个密钥来加密与服务器的通信。如何检测逃避沙箱的恶意软件我们描述的逃避技术可以让开发人员更好地理解如何检测逃避沙箱的恶意软件。以下是您可以在安全解决方案中实施的一些原则,以防止逃避沙箱的恶意软件。动态改变休眠时间。沙盒通常会分析恶意软件几秒钟,而较长的分析时间会大大增加检测到睡眠时间恶意软件的机会。但是,此方法可能无效,因为它需要更多时间。相反,您可以让沙箱动态更改其时间设置以欺骗恶意软件并刺激其执行。模拟人机交互。沙箱环境默认不模拟交互,但您可以添加一些类似用户的交互以更好地分析恶意软件。但是,请记住,现代恶意软件技术可能很棘手,可以检测到虚假的鼠标点击或移动。添加逼真的环境和硬件工件。检索沙盒中的硬件信息将帮助您检测恶意软件以检查硬盘大小、最近使用的组件、CPU编号、操作系统版本、内存容量以及其他系统和硬件特征。除动态分析外,还进行静态分析。沙盒是一种动态恶意软件分析形式,可在安全环境中检查恶意软件行为。虽然逃避沙箱的恶意软件什么都不做,但您可以对其执行完全静态的代码分析。静态分析检查文件是否存在规避技术或加密代码段。使用指纹识别。指纹识别技术允许您分析恶意软件文件并找到恶意代码的指标。指纹识别也可用于检测恶意软件的规避特征。使用基于行为的分析。基于行为的分析提供了旨在检测??和打击规避技术的功能。在此分析过程中,沙箱与恶意软件本身进行交互以查找可能的执行路径。此外,它模拟看起来很像主机的进程交互。一旦检测到沙箱规避技术,沙箱就会消除其恶意代码。自定义您的沙箱。通过在沙箱中添加其他用于恶意软件检测的创新功能,可以显着提高其检测恶意软件的效率。例如,您可以使用包含多个环境和迭代分析的多沙盒阵列。它对于检查计算机系统API之外的恶意软件通信也很有效。您还可以向沙箱添加一项功能,在运行时搜索和验证恶意代码的踪迹。添加内核分析。尽管大多数沙箱解决方案在用户模式下运行,但某些类型的恶意软件旨在将恶意代码注入内核空间(rootkit或驱动程序),从而逃避沙箱攻击。例如,早期版本的Turla恶意软件加载并利用易受攻击的VirtualBox驱动程序,并禁用对签名驱动程序加载的检查。因此,通过在解决方案中加入内核分析,可以防止恶意软件进入内核。实施机器学习。基于机器学习算法的恶意软件分析可以在恶意代码执行之前有效地检测沙箱规避技术。机器学习算法可以分析恶意软件不活动或休眠的每一种行为,作为规避技术的信号。此外,它还可以收集数以百万计的其他信号,共同检测恶意代码。将内容解除和重建(CDR)视为附加的安全措施层。CDR通常被认为是沙盒的对立面,但它可以用作其他安全解决方案的附加组件。此技术从文件中删除所有活动内容并为用户提供经过净化的文档。它允许您立即防止隐藏在文档中的恶意软件,但也可能导致损坏的文件包含脚本,例如用JavaScript编写的Office宏,即使它们不是恶意的。结论逃避沙盒的恶意软件旨在避免被基于沙盒的保护程序检测到。这意味着传统的恶意软件检测方法对这些恶意软件无效。本文翻译自:https://www.apriorit.com/dev-blog/545-sandbox-evading-malware