安全场景(2)离地攻击检测
Living-Off-The-Land 恶意软件系统分析
[][AI安全论文] 21.S&P21 Survivalism经典离地攻击(Living-Off-The-Land)恶意软件系统分析:S&P21的离地攻击(Living-Off-The-Land)系统分析,这是一篇非常经典的论文,并且系统性分析文章是另一种讲故事的方式。
原文作者:Frederick Barr-Smith, Xabier Ugarte-Pedrero, 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)
文章目录:
摘要
一.引言
1.什么是离地攻击
2.APT中的离地攻击
3.提出五个关键问题
4.贡献(Contribution)
二.背景和相关工作
A.LotL Binaries
B.Scope of our Study
C.Related Work
三.MOTIVATION: 杀毒软件产品 vs 离地攻击技术
四.离地攻击流行性评估
A.Dataset Composition
B.Analysis Pipeline
C.LotL Technique Identification
D.Parameter Analysis to Identify Execution Purpose
五.评估结果
A.商用恶意软件中LotL技术的流行性(Prevalence)
B.Comparison of Benign and Malicious Samples
C.Prevalence of LotL techniques in APT Malware
六.案例分析
七.要点和讨论
八.局限性和未来工作
九.个人感受
摘要
随着恶意软件检测算法和方法变得越来越复杂(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。
一、引言
1.1 什么是离地攻击
恶意软件开发和检测是猫和老鼠的游戏,恶意软件作者不断开发新技术来绕过(bypass)检测系统。像AV杀毒软件(anti-virus)这样的安全产品通过静态和启发式分析(heuristic analysis)技术,以检测、分类和防止恶意软件有效执行。
在过去,许多解决方案严重依赖于基于签名的检测,但不幸的是,由于使用了多态性(polymorphism)和加壳程序(packers),这些方法变得不再那么有效。相反,许多产品开始开发启发式分析解决方案,包括检测恶意行为的算法。这些算法已成为AV引擎的重要组成部分。随着时间的推移,这些算法越来越复杂,因此需要更多创新性的逃避技术。
恶意软件作者和红队经常研究和发现新方法来绕过安全解决方案。虽然它们的潜在目标本质上可能有所不同,但这两种类型的攻击者通常都利用(leverage)最先进(state-of-the-art)的逃避技术来实现目标。从防守者的角度来看,为了及时作出响应,了解这些攻击和研究它们的趋势是至关重要的(crucial)。其中,在红队和恶意软件作者中都流行的规避策略就是使用离地攻击(LotL)技术。
==离地攻击(LotL)技术是指使用系统中已经存在或易于安装的二进制文件(如已签名的合法管理工具)来执行后渗透活动(post-exploitation activity)。==
- 通过利用这些工具,攻击者可以实现注册表修改、持久化、网络或系统侦察,或执行其他恶意代码。它们甚至可以用来减少由恶意活动产生的事件日志,而不需要将其他文件下载到本地的系统中。
1.2 APT中的离地攻击
离地攻击并不是隐蔽的技术,它们在互联网上公开记录着。许多开源的攻击安全工具利用了LotL技术,并且经常被攻击者所使用,从合法的红队到业余的网络攻击者,以及有组织的APT团队。
PoshSpy[15]
:是一个俄罗斯APT29攻击模块,它是第一个被检测到的APT组织使用的LotL技术,特别是在PowerShell和Windows Management中。- 伊朗威胁组织[1]、APT33、APT34和其他组织也以使用本地Windows二进制文件和其它签名工具而闻名,特别是PowerShell[8]。
尽管“离地攻击”在信息安全界是一个相对知名的术语,但有时很难找到一个精确的定义。此外,据我们所知,没有任何研究包含了对LotL技术在恶意软件样本中的流行程度的系统分析。关于LotL技术的文档大多以博客的形式出现,并记录着某些恶意软件家族的在野发现,或者攻击者在远程访问受损系统中所使用技术的描述。
- 例如,
Emotet
和Trickbot
,两个最常见的远程访问木马(Remote Access Trojans,RAT),据称是使用链接的LotL二进制文件来实现持久化。 - 作为一种对策,微软描述了对抗使用LotL技术商用RAT的基本步骤。高度逃逸的远程访问木马
Astaroth
,TA505
组织的一些恶意软件库,Dexphot cryptominer
和Nodersok
同期使用的多个LotL二进制文件。
1.3 提出5个关键性问题
在本文中,我们分析了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组织。
1.4 贡献
据我们所知,本文提出了迄今为止对商用和APT恶意软件使用LotL技术最大规模的系统分析。本文的核心(core )贡献:
- 我们通过测试一组最流行的AV引擎来对抗基于LotL技术部署的恶意载荷,以评估LotL技术的可行性,并展示了离地攻击检测的复杂性对行业仍是一个挑战。即使在披露9个月后,这些技术仍没有被发现。
- 我们对代表现代商用恶意软件的几个数据集进行了大规模的评估,并确定了LotL技术的流行程度,以及在不同恶意软件家族和类型之间的差异。我们还评估了LotL技术由于假阳性风险可能对行业产生的影响。
- 我们评估了一个APT恶意软件数据集,并将其公开以促进(facilitate)后续的研究,并确定它执行LotL技术的频率是商用恶意软件的两倍。此外,我们还确定了哪些APT组织最多地使用LotL技术。
二、背景和相关工作
我们首先定义LotL二进制文件,并枚举恶意软件使用这些二进制文件的目的。
2.1 LotL Binaries
近年来,“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.
举例:
- 在Windows系统上默认安装的二进制文件(binaries installed),如
Reg.exe
、Sc.exe
和Wmic.exe
是最常被恶意软件执行的文件。 - 大多数默认安装的二进制文件都是由微软认证码签名的。认证码签名证明二进制文件没有在编译中被篡改或修改,这些二进制文件甚至可能被列为白名单。利用可信的LotL二进制文件的恶意软件可能因此避开杀毒软件。在Windows系统上使用系统二进制文件可以作为恶意软件操作的一部分,更重要的是,许多LotL技术使用系统二进制文件来实现这些二进制文件的目的。
- 此外,可以使用外部签名二进制文件(external signed binaries),如
PsExec.exe
或其他系统内部二进制文件。虽然它们使用频率不高,但本文的分析也囊括了这些文件。如APT组织在SoftCell
和Havex
中都使用PsExec.exe
来秘密执行远程命令,从而实现网络中的横向移动。 - 某些罕见情况,脆弱的(已签名)驱动程序被用来升级系统上的权限。这是
RobbinHood
勒索软件和各种APT wiper
恶意软件样本所使用的一种技术,针对Saudi Arabian
系统,包括Dustman
、Shamoon
和Zerocleare
。
可追溯性(Traceability):
- 某些LotL二进制文件可能会比其他文件留下更多的系统日志,安全工具或取证分析人员可以利用这些日志来检测恶意操作。例如,可以将Powershell配置为具有全面的日志记录。
- 微软甚至建议阻止在系统上执行一些本机的二进制文件,除非有充分的理由。
2.2 Scope of our Study
在本文中,我们关注的是Windows恶意软件执行系统二进制文件的目的。这些目的通常包括沿着 kill chain的进展或逃避AV的检测。所有这些技术都被部署在系统的用户空间中。
hollowing
和 injection(注入)
不在我们的研究范围内,尽管这是无文件恶意软件部署的常见技术。因为根据我们早期的定义,它们不是LotL技术。
离地攻击相关工作较少,并且都非常经典,因此下面罗列了详细的相关研究,仅供自己后续深入,也希望对您有所帮助。
- LotL恶意软件及其别名,“advanced volatile threat”或“无文件”恶意软件在当前的学术文献中很少被提及。这主要受限于介绍分析少或描述为一个新兴的高逃逸恶意软件变体。
- Li等[31]对恶意PowerShell脚本进行了分析,其中有一个小节专门描述了LotL攻击和无文件攻击作为近年来网络攻击的趋势。(作者第17篇博客详细介绍过PS经典)
- Wang等[72]最近发表的一篇关于数据来源分析的论文指出,Living-Off-The-Land 是一种新兴的、突出的逃避型恶意软件子类(evasive malware subtype)。(经典的You Are What You Do后续即将分享)
- 先前的工作[64]进行了介绍性分析,然而LotL恶意软件还没有受到详细的学术分析。(An emerging threat Fileless malware: a survey and research challenges)
- ==赛门铁克[73,66]和思科Talos的[65]白皮书介绍了这个主题,并对多个数据集的流行性进行了分析。目前,没有论文对包含多个使用LotL技术的Windows恶意软件数据集进行大规模地系统分析。(经典)==
- https://www.symantec.com/content/dam/symantec/docs/security-center/white-papers/istr-living-off-the-land-and-fileless-attack-techniques-en.pdf
- https://www.symantec.com/content/dam/symantec/docs/white-papers/living-off-the-land-turning-your-infrastructure-against-you-en.pdf
- https://blog.talosintelligence.com/2019/11/hunting-for-lolbins.html
在一些论文中提到了LotL技术,强调了高隐蔽(stealthiness)和APT恶意软件曾使用。
在一篇关于恶意软件分析工具Yara的论文中,Cohen[9]将LotL描述 “ LotL as a trend that has been recently observed in the tactics used by elite threat actors”,我们的分析结果进一步证实了该说法。
Hassan等[21]的研究表明,APT恶意软件使用LotL攻击策略来实现持续攻击并分析了两个活动,他们的工作还利用了MITRE ATT&CK框架[45],通过MITRE定义了一个描述和分类知名攻击的分类方法。许多LotL技术在MITRE ATT&CK框架内被索引。Mitre公司及其常见CVE漏洞是安全领域的既定权威,他们囊括并描述许多LotL技术,这样表明离地攻击是一个值得深入分析的课题。
- ==W. U. Hassan, A. Bates, and D. Marino, “Tactical Provenance Analysis for Endpoint Detection and Response Systems,” IEEE Symposium on Security and Privacy, 2020.==
==强烈推荐一个包含LotL二进制和ATT&CK功能映射的资源:==
- https://github.com/LOLBAS-Project/LOLBAS
与我们研究相关的是对基于脚本的恶意软件分析和去混淆。使用LotL技术的恶意软件经常使用恶意脚本作为有效负载。(下列论文在作者第16篇PowerShell总结博客中详细介绍过)
- Ugarte等[67]通过识别可疑行为模式,测试了经
Powershell.exe
二进制调用的恶意脚本。 - Rubin等[61]将机器学习应用于检测PowerShell恶意软件(微软团队)。
- Curtsinger[11]等人提出了恶意Javascript攻击的检测机制——ZOZZLE。
虽然这些论文提出了有效的检测方法,但是他们都是为狭隘的恶意载荷(payload)所用,他们没有分析更广泛的恶意软件生态系统和这些有效载荷是如何被LotL二进制文件触发的。
三、动机
安全研究人员已经记录了许多使用LotL技术成功躲避安全产品的案例。在许多情况下,这些LotL二进制文件被用来代理恶意载荷的执行,使其在一个合法的进程上下文中执行,或者作为一个合法系统进程的子进程生成一个新进程。在某些情况下,这些有效载荷作为LotL二进制调用的副作用被执行,而在其他情况下,它只是其主要记录行为的结果。此外,许多杀毒产品未能正确检测到这些技术。
为了回答第一个问题,我们首先分析了当前AV产品是否将LotL技术作为恶意行为的指标。
为此,我们首先选择了10个具有代表性的AV产品(详见附录C),并利用常见基于LotL的代理执行技术来实施反弹Shell的模拟攻击。此外,本研究的目的不是测试任何特定AV产品的检测能力或将它们相互比较,而是确定是否存在普遍的检测差距。
- 实验在联网的Windows 10虚拟机执行,并将最新的本地AV产品连接到它们的云组件。
- 利用一个反弹Shell来评估AV系统在部署LotL技术的恶意软件中有多脆弱。本文认为能够允许远程执行命令的reverse shell是成功执行代码的证明,这与许多远程访问木马(RAT)功能相同。
- 通过从不同LotL二进制文件中运行这个反弹shell来进行实验,以测试AV产品是否检测到离地攻击技术是恶意的。
- 我们在必要时混淆了反弹shell的有效载荷,并使用各种有效载荷类型来测试AV检测传递机制本身的能力,而不是通过静态签名传递的特定有效载荷(详见附录D)。
实验结果如表2所示:
- 可以发现大部分的AV引擎允许我们建立一个反弹Shell并执行命令,它们并没有检测出利用LotL技术的恶意软件,60个中只检测出4个。
负责任的披露和回应:
此后,我们向相关的AV供应商发布了一份文件,包含我们检查的结果并协助补救。9个月后,我们在Windows 10机器上重复了类似的测试,这允许我们测试AV供应商是否在他们的产品中包含了新的启发式规则来检测LotL二进制的使用。其结果如下:
- 可以发现在60个相同的有效载荷中检测到了25个
- 在检测到的反弹shell测试中,我们修改了载荷(利用混淆或运行不同的载荷),同时为LotL二进制文件保持了完全相同的命令行参数,通过利用这些混淆和修改的有效载荷,我们成功地在这25个被拦截的实例中的19个执行了一个反向shell。
==实验结果表明,LotL技术仍然是杀毒软件供应商面临的一个重大挑战。合法用户通常以不可预知的方式使用这些工具,而安全公司很难在没有误报的情况下部署有效的检测策略。==
接下来将展示这些技术如何在商用恶意软件中是普遍存在的,以及离地攻击是不应该被安全社区忽视的问题。
四、离地攻击流行性评估
在本节中,我们测量了恶意软件中LotL技术的流行程度,并试图回答所提出的研究问题。
4.1 数据集描述
评估工作是在9个独立的子数据集上进行的。我们总共收集了31,805,549个样本,其中我们从VirusTotal(VT)中获得了16,048,202份行为报告。
==Public Datasets==
公共恶意软件数据集,包括商用恶意软件、VirusShare语料库的二进制文件、窗口恶意PE文件、佐治亚理工学院发布的可执行文件、VX-Mumbal和MalShare共享的样本(两个重点的共有数据集)。
- https://impactcybertrust.org/dataset{ }view?idDataset=1143
- https://vx-underground.org/samples.html
- https://malshare.com
VirusTotal Balanced Dataset
从VT中收集了237,288个hash值,利用 AVClass
预处理代码和打标签(家族分类),并平衡数据集中每个族。
APT Malware
我们根据一种类似于数据集论文dAPTaset[59]的方法收集了一个APT恶意软件的数据集。我们处理了HTML页面和pdf文件(APTnotes
),并提取了这些文件中包含的所有恶意软件的hash值。
- https://www.usenix.org/system/files/conference/usenixsecurity18/sec18-rezaeirad.pdf
- https://github.com/aptnotes/data
==Yara Rule Match Malware==
部署3个Yara规则来检测LotL二进制文件,并使用Livehunte来识别上传到VT的新的恶意软件hash,并使用LotL技术匹配恶意软件的行为特征。
4.2 Analysis Pipeline
当收集了由Windows PE二进制文件组成的不同数据集,我们就分析样本的行为。包括三个阶段:
- data collection
- data augmentation
- data analysis
First Seen:首次发现病毒样本的时间戳 AVClass Family:某恶意软件样本所属家族 Behavioural Report:恶意行为报告,由特定恶意软件样本执行的进程和Shell命令的列表
4.3 LotL Technique Identification
数据准备就绪,那么如何识别是否使用了LotL技术呢?
我们使用模式匹配来识别恶意软件执行过程中对LotL二进制文件调用的情况,从而处理所有收集到的行为报告(behavioural reports
)。行为报告包括两个指标:
Shell Commands(Shell命令)
恶意二进制文件在主机操作系统中执行的Shell命令,Shell命令日志可以通过引用系统二进制文件的绝对路径来显示它的执行情况。同时,Windows的命令提示符还包括许多别名,例如Reg.exe的reg。
Processes(进程)
进程日志明确由恶意软件样本执行的系统二进制文件。执行的参数也包含在行为报告中的进程日志中。
在我们的分析中,如果一个样本的行为报告包含至少一个LotL二进制文件的执行,那么它使用了LotL技术。我们记录了每一个LotL的执行及其参数细节,并将它们插入到数据库中。然后,我们分析了这些恶意软件样本的参数,以确定每个数据集中最==常见的参数类型和执行目的==。
具体而言,我们确定了这两种独立类型的二进制文件:
- Default System Binaries
- Installed Signed Binaries
模式匹配优化:模式匹配方法在不断改进,直到所有识别的LotL命令被正确分类和映射到执行目的,并进行了数据清洗处理。
- 不带参数的二进制执行移除
- 沙箱产物删除(如Explorer.exe和sha256),Web访问不处理
- 删除Verclsid.exe的实例
==4.4 Parameter Analysis to Identify Execution Purpose==
==为了确定LotL技术的执行目的,我们观察了恶意软件样本提供的参数。==
图1说明了四个进程执行的映射。该映射通过识别单独的执行目的来在所有数据集上实施,例如执行Net.exe时使用stop参数表示任务停止。在将单个命令映射到执行目的之后,我们将为该二进制文件选择所有匹配的执行。我们在所有系统二进制执行中重复该步骤,直到每次执行被分类为属于特定的执行目的或被错误分类。
按照这种方法,我们按目的将参数分为9个独立的类别。
首先是三种与执行有关的类型:
- Proxied Execution:代理执行,如Mshta.exe执行.hta文件,Rundll32.exe执行.dll文件
- Persistence:持久化:如果恶意代码配置或修改系统以在未来某个时间点执行命令或存储的作业,那么它就实现了持久性,比如Sc.exe带有创建参数的Bitsadmin.exe,或带有日期时间参数的Schtasks.exe/At.exe
- Delayed Execution:延迟执行,比如 Ping.exe执行-n
接着是三类与底层系统组件的修改有关。恶意软件通常从事这种行为,以便在机器上对目标进行==进一步的传播==或行动。
- Firewall Modification:防火墙修改,如Netsh.exe
- Registry Modification:注册表修改,如Reg.exe
- Permissions Modification:权限修改,如Cacls.exe修改文件权限
最后是与执行或系统修改无关的三类。
- File Opening:打开文件,如Explorer.exe
- Reconnaissance:侦察,触发本地或远程配置的横向移动,如Net.exe
- Task Stopping:使用LotL二进制文件秘密停止另一个进程或服务,如Taskkill.exe