捕获逃避沙箱的恶意软件:技术、原理和解决方案 - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

捕获逃避沙箱的恶意软件:技术、原理和解决方案

walker 技术 2023-09-10 11:20:00
26759
收藏

导语:本文对于致力于网络安全解决方案并希望改进沙箱的开发人员来说非常有用。

沙盒是一种行之有效的检测恶意软件并阻止其执行的方法。然而,恶意行为者正在寻找方法来教他们的恶意软件在沙箱中保持不活动状态。逃避沙箱的恶意软件可以绕过保护并执行恶意代码,而不会被现代网络安全解决方案检测到。 

在本文中,我们分析了恶意软件用来避免沙箱分析的技术,并分享了我们在 Apriorit 中使用的最佳实践来构建可以检测和阻止规避恶意软件的沙箱。 

本文对于致力于网络安全解决方案并希望改进沙箱的开发人员来说非常有用。

什么是沙箱和沙箱规避恶意软件?

在我们讨论逃避沙箱的恶意软件之前,让我们先弄清楚什么是沙箱。NIST将沙箱定义为“允许不受信任的应用程序在高度受控的环境中运行的系统,其中应用程序的权限仅限于一组基本的计算机权限。”

沙盒解决方案可以是独立工具,也可以是网络安全软件(例如防火墙或防病毒程序)的一部分。通过将潜在危险的程序放入不会造成任何损害的受控虚拟化环境中,安全软件可以分析可疑代码的行为并制定针对其的保护措施。

image.png

尽管沙盒技术被认为是有效的,但网络犯罪分子现在正在应用让恶意软件逃避沙盒分析的技术。 

逃避沙箱的恶意软件可以识别它是否位于沙箱或虚拟机环境中。此类恶意软件感染在脱离受控环境之前不会执行其恶意代码。为了隐藏威胁,恶意软件可以使用反沙箱技术,例如:

  • 加密

  • 环境扫描仪

  • 用户活动监控

  • 人工智能 (AI) 算法

  • ETC。

我们将在本文后面讨论规避技术。现在,让我们看几个逃避沙箱的恶意软件的示例,以了解此类威胁的严重性和可能的后果。

逃避沙箱的恶意软件的真实示例

沙箱规避是一种极其常见的攻击技术,由具有规避能力的恶意软件引发的网络安全事故也经常成为新闻报道。

例如,2023 年发现的信息窃取恶意软件Beep使用 17 种规避技术来不被受害者的网络安全系统检测到。该恶意软件可以混淆和反混淆恶意代码、检测其是否被跟踪、关闭调试器、隐藏其 API 函数等等。在发现时,Beep 仍处于开发阶段,因此该恶意软件现在可能具有更多的沙箱规避功能。

另一种最近发现的恶意软件Batloader也具有很多反沙箱功能。它可以停止安全软件服务,避免防病毒解决方案的活动,并将自身伪装成合法文件。

大多数逃避沙箱的恶意软件并没有登上新闻或成为著名网络安全研究的焦点,仅仅是因为恶意软件的类型太多。恶意行为者可以使用Python、自动代码生成和人工智能算法等流行技术来快速开发具有规避功能的恶意软件。甚至可以说服 ChatGPT为您编写规避恶意软件。

有数十种沙箱规避技术可以嵌入恶意软件中。让我们仔细看看这些技术如何从网络安全解决方案中隐藏恶意软件。

最常见的沙箱规避技术

MITRE ATT&CK 是著名的网络安全攻击知识库,定义了三种关键的恶意软件沙箱规避技术。让我们看看它们是如何工作的:

image.png

1. 系统检查

逃避沙箱的恶意软件可以被编程来识别真实系统的一些在沙箱或虚拟环境中不可用的功能。

image.png

以下是恶意软件如何利用系统信息逃离沙箱:

  • CPU 核心数量和硬件组件。恶意软件可以发现虚拟系统和物理系统之间的差异(例如 CPU 核心数量),并将其用于沙箱检测。这就是为什么许多沙箱供应商隐藏其实际配置,使黑客无法检测沙箱规格。

  • 数字系统签名。某些恶意软件旨在查找系统的数字签名,其中包含有关计算机配置的信息。

  • 已安装的程序。该技术允许恶意软件通过查找操作系统中的活动进程来检查防病毒程序是否存在。 

  • 操作系统重新启动。有些沙箱无法在操作系统重新启动后继续存在,因此可以将恶意软件编程为仅在重新启动后激活。尽管虚拟环境可能会尝试通过登录和注销用户来模拟重新启动,但恶意软件可以检测到这一点,因为并非所有重新启动触发器都会执行。

  • 系统工件。虚拟机在其内存、进程和文件中包含特定的工件。恶意软件可以查找虚拟机 (VM) 指令以及与 I/O 端口的通信等工件,以检测其是否在沙箱内启动。

2. 基于用户活动的检查

用户以不同的方式与计算机交互,但在沙箱环境中不存在类似人类的交互。因此,黑客可以教恶意软件等待特定的用户操作,然后才表现出恶意行为。以下是依赖用户操作的沙箱检测技术的一些示例:

image.png

  • 滚动文档。现代恶意软件可以被编程为仅在用户到达文档中的特定位置后才执行。Microsoft Word 文档中编写的恶意软件可能包含用于检测滚动的特殊段落代码。沙箱环境不包含任何滚动运动,允许恶意软件保持休眠状态。

  • 移动并单击鼠标。某些恶意软件经过编程,可以检查鼠标移动和点击的速度,如果速度快得可疑、没有检测到足够的鼠标点击或用户没有采取特定操作,则保持不活动状态。

  • 拥有浏览器历史记录、缓存和书签。每天上网的真实用户会将其历史记录和缓存保存在他们的计算机上。沙箱不会有这些,因为它会定期清理浏览缓存以删除潜在的恶意软件并确保沙箱的正确操作。恶意软件可以检查系统是否具有此类信息,如果没有找到任何信息,则处于休眠状态。

  • 将文件保存到特定目录。恶意软件可以检查系统是否允许将自定义文件保存到桌面和根文件夹。不建议将文件保存在这些目录中,因此沙箱不会这样做。但尽管系统建议,大多数实际用户仍将文件保存到桌面和根目录。 

3.基于时间的逃避

在某些情况下,恶意软件使用基于计时的技术来逃避沙箱。沙箱通常会在有限的时间内分析恶意软件,而基于计时的技术很乐意滥用此功能。

以下是三种常见的基于时间的沙箱检测方法:

image.png

  • 延长睡眠时间。当恶意软件使用延长睡眠时,它可以在执行之前成功离开沙箱。

  • 逻辑炸弹。在某些情况下,恶意软件可以被编程为在特定日期和特定时间执行。

  • 停止代码。恶意软件可能包含执行无用 CPU 周期的代码,以延迟恶意代码的执行,直到沙箱完成测试。

额外的沙箱规避机制

在开发恶意软件时,恶意行为者会尝试实施尽可能多的规避技术和机制,以确保其代码的成功。以下是他们用来增强上述技术的关键附加机制:

  • 加密和混淆。加密的恶意软件通常包含解密循环和主体。解密循环对包含恶意代码的主体进行加密和解密。 

  • IP 地址和 DNS 名称的更改。此机制可帮助恶意软件隐藏网络钓鱼和恶意软件传递地址。它允许恶意软件绕过安全解决方案创建的网站黑名单。 

  • 隐写术和多语言。这些类型的恶意软件将恶意代码隐藏在代码的被动部分(例如图像)中。可以将代码放置在图像的元数据和图像本身中。这种规避方法对于基于浏览器的攻击特别有用。

  • 寡态、多态、变质。恶意软件可以篡改其解密器,使沙箱更难检测到恶意代码。例如,它可以为每种感染和代码类型创建新的解密器(寡态性),为每个新解密器稍微修改恶意代码(多态性),或者根据沙箱的属性使用突变引擎修改恶意代码(变态性) 。

  • 数据包碎片。安全解决方案通常等待整个流量数据包到达,然后对其进行分析。恶意软件可以利用此数据包分段协议并仅将恶意代码作为数据包的一部分发送。

各种各样的沙箱规避技术和机制使得在安全环境中包含恶意软件成为一项棘手的任务。在 Apriorit,我们可以根据解决方案的性质通过多种方式解决这一挑战。让我们看一下我们用来确保恶意软件遏制的一些最佳实践。

开发可靠沙箱的最佳实践

我们描述的规避技术可以帮助开发人员更深入地了解沙箱中的恶意软件检测。这就是为什么我们 Apriorit 在开发沙箱时结合了各种网络安全检查和防御措施。以下是您可以在安全解决方案中实施的一些原则,以保护其免受沙箱规避恶意软件的侵害:

image.png

1. 模拟真实环境 

与真实用户的真实环境相比,虚拟机的运行方式有所不同。现代恶意软件可以识别差异,例如不频繁的重新启动和特定于虚拟机的指令,以及检测虚假的鼠标点击和移动。检索沙箱中的硬件信息将帮助您检测恶意软件,该恶意软件会检查硬盘大小、最近的文件、CPU 核心数量、操作系统版本、内存容量以及其他系统和硬件特征。 

您还可以配置沙箱以动态更改睡眠持续时间和恶意软件分析的周期。虽然沙箱通常会分析恶意软件几秒钟,但长时间的分析会随着睡眠持续时间的增加而显着增加检测到恶意软件的机会。请注意,这种恶意软件检测方法需要大量时间。 

2、静动态结合分析

沙盒技术是动态代码分析的一种形式,因为它检查安全环境中的恶意软件行为。知道这一点后,许多恶意软件开发人员尝试通过将代码置于睡眠状态或使其采取尽可能少的操作来逃避动态分析。 

要检测此类恶意软件,请将静态代码分析添加到您的沙箱中。静态分析检查潜在恶意软件是否存在规避技术或加密代码片段,而不考虑文件活动。此方法对于检测具有延迟执行脚本的恶意软件非常有效。但是,您不能仅仅依靠静态分析来阻止恶意软件。

3. 实施人工智能

人工智能算法可以提高沙箱的准确性,并在执行之前检测到更多威胁。与传统的基于规则的网络安全机制相比,人工智能可以学习检测零日威胁,适应新的规避技术,并根据其早期行为识别恶意软件。

您可以添加专注于网络安全的 AI 算法

  • 模拟真实用户行为,使恶意软件认为它位于沙箱之外

  • 分析潜在恶意文件的行为

  • 增强静态和动态分析

4. 分析文件签名

基于签名的检测分析进入系统的每个软件的独特数字足迹或签名。每个防病毒解决方案都有一个已知恶意软件签名的内置数据库。如果新软件的签名与该数据库中的记录匹配,沙箱会自动删除或隔离该软件。

然而,签名检查无法阻止动态变化的恶意软件。为了检测此类威胁,请考虑实施循环冗余校验的计算。校验和有助于验证正在分析的文件自进入系统以来没有发生更改。

5、采用内容解除和重构技术

内容解除和重建 (CDR) 是一种网络安全技术,可从文件中删除任何可疑代码。为了确定代码是否可疑,CDR 使用系统策略和定义。这项技术通常被认为是沙箱的对立面,但它可以作为其他安全解决方案的附加技术。 

CDR 从文件中删除所有活动内容,并向用户提供经过清理的文档。它允许您立即阻止隐藏在文档中的恶意软件,但存在损坏包含脚本(例如用 JavaScript 编写的 Office 宏)的文件的风险,即使它们不是恶意的。

6.让时间过得更快

延迟恶意代码的执行是恶意软件的基本规避策略之一。沙箱不是全天候(24/7)活动的,因此即使是最简单的恶意软件也可以通过让自己休眠几个小时来逃避安全检查。因此,当沙箱处于活动状态时,它可能会将恶意文件误认为是安全文件。

检测逃逸恶意软件的一种方法是在沙箱激活时更改虚拟机的时间配置。这样,您就能够诱骗恶意软件唤醒并执行其恶意代码。另一种选择是让虚拟机内的时间过得更快,并简单地等待恶意软件的休眠期结束。

7. 在单独的环境中部署沙箱

即使是最安全的沙箱也可能在某些时候崩溃并让恶意软件进入您的环境。为了防止这种情况发生,请将沙箱部署在与主沙箱不同的环境中。例如,您可以使用云部署、访问受限的远程端点或其他虚拟机。

结论

逃避沙箱的恶意软件旨在逃避基于沙箱技术的保护程序的检测。这意味着传统的恶意软件检测方法无法有效对抗此类恶意软件。要开发可以检测和阻止恶意软件的沙箱,您需要结合各种网络安全技术、方法和工具。 

本文翻译自:https://www.apriorit.com/dev-blog/545-sandbox-evading-malware如若转载,请注明原文地址
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

 
本站4hou.com,所使用的字体和图片文字等素材部分来源于原作者或互联网共享平台。如使用任何字体和图片文字有侵犯其版权所有方的,嘶吼将配合联系原作者核实,并做出删除处理。
©2022 北京嘶吼文化传媒有限公司 京ICP备16063439号-1 本站由 提供云计算服务