本文分享自华为云社区《[论文阅读] (21)S&P21 Survivalism: Living-Off-The-Land 经典离地攻击》,作者: eastmount 。
随着恶意软件检测算法和方法变得越来越复杂(sophisticated),恶意软件作者也采用(adopt)同样复杂的逃避机制(evasion mechansims)来对抗(defeat)它们。
民间证据表明离地攻击技术(Living-Off-The-Land,LotL)是许多恶意软件攻击中最主要的逃避技术之一。这些技术利用(leverage)系统中已经存在的二进制文件来执行(conduct)恶意操作。
基于此,我们首次对Windows系统上使用这些技术的恶意软件进行大规模系统地调查。
在本文中,我们分析了这些本地系统的二进制文件在多个恶意软件数据集上的使用情况,这些数据集共包含31,805,549个样本。我们发现平均流行率(prevalence)为9.41%。实验结果表明,LotL技术被大量的使用,特别是在高级持久性威胁(Advanced Persistent Threat ,APT)恶意软件样本中,离地攻击占比为26.26%,是社区恶意软件的两倍多。
为了验证(illustrate)LotL技术的逃逸潜力,我们在本地沙箱环境(sandboxed environment)中对几个完全打补丁的Windows系统进行了离地攻击技术的测试,其结果表明在10个最流行的反病毒产品(anti-virus)中存在明显的gap。
每一篇安全顶会论文的摘要都值得我们学习,尤其是S&P。这里全文翻译并标记重要的英文单词,希望大家能更准确地描述安全问题以及本文的贡献。
由于每篇论文的引言都非常重要,会告诉大家为什么有这个工作,以及这个工作做了什么,有什么贡献。因此该部分作者会全文翻译,后续章节则介绍重点内容。
恶意软件开发和检测是猫和老鼠的游戏,恶意软件作者不断开发新技术来绕过(bypass)检测系统。像AV杀毒软件(anti-virus)这样的安全产品通过静态和启发式分析(heuristic analysis)技术,以检测、分类和防止恶意软件有效执行。
在过去,许多解决方案严重依赖于基于签名的检测,但不幸的是,由于使用了多态性(polymorphism)和加壳程序(packers),这些方法变得不再那么有效。相反,许多产品开始开发启发式分析解决方案,包括检测恶意行为的算法。这些算法已成为AV引擎的重要组成部分。随着时间的推移,这些算法越来越复杂,因此需要更多创新性的逃避技术。
恶意软件作者和红队经常研究和发现新方法来绕过安全解决方案。虽然它们的潜在目标本质上可能有所不同,但这两种类型的攻击者通常都利用(leverage)最先进(state-of-the-art)的逃避技术来实现目标。从防守者的角度来看,为了及时作出响应,了解这些攻击和研究它们的趋势是至关重要的(crucial)。其中,在红队和恶意软件作者中都流行的规避策略就是使用离地攻击(LotL)技术。
离地攻击(LotL)技术是指使用系统中已经存在或易于安装的二进制文件(如已签名的合法管理工具)来执行后渗透活动(post-exploitation activity)。
LotL techniques refer to the use of binaries that are already present on systems or are easy to install (e.g., signed, legitimate administration tools) to conduct post-exploitation activity.
离地攻击并不是隐蔽的技术,它们在互联网上公开记录着。许多开源的攻击安全工具利用了LotL技术,并且经常被攻击者所使用,从合法的红队到业余的网络攻击者,以及有组织的APT团队。
PoshSpy[15]
:是一个俄罗斯APT29攻击模块,它是第一个被检测到的APT组织使用的LotL技术,特别是在PowerShell和Windows Management中。表1列出了几个国家背景的APT组织所使用的LotL技术。
尽管“离地攻击”在信息安全界是一个相对知名的术语,但有时很难找到一个精确的定义。此外,据我们所知,没有任何研究包含了对LotL技术在恶意软件样本中的流行程度的系统分析。
关于LotL技术的文档大多以博客的形式出现,并记录着某些恶意软件家族的在野发现,或者攻击者在远程访问受损系统中所使用技术的描述。
Emotet
和 Trickbot
,两个最常见的远程访问木马(Remote Access Trojans,RAT),据称是使用链接的LotL二进制文件来实现持久化。Astaroth
, TA505
组织的一些恶意软件库,Dexphot cryptominer
和 Nodersok
同期使用的多个LotL二进制文件。在本文中,我们分析了LotL现象,即商用恶意软件中与离地攻击二进制文件利用相关的文件。我们首先描述了什么是LotL binary以及它如何被恶意软件利用来实施恶意行为的。=
本文的研究重点是以Windows为主导的操作系统下流行且恶意软件最常针对的目标。许多基于离地攻击的AV逃逸行为已被记录下来。因此(As a consequence),安全界很大程度上认为,LotL技术(如代理执行恶意软件)实际上对安全解决方案是有效的。
首先,我们提出了第一个假设以及第一个研究问题:
问题1: Can LotL techniques effectively evade commercial AV?
LotL技术能有效地逃避目前大部分安全厂商的杀毒软件检测吗?
为了回答这个问题,我们评估了一组具有代表性的安全产品,并展示了其中的一些技术,虽然这是攻击者和防御者所熟知的,但仍然是绕过安全解决方案的有效方法,因此对安全行业来说这仍是一个开放的挑战。
事实上,LotL二进制文件经常被系统管理员和高级计算机用户使用来执行(perform)系统管理任务,这使得即使是对于训练有素的分析人员来说,区分(distinguish)合法行为和恶意行为也非常困难。我们负责任地向受影响的供应商披露了我们的发现并进行跟进,因此提高了他们的检测能力。
尽管现有的文档提供了这些技术使用的可靠证据,但仍然不清楚这种现象在恶意软件样本中有多普遍。因此(In this way),我们就提出了第二个研究问题:
问题2:How prevalent is the use of LotL binaries in malware?
在恶意软件中使用LotL二进制文件的情况有多普遍?
在此基础上,我们试图阐明当前威胁情景中的一些趋势,以确定(identify):
问题3:What purposes do malware binaries use LotL techniques for?
恶意软件的二进制文件使用LotL技术的目的是什么?问题4:Which malware families and types use LotL binaries most prolifically and how does their usage differ?
哪些恶意软件家族和类型使用LotL二进制文件最多,它们的使用情况又有何不同?
此外,我们还调查(investigate)了为什么这些技术难以检测。部分杀毒软件公司参与了我们的披露,即将恶意攻击与系统管理员执行完全合法的管理任务区分开来是困难的。这就给我们带来了另一个问题:
问题5:What are the overlaps and differences in the behavior of legitimate and malicious binaries with respect to the usage of LotL binaries? How would this affect detection by heuristic AV engines?
在使用LotL二进制文件方面,合法和恶意二进制文件的行为有哪些重叠和差异呢?这将如何影响启发式AV引擎的检测呢?
虽然恶意样本和良性样本之间的LotL二进制使用频率(prevalence)有一些明显的差异,但我们也注意到一些类别存在某些相似性,如代理执行(proxied execution)。
最后,我们将注意力集中在高逃逸和高级持续威胁的恶意软件上,我们发现它利用离地攻击技术是商用恶意软件的两倍。在表1中列出了一些使用LotL技术进行攻击的APT组织。
据我们所知,本文提出了迄今为止对商用和APT恶意软件使用LotL技术最大规模的系统分析。本文的核心(core )贡献:
我们通过测试一组最流行的AV引擎来对抗基于LotL技术部署的恶意载荷,以评估LotL技术的可行性,并展示了离地攻击检测的复杂性对行业仍是一个挑战。即使在披露9个月后,这些技术仍没有被发现。
我们对代表现代商用恶意软件的几个数据集进行了大规模的评估,并确定了LotL技术的流行程度,以及在不同恶意软件家族和类型之间的差异。我们还评估了LotL技术由于假阳性风险可能对行业产生的影响。
我们评估了一个APT恶意软件数据集,并将其公开以促进(facilitate)后续的研究,并确定它执行LotL技术的频率是商用恶意软件的两倍。此外,我们还确定了哪些APT组织最多地使用LotL技术。
我们首先定义LotL二进制文件,并枚举恶意软件使用这些二进制文件的目的。
近年来,“Living-Off-The-Land binary(LOLbin)
”已经成为一个常用词,用来指在网络攻击中广泛使用的二进制文件。历史上,“Living-Off-The-Land”一直被用来表示可以为农业或狩猎提供喂养土地或离地的概念。转换为恶意软件和入侵领域,攻击者可能利用那些已经可以使用的文件(即系统上已经存在或易于安装的)来发起攻击并躲避检测。
在本文中,我们将LotL二进制定义为:
In this paper, we define a LotL binary as any binary with a recognised legitimate use, that is leveraged during an attack to directly perform a malicious action; or to assist indirectly, in a sequence of actions that have a final malicious outcome.
举例:
Reg.exe
、Sc.exe
和 Wmic.exe
是最常被恶意软件执行的文件。PsExec.exe
或其他系统内部二进制文件。虽然它们使用频率不高,但本文的分析也囊括了这些文件。如APT组织在 SoftCell
和 Havex
中都使用 PsExec.exe
来秘密执行远程命令,从而实现网络中的横向移动。RobbinHood
勒索软件和各种 APT wiper
恶意软件样本所使用的一种技术,针对 Saudi Arabian
系统,包括 Dustman
、Shamoon
和 Zerocleare
。可追溯性(Traceability)。
在本文中,我们关注的是Windows恶意软件执行系统二进制文件的目的。这些目的通常包括沿着 kill chain
的进展或逃避AV的检测。所有这些技术都被部署在系统的用户空间中。
hollowing
和 injection(注入)
不在我们的研究范围内,尽管这是无文件恶意软件部署的常见技术。因为根据我们早期的定义,它们不是LotL技术。
离地攻击相关工作较少,并且都非常经典,因此下面罗列了详细的相关研究,仅供自己后续深入,也希望对您有所帮助。
LotL恶意软件及其别名,“advanced volatile threat”或“无文件”恶意软件在当前的学术文献中很少被提及。这主要受限于介绍分析少或描述为一个新兴的高逃逸恶意软件变体。
在一些论文中提到了LotL技术,强调了高隐蔽(stealthiness)和APT恶意软件曾使用。
强烈推荐一个包含LotL二进制和ATT&CK功能映射的资源:
与我们研究相关的是对基于脚本的恶意软件分析和去混淆。使用LotL技术的恶意软件经常使用恶意脚本作为有效负载。(下列论文在作者第16篇PowerShell总结博客中详细介绍过)
Powershell.exe
二进制调用的恶意脚本。虽然这些论文提出了有效的检测方法,但是他们都是为狭隘的恶意载荷(payload)所用,他们没有分析更广泛的恶意软件生态系统和这些有效载荷是如何被LotL二进制文件触发的。
安全研究人员已经记录了许多使用LotL技术成功躲避安全产品的案例。在许多情况下,这些LotL二进制文件被用来代理恶意载荷的执行,使其在一个合法的进程上下文中执行,或者作为一个合法系统进程的子进程生成一个新进程。在某些情况下,这些有效载荷作为LotL二进制调用的副作用被执行,而在其他情况下,它只是其主要记录行为的结果。此外,许多杀毒产品未能正确检测到这些技术。
为了回答第一个问题,我们首先分析了当前AV产品是否将LotL技术作为恶意行为的指标。
为此,我们首先选择了10个具有代表性的AV产品(详见附录C),并利用常见基于LotL的代理执行技术来实施反弹Shell的模拟攻击。此外,本研究的目的不是测试任何特定AV产品的检测能力或将它们相互比较,而是确定是否存在普遍的检测差距。
实验结果如表2所示:
Responsible Disclosure and Response.
此后,我们向相关的AV供应商发布了一份文件,包含我们检查的结果并协助补救。9个月后,我们在Windows 10机器上重复了类似的测试,这允许我们测试AV供应商是否在他们的产品中包含了新的启发式规则来检测LotL二进制的使用。其结果如下:
实验结果表明,LotL技术仍然是杀毒软件供应商面临的一个重大挑战。合法用户通常以不可预知的方式使用这些工具,而安全公司很难在没有误报的情况下部署有效的检测策略。
接下来将展示这些技术如何在商用恶意软件中是普遍存在的,以及离地攻击是不应该被安全社区忽视的问题。
在本节中,我们测量了恶意软件中LotL技术的流行程度,并试图回答所提出的研究问题。
评估工作是在9个独立的子数据集上进行的。我们总共收集了31,805,549个样本,其中我们从VirusTotal(VT)中获得了16,048,202份行为报告。
Public Datasets
VirusTotal Balanced Dataset
AVClass
预处理代码和打标签(家族分类),并平衡数据集中每个族。APT Malware
APTnotes
),并提取了这些文件中包含的所有恶意软件的hash值。Yara Rule Match Malware
当收集了由Windows PE二进制文件组成的不同数据集,我们就分析样本的行为。包括三个阶段:
First Seen:首次发现病毒样本的时间戳
AVClass Family:某恶意软件样本所属家族
Behavioural Report:恶意行为报告,由特定恶意软件样本执行的进程和Shell命令的列表
数据准备就绪,那么如何识别是否使用了LotL技术呢?
我们使用模式匹配来识别恶意软件执行过程中对LotL二进制文件调用的情况,从而处理所有收集到的行为报告(behavioural reports
)。行为报告包括两个指标:
在我们的分析中,如果一个样本的行为报告包含至少一个LotL二进制文件的执行,那么它使用了LotL技术。我们记录了每一个LotL的执行及其参数细节,并将它们插入到数据库中。然后,我们分析了这些恶意软件样本的参数,以确定每个数据集中最常见的参数类型和执行目的。
具体而言,我们确定了这两种独立类型的二进制文件:
Pattern Matching Refinement
模式匹配方法在不断改进,直到所有识别的LotL命令被正确分类和映射到执行目的,并进行了数据清洗处理。
为了确定LotL技术的执行目的,我们观察了恶意软件样本提供的参数。
图1说明了四个进程执行的映射。该映射通过识别单独的执行目的来在所有数据集上实施,例如执行Net.exe时使用stop参数表示任务停止。在将单个命令映射到执行目的之后,我们将为该二进制文件选择所有匹配的执行。我们在所有系统二进制执行中重复该步骤,直到每次执行被分类为属于特定的执行目的或被错误分类。
按照这种方法,我们按目的将参数分为9个独立的类别。
首先是三种与执行有关的类型:
接着是三类与底层系统组件的修改有关。恶意软件通常从事这种行为,以便在机器上对目标进行进一步的传播或行动。
最后是与执行或系统修改无关的三类。
Relative Prevalence Between Datasets.
图2显示了在每个数据集中使用LotL技术的恶意软件样本的百分比。
这些数字表明,LotL技术是一个普遍的现象,尤其是APT攻击中。
Most Frequently Used LotL Binaries
表5显示了商用恶意软件数据集中最常执行的LotL二进制文件。
值得注意的是,某些二进制文件在不同的数据集之间显示了不同的分布。这意味着尽管LotL技术是在恶意软件编写中被广泛使用,但它们在恶意软件家族或恶意软件类型中以异构的方式使用。
Parameters and Execution Purpose
我们还通过解析最常用的LotL二进制文件的参数来确定出现它们的执行目的。图3显示了执行目的的结果分布。
Malware Families
我们确定了一些利用LotL技术的常用恶意软件家族,恶意软件采用的LotL二进制代码非常少,我们将这种分类限制在包含至少100个样本的家庭。图4显示了AVClass报告的家族数量,其样本使用LotL技术技术的特定百分比。
我们已经观察到,LotL技术在商用恶意软件和APT活动中都是一种普遍的现象,尽管在恶意软件类型或家族之间可能存在一些差异,但很明显,安全行业不应该忽视这种威胁。考虑到这一点,我们提出了另一个问题:
在本文的开头,我们确认了许多AV产品不能有效地检测这些二进制文件的使用,并且对我们披露的信息响应后,其检测机制仍然非常容易出现假阳性。在本节中,我们将比较合法软件中使用LotL二进制文件的情况。
表VI显示了良性数据集中最常执行的二进制文件。
图5显示了利用LotL技术按执行目的进行分组的示例。
我们观察到LotL技术在APT恶意软件中明显比商品恶意软件更频繁(见图2)。接下来我们专注于APT恶意软件的评估。
首先,我们展示了使用LotL二进制文件比例最高的特定APT活动,并根据威胁情报报告对它们进行分组。我们还列举了APT恶意软件最常利用的LotL二进制文件。表7列出了我们在APT数据集中观察到的最常见的LotL二进制文件。
表8显示了一些大量使用LotL技术的APT活动,这些活动来源于行为数据的威胁情报报告。值得注意的是,一些APT组有多个活动和样本,如APT28和Keyboy。
在本节中,我们将调查并描述来自数据集中的两个勒索软件(ransomware)家族:
(1) Gandcrab
我们在本地沙箱环境中执行了Gandcrab勒索软件样本,并记录了所执行的命令。其使用的LotL二进制文件如下。我们使用Nslookup.exe二进制文件观察了家族中的其他样本,传递一个参数“gandcrab.bit”或一个类似的域。
C:\ Windows\System32\cmd.exe /c vssadmin delete shadows /all /quiet
C:\ Windows\System32\cmd.exe /c wmic shadowcopy delete
(2) Cerber
除了通过LotL二进制文件进行代理执行外,我们还观察到了Cerber正在使用的其他规避技术,如进程注入。与其他勒索软件家族不同,Cerber不删除副本。然而,我们注意到了一个特别复杂的代理执行链,即Wscript.exe和Rundll32.exe依次执行一个恶意的 “.vbs” 和 “.dll” 文件。
我们还观察到,Cerber通过Ping.exe延迟执行,并修改注册表以实现持久化。它将一个恶意的 “.vbs” 文件添加到下面的注册表项中,这意味着每次用户登录时都会运行这个恶意脚本。
我们还注意到一些Cerber样本调用Mshta.exe来打开hta文件。
C:\Windows\System32\WScript.exe C:\Users \admin \enYXval36C\38oDr5.vbs C:\Windows\System32\Rundll32.exe 8ivq.dll arzy949 C:\Windows\System32\cmd.exe /c ping 127.0.0.1 && reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce /v enYXval36C /t REG SZ /d C:\enYXval36CenYXval36C\enYXval36C.vbs /f C:\ Windows\System32\mshta.exe ransom.hta
我们还描述了两个APT恶意软件组织:
APT组织Turla显示了LotL技术的利用演变,而GreyEnergy参与了对乌克兰电网的高度破坏性攻击。我们手动分析了这些样本中的LotL二进制文件。
C:\ Windows\SysWOW64\Rundll32.exe {64F97CDC...FAB40CA\}.db #1 #1} C:\ Windows\System32\cmd.exe /c ( ping localhost >> nul & del $path \ grey3.exe >> nul )
图6显示了APT组织Turla越来越多地采用LotL技术,比如两个连续的模块化高逃逸木马,即Cobra(2014)和Mosgodo(2018)。
我们的结果证实了LotL技术不是一个不可忽视的现象。虽然有几篇技术文章涵盖了这个主题,但我们的系统评估会进一步促进对商用恶意软件采用这种技术的理解。在本文中,我们检查了几个不同的恶意软件数据集,并进行了一个AV评估实验,其中我们确认了几种已记录的LotL技术的低检测率。根据这些结果,我们可以得出以下结论:
我们测试的几乎每一个流行的AV产品都难以检测到LotL二进制文件的恶意使用。即使很负责地向每个供应商披露这些问题后,也只有一小部分供应商成功优化了检测机制。其中一些供应商针对我们的特定恶意载荷实现了检测机制,但没有实现交付机制本身。其他报告说,由于存在禁止性的假阳性风险,实施此类对策具有挑战性。
为了纠正这一检测差距,我们与AV供应商合作,以提高其检测能力。例如,卡巴斯基实现了由我们披露所产生的检测,如 Trojan.Win32.Lolbas.btad.exec 和 TrojanSpy.Win32.Agent.ftps。我们还发布了Yara规则来帮助检测LotL技术。此外,我们的研究表明,良性样本和恶意样本之间的执行目的存在差异,为检测算法的发展提供了一个方向。事实上,最近的论文[71, 21]探索了这条有前途的研究路线,以克服现有安全产品的局限性。
在一些描述中,LotL技术专门指可以实现AV逃逸方法的子集。然而在本文中,我们采用了更广泛的范围,并观察到在AV平衡数据集中,9.6%的恶意软件使用本地系统二进制来执行恶意行为。
关于执行目的,我们观察到LotL二进制文件不仅用于代理执行或逃逸,而且还用于实现常见的恶意例程,如延迟执行、修改系统配置、持久化或停止安全服务。
据AVClass工具报道,不同家族中LotL技术的流行率存在很大的差异。然而我们可以观察到,大多数家族的流行率较低,而少数家族使用这些技术的流行率要高得多。这意味着这些技术足够普遍,可以被某些恶意软件的作者所采用,但并不是在恶意软件中实现恶意功能的唯一或最普遍的方式。
合法软件使用的LotL二进制文件要少于恶意软件,尽管这些二进制文件用于不同的目的,但其流行程度足以使恶意使用的准确检测成为安全供应商面临的挑战。相反,在APT攻击中利用LotL二进制文件是普通商用恶意软件的两倍。
鉴于这些证据,我们可以得出结论,LotL技术在当前最先进的恶意软件中得到了重要的应用,从检测的角度来看,它们代表了安全行业的一个挑战。通过这篇论文,我们试图阐明这一现象,并提高研究界对这个开放问题的认识。
Intended or Unexpected Functionality.
测量结果没有区分二进制文件的标准功能和利用副作用来实现某些结果的非标准使用。例如一个预期使用
Netsh.exe修改防火墙规则,而意外使用Netsh.exe运行.dll。
局限性:
Anti-VM Malware.
由于数据来自于云中托管的动态分析沙箱,恶意软件使用的反虚拟机规避技术可能会影响数据质量。我们通过排除在沙箱中执行最少或执行过程中崩溃的恶意软件样本来减轻这种情况。这可能会影响数据质量,因为使用反虚拟机技术的规避恶意软件并不能显示其实际行为。因此,我们可能低估了使用LotL二进制文件样本的数量。然而,我们的数据是这种技术流行程度的一个下限,并证明了这是一个不应被忽视的重要现象。
Human Operators.
许多使用LotL技术的攻击者都是执行远程Shell、攻击性安全工具、PowerShell、VisualBasic或批处理脚本的人员。虽然有类似案例的民间证据,但很难像我们那样对一个有代表性的数据集进行测量研究。相反,我们缩小了论文的范围,并专注于恶意软件对LotL二进制文件的使用。我们展示了这种现象是不可忽视的,恶意软件作者也在他们的二进制文件中利用这些技术,而不仅仅是在开发后的脚本中。
后续工作:
Linux LotL.
未来的研究方向是探索这些技术在Linux系统上的使用(名为GTFObins[19])。与Windows上的LotL技术类似,这些二进制文件可以用于实现恶意功能。虽然Linux恶意软件没有Windows那么多,但由于运行轻量级Linux系统的物联网僵尸网络的兴起,它是一个值得分析的主题。
Detection.
该领域的另一个未来研究方向是检测技术的部署,这些技术试图准确地捕获LotL技术的识别使用模式,如端点检测和响应(Endpoint Detection and Response,EDR)系统。未来的研究应该利用最近关于进程执行链的数据来源分析的工作[71,21],以实现对合法进程关系的建模和识别可疑的行为模式。
原文作者:Frederick Barr-Smith, Xabier Ugarte-Pedrero, Mariano Graziano, et al.
原文标题:Survivalism: Systematic Analysis of Windows Malware Living-Off-The-Land
原文链接:https://ieeexplore.ieee.org/document/9519480
发表会议:2021 IEEE Symposium on Security and Privacy (SP)
除了原文和作者的理解,本文还参考了下面三位老师的分享,再次感谢,向老师和好友们学习。
这篇文章属于系统分析类的文章,通过详细的实验分析了离地攻击(Living-Off-The-Land)的威胁性和流行度,包括APT攻击中的利用及示例代码论证。
本文提出了一种实现了检测高级持久性威胁(Advanced Persistent Threat,APT)新的方法,即HOLMES系统。
网上找到的Master公式推导过程都太过于复杂了,为此我特地找到一种小白也能看懂的推导过程。看完这篇文章后,你会对递归的时间复杂度深谙于心,打死都不会忘记。