通过数据来源分析来寻找隐藏的恶意软件

Abstract

为了颠覆外围和主机安全方面的最新进展,攻击者社区开发并使用了各种攻击向量,使恶意软件比以前更隐蔽,从而穿透目标系统并延长其存在时间。此类高级恶意软件或“秘密恶意软件”利用各种技术来模拟或滥用良性应用程序和合法系统工具,以尽量减少其在目标系统中的足迹。因此,传统检测工具(如恶意软件扫描仪)很难检测到它,因为恶意软件通常不会在文件中暴露其恶意负载,并在进程的良性行为中隐藏其恶意行为。
在这篇文章中,我们提出了PROVDETECTOR,一种基于来源的方法来检测隐藏的恶意软件。我们在PROVDETECTOR方法背后的见解是,尽管一个隐蔽的恶意软件试图混入良性进程,但其恶意行为不可避免地与底层操作系统(OS)交互,后者将暴露于源代码监视并被捕获。基于这种直觉,PROVDETECTOR首先采用一种新的选择算法来识别进程的OS级源数据中可能存在的恶意部分。然后应用神经嵌入和机器学习管道来自动检测任何明显偏离正常行为的行为。我们在一个来自企业网络的大数据源上对我们的方法进行了评估,并证明了它对隐秘恶意软件具有很高的检测性能(F1平均得分0.974)。此外,我们还进行了深入的解释性研究,以了解学习机器学习模型的内部。

Introduction

由于基于机器学习的检测和威胁智能计算等创新,恶意软件检测已经大大超越了传统防御。然而,攻击者社区也在寻找复杂的攻击媒介跟上进度。对手现在越来越专注于新技术以逃避检测并延长他们在目标系统上的存在。一种新的技术,即隐蔽的恶意软件,隐藏了恶意软件的(或攻击者的)身份通过模仿良好信任的良性进程。除了简单的方法,例如重命名进程和程序文件名,更先进的隐身技术正在积极开发和应用。与传统的恶意软件家族不同,恶意软件家族存在于磁盘上对于它的有效载荷,秘密恶意软件隐藏了它的恶意逻辑可靠进程的内存空间,或将其存储到无人值守的位置,如Windows注册表或服务配置。最近的报告估计恶意软件占所有攻击的35%,去年增长了364%。2019年上半年,这些袭击的可能性是现在的十倍,比传统的攻击更成功。
尽管如此重要和紧迫,我们还没有看到任何确定的解决方案,它检测使用先进的模拟技术的秘密恶意软件。一个原因是,隐藏的恶意软件将常规文件系统的使用量降至最低,而只使用网络缓冲区、注册表和服务配置的位置来规避传统的基于文件的恶意软件扫描仪。更糟的是,攻击者可以根据需要使用不同的模拟技术,通过多种选项来创建新的攻击。首先,攻击可以利用可信和强大的系统实用程序。最新的OSE附带了可靠的管理工具,以简化系统操作;但是这些工具通常是滥用的目标。例如,PowerShell和Windows Management工具命令行(WMIC)有很长的历史被攻击者滥用。其次,攻击可以通过合法的OS API(例如,创建Win32 API的远程线程)将恶意逻辑注入良性进程,或者使用共享系统资源。最后,攻击可以利用良性程序的漏洞来获得控制。由于攻击者有很多选择,基于静态或行为签名的检测方法无法跟上秘密恶意软件的发展。
根据隐蔽性恶意软件的特点,提出有效防御需要满足以下三个原则。首先,防御技术不应该基于静态文件级指标,因为它们对于隐藏的恶意软件是无法区分的。第二,该技术应该能够检测到可信程序的异常行为,因为它们容易受到具有秘密攻击向量的攻击者的攻击。第三,该技术应该是轻量级的,以便在不降低可用性的情况下从每个主机详细地捕获每个目标程序的行为。
内核级(即操作系统级)源代码分析是一种实用的解决方案,广泛应用于实际企业中,以对系统进行全面的监控和保护。即使恶意软件可以用其恶意逻辑劫持良性进程,它仍然会在源数据中留下痕迹。例如,当一个进程访问一个敏感文件时,内核级的出处将记录文件访问活动。OS内核支持源代码分析的数据收集,与诸如虚拟机(VM)辅助插装或沙盒执行之类的重量级动态分析相比,只会产生合理的开销。
在这篇文章中,我们提出了PROVDETECTOR,一个安全系统,旨在检测秘密模仿恶意软件。PROVDETECTOR依赖于内核级的源监控来捕获每个目标进程的动态行为。PROVDETECTOR然后嵌入源数据以构建异常检测模型,该模型检测程序的运行时行为,这些行为偏离了先前观察到的良性执行历史。因此,它可以检测以前看不见的攻击。为了寻找隐蔽的恶意软件,PROVDETECTOR采用神经嵌入模型将进程源图中的不同组件投影到n维数值向量空间中,其中相似的组件在地理上更接近。然后采用基于密度的新颖性检测方法,对源图中的异常因果路径进行检测。嵌入模型和新颖性检测模型都只使用良性数据进行训练。然而,虽然PROVDETECTOR使用来源数据捕获和构建每个程序的行为模型的设计见解似乎是合理的,但要实现PROVDETECTOR,必须解决以下两个挑战。
Cl:边缘偏差检测。基于模拟的安全恶意软件往往只会对其恶意行为产生微小的偏差,因此它可以混入良性程序错误行为。例如,一些隐蔽的恶意软件只会创建另一个线程,将其恶意逻辑植入受害者进程。当受害者进程仍执行其原始任务时,注入的恶意逻辑也在其旁边运行。因此,PROV检测器需要准确地识别和分离出与程序良性行为显著偏离的边缘异常事件。传统的模型学习很可能忽略像可忽略的背景噪声这样的一小部分行为,导致恶意行为的错误分类。
为解决第一个验证问题。检测器将来源图分解为因果路径,并将因果路径作为检测的基本组成部分(V-C)。这一决定的洞察力在于,秘密恶意软件的行为具有逻辑联系和因果依赖性。利用因果路径作为检测元件,可以将源图的良性部分和恶意部分分离出来。
C2.可伸缩模型构建。来源图的大小随着连接大量系统对象的时间而快速增长。提出了一种以物源数据为输入,为每个过程建立模型的基于物源的方法。常见的现象是,即使在一个拥有数百台主机的小型组织中,从每个终端主机报告的系统事件也会产生巨大的数据处理压力,而基于单跳关联度的简化建模可以消化大规模的起源图,单跳关系无法捕获上下文因果关系并将其嵌入到模型中。但是,基于多跳关系的建模将产生巨大的计算和存储压力,使任何现实的部署都是不可行的。
为了解决第二个问题,PROVDETECTOR只处理来源图的可疑部分。这是通过一种新的路径选择算法(sv-c1)实现的,该算法只选择源图中的前K条最不常见的因果路径。我们的见解是,大多数程序实例共享的源代码图部分不太可能是恶意的。因此,我们只需要关注在其他情况下不常见的部分。利用这种路径选择算法,PROVDETECTOR可以减少大部分的训练和检测工作量。
为了验证我们方法的有效性,我们在一个拥有306台主机的企业环境中对PROVDETECTOR进行了为期三个月的系统评估。我们收集了23个目标程序的良性种源数据,并用provedetector建立了它们的检测模型。然后,我们用1150个秘密模拟攻击和1150个良性程序实例(每个目标程序50个)对它们进行了评估,结果表明检测器获得了非常高的检测性能,平均Fl得分为0.974。我们还进行了系统的测量,以确定有助于PROV检测器对隐秘恶意软件检测能力的特征。我们的评估表明,PROV检测器足够有效,可以在现实的企业环境中使用。
综上所述,本文做出了以下贡献:
•我们设计并实现了PROVDETECTOR,这是一个基于来源的系统,用于检测采用模拟技术的秘密恶意软件。
•为了保证较高的检测精度和效率,我们提出了一种新的路径选择算法来识别进程源图中潜在的恶意部分。
•我们设计了一种新的神经嵌入和机器学习管道,可以自动为每个程序构建行为模式,并识别异常过程。
•我们对真实恶意软件进行了系统评估,以证明PROVDETECTOR的有效性。我们通过几个可解释性研究进一步解释了它的有效性。

BACKGROUND AND MOTIVATION

在本节中,我们将介绍我们在本研究中重点关注的秘密恶意软件,并介绍我们使用来源分析来检测此类恶意软件的见解。

A. Living Off the Land and Stealthy Attacks

在过去的几年里,“Living off the land”已经成为网络攻击的流行趋势。它的特点是使用受信任的现成应用程序和预装的系统工具进行秘密攻击。由于这些工具中有许多是系统管理员出于合法目的使用的,因此防御者很难完全阻止对这些工具的访问以防止攻击。
在最近的网络攻击中,越来越多地使用秘密模仿恶意软件,大量使用“远离陆地”的策略来试图逃避检测。恶意代码通常被注入到一些正在运行的进程(通常是受信任的应用程序或系统工具)中,并仅在进程内存(即RAM)中执行,而不是直接将其有效负载存储到磁盘上并执行。实现这种模仿目的有多种方法。
内存代码注入。内存代码注入允许恶意软件将恶意代码注入合法进程的内存。这些攻击通常针对长时间运行的受信任系统进程(例如。,主进程)或包含有价值用户信息的应用程序(例如,Web浏览器)。一些著名的代码注入技术包括远程线程注入、反射DLL注入、可移植可执行文件注入,以及最近发现的进程空洞化[13]和基于填充的DLL注入。
基于脚本的攻击。攻击者可以在良性文档(如Microsoft Office文档)中嵌入脚本以运行其恶意负载。更糟糕的是,Windows系统通过攻击者可能利用的各种语言接口(如PowerShell和Net)打开了对其核心功能的访问。这种动态语言有助于动态执行恶意逻辑,在文件系统上几乎没有留下痕迹。
漏洞利用。第三种方法是利用良性软件的弱点。例如,CVE 2019-0541允许对手通过特制的网页在Internet Explorer(IE)中执行任意代码。
在图1中,我们展示了真实世界中基于DDE1(动态数据交换)脚本的攻击的杀死链,该攻击在内存中启动了几个阶段的PowerShell脚本,由Juniper Threat Labs报告。攻击开始于一个电子邮件钓鱼活动,其中包括一个看似良性的Microsoft Word(MS Word)文档作为附件。当用户打开文档时,会显示一个消息框以启用DDE。一旦启用DDE,嵌入的DDEAUTO命令就会调用命令提示符,执行powershell.exe使用Dropbox服务下载并执行PowerShell脚本(0.ps1)。然后,0.ps1脚本引入了下一个名为“Empire”的PowerShell模块来打开加密后门。请注意,这两个下载的PowerShell脚本都是模糊的,仅驻留在内存中。
图1

B. Existing Detection Methods for Stealthy Malware

现有的检测方法,如反病毒(AV)软件,结合使用以下方法来检测恶意软件。正如我们将要讨论的,这些方法在检测秘密恶意软件时是无效的。
记忆扫描。AV软件提供内存扫描作为他们的多层解决方案之一。这种技术在加载点或以预定的方式及时扫描内存。然而,这种方法本质上是在内存中寻找已知的有效负载。对手可以自定义或混淆攻击负载以避免被发现。
封锁接近。锁定方法(如应用程序控制或白名单)没有多大帮助,因为隐蔽恶意软件通常利用管理工具或其他应用程序,这些应用程序通常位于公司的受信任应用程序白名单中。防御者无法完全阻止访问这些程序来阻止攻击。
电子邮件安全和网络安全。如图1所示,基于脚本的恶意软件通常通过网络钓鱼电子邮件传播。许多安全供应商通过评估URL、附件文件和脚本来检查和阻止可疑攻击,从而为电子邮件和网络安全提供解决方案。然而,与内存扫描的局限性类似,攻击负载也很容易被修改以避免被检测。
特别是,现有的主机内防御对已知的基于文件的恶意软件家族是有效的。然而,由于隐蔽性恶意软件的攻击足迹小、无文件、使用两用工具等特点,使得现有的检测方法难以对其进行检测。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大争天下

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值