(论文笔记07.Survivalism: Systematic Analysis of Windows Malware Living-Off-The-Land(CCF A)2021)
本片论文主要研究的是在Windows系统下的恶意软件所利用的哪些系统原生带的或者易于安装的二进制文件,以及其运行的目的。
由于我的研究方式重点是放在APT上,所以重点关注APT相关的内容
1. 概述
1.1描述一下LOTL技术
LotL技术指的是使用已经存在于系统上或易于安装的二进制文件(例如,经过签名的合法管理工具)来进行post-exploitation activity.
1.2 APT组织中使用LotL技术
2. 背景
2.1 A. LotL Binaries
Living-Off-The-Land在恶意软件中是指:攻击者可能利用他们已经可用的东西(要么已经存在于系统中,要么容易安装)来进行一次成功的攻击并避免被发现。
定义:在本文中,我们将LotL二进制文件定义为任何合法使用的二进制文件,它们可以在攻击期间直接执行恶意操作;或者间接地协助攻击。
例子:
- Windows系统上默认安装的二进制文件,如Reg.exe、Sc.exe和Wmic.exe是最容易被恶意软件利用执行的,大多数默认安装的二进制文件都是由Microsoft Authenticode[35]签名的。Authenticode签名证明二进制文件在编译过程中没有被篡改或修改,这些二进制文件甚至可能被显式地列入白名单。在Windows系统上使用系统二进制文件可以作为恶意软件操作的一部分,更重要的是,许多LotL技术利用系统二进制文件来达到这些二进制文件的目的(就是说他就正好利用这个合法的二进制文件该做的事来帮助恶意软件去做这件事)。
- 也可以使用外部签名二进制文件(External signed binaries),但是它们被使用的概率没有那么高,但是本文也将其放在了研究范围内。
Traceability:
- 某些LotL二进制文件可能比其他文件留下更多的系统日志,安全工具或取证分析人员可以利用这些日志来检测恶意行为,但是这只是某些,比如: Powershell can be configured to have comprehensive logging.
- Microsoft also recommend a number of these native binaries to be blocked from executing on systems, unless there is good reason to do otherwise [39].微软甚至建议停止一些二进制的使用。
2.2 研究范围
在本文中,我们关注Windows恶意软件执行系统二进制文件的各种目的。这些目的通常包括沿着入侵杀伤链(intrusion kill chain)[24]前进或避免A V检测。(本文主要是探究这些的二进制文件被恶意执行的目的)
2.3相关工作
在一些论文中提到了LotL技术,强调了隐身(stealthiness)和APT恶意软件的使用。
Hassan et al.[21]的研究表明(就是学姐之前组会讲过的那一篇),APT恶意软件使用lotl攻击策略来实现持续攻击,他们的工作还利用了MITRE的A TT&CK[45],通过它MITRE定义了一个优秀的分类法,用来描述和分类最著名的攻击。许多LotL技术在MITRE ATT&CK框架内被索引,这个可以结合lolbas一起看:https://github.com/LOLBAS-Project/LOLBAS/blob/master/README.md
下面看一下LOLBAS:
可以看到每个收录的二进制文件都能对应到ATT&CK的一个攻击技术中。
同时还收集了unix中的二进制文件,但是现在还没有将其对应到ATT&CK中。
利用LotL技术的恶意软件经常使用恶意脚本作为有效负载(malicious scripts as payload),
比如,Curtsinger等人提出了恶意Javascript的检测机制,虽然这些论文提出了有效的检测方法,但是它们都是为狭隘的恶意负载交付,他们没有分析更广泛的恶意软件生态系统和这些有效负载是如何被LotL二进制文件触发的。(这里的payload是不是相当于传给二进制文件的参数?)
3.MOTIVVATION(研究动机)
3.1 第一次实验
那么到底目前的AV vendor能否成功的检测这些东西呢?
实验:
1.作者在联网的Windows 10虚拟机上进行了这些实验,并将最新的本地av产品连接到它们的云组件。
2.我们使用了一个反向shell来评估AV系统在部署LotL技术的恶意软件中有多脆弱。我们认为能够允许远程执行命令的反向shell是成功执行代码的充分证明,一个远程网络连接执行命令与许多远程访问木马(RAT)的功能相同(应该是用这个来模拟恶意软件)。
3.通过从不同的LotL二进制文件运行这个反向shell来进行实验,以测试A V产品是否检测到这些技术是恶意的。
4.我们在必要时混淆了反向shell的有效载荷,并使用各种有效载荷类型来测试A V检测传递机制本身的能力,而不是通过静态签名传递的特定有效载荷。
检测结果如下,可以发现大部分的AV都没有检测出.60个中只检测出来4个
之后作者又向所有有关的a V供应商发布了一份文件,其中包含我们的规避测试的深入技术结果,并且协助进行补救。
3.2 第二次实验
在我们最初的规避测试9个月后,我们在Windows 10机器上重复了我们的测试,测试的结果如下,可以发现在60个相同的有效载荷中检测到了25个。
在检测到反向shell的一些测试中,我们修改了负载(应用了不同的混淆方法或运行了不同的负载),同时为LotL二进制文件维护了完全相同的命令行参数,通过利用这些模糊的和修改过的有效负载,我们成功地在这25个被拦截的实例中的19个执行了一个反向shell。
这些结果表明,LotL技术仍然是AV供应商面临的一个重大挑战。合法用户通常以不可预知的方式使用这些工具,而安全公司很难部署有效的检测策略,而不会出现误报
4.PREVALENCE
4.1数据收集
(作者收集数据和处理数据的方法很复杂,有兴趣的可以看一下怎么处理的)
这里作者分析了LOTL技术的流行程度,来说明这是一个不可以忽视的问题
本文作者收集了31,805,549个样本,从VirusTotal (VT)获得16,048,202份行为报告。
数据集如下:
4.2 LotL Technique Identification(技术识别)
有了数据怎么辨别是否是LOTL技术呢?
我们通过使用模式匹配来识别恶意软件执行过程中对LotL二进制文件的调用,从而处理所有收集到的行为报告,并且描绘了一些**报告指标(report indicators)**来检测:
- Shell命令(Shell命令日志可以通过引用系统二进制文件的绝对路径来显示它的执行情况。)
- 进程日志明确了由恶意软件样本执行的系统二进制文件。
在我们的分析中,如果它的行为报告至少包含一个LotL二进制文件的执行,那么它就使用LotL技术。我们记录了每一个LotL二进制的执行及其参数细节,并将它们插入数据库。然后,我们分析这些恶意软件样本的参数,以确定每个数据集中最常见的参数类型和执行目的。
我们反复验证每个结果集的横截面,识别错误分类的案例并将其从结果数据库中删除,完善我们的模式匹配方法。我们一直这样做,直到所有已识别的LotL命令都被正确分类并映射到一个执行目的。
其他处理:
1.我们还发现了许多没有提供参数的LotL二进制执行。这些情况发生在执行没有参数的二进制文件,或进程空化、替换或注入的情况下,所有这些都超出了我们的分析范围。为了证明去除是正确的,我们手工验证了这些样本中的一小部分。
2.我们在报告中确定了几个正在执行的系统二进制文件,它们是沙箱的工件,与LotL技术的使用没有直接关系。我们删除了无关了,保留了与取证有关的
4.3 参数分析,以确定执行目的
为了确定LotL技术执行的目的,我们观察了恶意软件样本提供的参数。
1.这种映射是通过识别单独的执行目的来在所有数据集中进行的,比如执行net .exe时使用stop参数表示任务停止。
2.在将单个命令映射到执行目的之后,我们为该二进制文件选择所有匹配的执行。我们在所有系统的二进制执行中重复这个步骤,直到每次执行都被分类为属于一个特定的执行目的,或者作为一个错误分类的情况而被删除
如下面就是一个映射的例子:
按照这种方法,我们将参数按目的分组为9个单独的类别:
首先是与执行有关的:
- Proxied Execution:代理执行,比如Mshta.exe执行.htafiles
- Persistence.如果恶意代码配置或修改系统,使其在未来某个时间点执行命令或存储的作业,那么它就实现了持久性,比如Sc.exe with the create parameter,
- Delayed Execution.:延迟执行,比如 Ping.exe执行-n
然后是 允许对机器上的目标进行进一步的传播或操作的参数
- Firewall Modification防火墙修改:Modifying firewall configuration e.g. Netsh.exe with the Firewall parameter and successive commands.
- Registry Modification注册表修改:Modifying registry settingse.g.,Reg.exe with an Add or Delete parameter and a registry location.
- Permissions Modification权限修改:如修改文件权限,Cacls.exe with a parameter that includes an absolute file location
最后是与执行或系统修改无关的三类:
- File Opening打开文件:Explorer.exe followed by a relative or absolute file location.
- Reconnaissance侦察:侦察信息for横向移动
- Task Stopping:Taskkill.exe executed with another process name as parameter.
5.讨论结果
5.1商品恶意软件中LotL技术的流行
1.如果我们忽略Ember的良性数据集和APT恶意软件数据集(去掉最大和最小),我们可以观察到5.42%到12.72%的商品恶意软件样本至少使用过一次LotL技术。
2.在我们的VT平衡数据集中,我们可以观察到9.6%的样本利用了这种技术。这些数字表明,LotL技术是一个相对普遍的现象,而不是在特定的恶意软件样本或家庭中发生的偶然事件。
3.最重要的是:APT数据集使用LotL技术的频率明显高于商用恶意软件。26.26%的APT数据集使用了LotL技术,是可比的恶意软件数据集的两倍多。
其他:作者把YARA这个数据集排除在了上面的统计值,在这个特殊的例子中,我们的Yara规则检索的47%的文件后来被评估为使用了某种LotL技术。这个结果也很有趣,因为它意味着恶意样本访问系统二进制文件的次数中,有一半是为了利用它作为LotL技术。
下图表述了每个数据集中最频繁使用的二进制文件:
5.2 不同数据集的恶意软件的目的和执行参数
我们重点关注第一个APT攻击恶意软件的数据集,使用最多的是代理执行,注册表修改和延迟执行
5.3恶意软件家族
我们确定了大量的恶意软件家族,它们非常多产(即,几乎所有的样本都使用了一种或多种LotL技术),而其他的恶意软件采用的LotL二进制代码非常少,我们将这种分类限制在包含至少100个样本的家庭。
从上图可以看到,大量的家庭没有使用LotL二进制文件,而少数家庭表现出这些技术的高流行率。
这,意味着,虽然LotL在总体上得到了大量采用,但这些技术的使用只集中在少数恶意软件家族中。
5.4 最常被恶意软件和良性软件使用的二进制文件的对比
下图是良性软件使用的二进制文件
下图是之前恶意软件常使用的二进制文件
我们可以注意到,恶意软件(见表V)和良性软件最常执行的二进制文件有显著的不同。
5.5 恶意软件和良性软件使用二进制文件的目的不同
下图为良性和恶性软件之间的使用二进制的目的不同:
1.比如可以发现,在恶行软件和良性软件之间用作代理执行的目的比例都非常高,这些行为模式对启发式AV算法的创建者提出了重大挑战,其中一个索赔表明假阳性风险非常高。
2.该发现同时也说明,并非所有LotL二进制文件或目的在良性软件和恶性软件中都同样普遍,上表可以发现除了代理执行之外,其他的目的差别还是挺大的,因此A V供应商仍有机会创建启发式规则,以识别在良性软件中不那么普遍的技术类型。
5.5 Prevalence of LotL techniques in APT Malware(在APT中分析)
如上表所示:
我们观察到APT恶意软件主要使用LotL技术来延迟和代理执行,以及侦察。这可能在一定程度上反映了APT恶意软件旨在实现隐蔽的横向移动和泄漏数据。
下表表示出使用了百分之50之上的LOTL技术的APT攻击活动:
这表明使用LotL技术在APT组织中的在多个活动中使用它们。
6.讨论
1.我们测试的几乎每一个流行的A V产品都难以检测LotL二进制文件的恶意使用。即使在负责地向每个供应商披露这些问题后,也只有一小部分成功实现了检测机制。其中一些供应商实现了针对我们实现的特定恶意负载的检测机制,但没有实现交付机制本身。其他人报告说,由于存在令人望而却步的假阳性风险,实施这种对策具有挑战性。
2.良性样本和恶意样本在执行目的上存在差异,为检测算法的发展提供了一个矢量。事实上,最近的论文[71,21]探索了这条有希望的研究路线,以克服现有安全产品的局限性
3.我们可以看到,大多数家庭的患病率较低,而少数家庭使用这些技术的患病率高得多。这意味着这些技术足够普遍,可以被某些恶意软件作者采用,但不是唯一的(或最流行的)方式实现恶意软件的功能
4.可以发现LOTl技术的使用较为普遍,而且APT攻击中使用这种技术的数量是普通商用恶意软件的二倍。
7.LIMITATIONS& FUTUREWORK(限制以及未来工作)
论文的范围:我们缩小了论文的范围,专注于恶意软件对LotL二进制文件的使用
7.1 Anti-VM Malware
由于数据来源于云中的动态分析沙箱,恶意软件使用的反虚拟机规避技术可能会影响数据质量。我们通过排除在沙箱中执行最少或执行过程中崩溃的恶意软件样本来缓解这一问题。也就是说还有一部分没有被检测出来,因此,我们可能低估了可能使用LotL二进制文件的样本数量。然而,我们的数据是该技术普及程度的下限,并证明这是一个不容忽视的重要现象。
7.2 Linux LotL(UNIX环境下的二进制)
UNIX环境下的二进制(titled GTFObins [19])在这个地方是有的,但是没有对应到ATT&CK矩阵中的每一个攻击技巧。
7.3检测
1.该领域的另一个未来研究方向是部署检测技术,这些技术试图准确捕获LotL技术(如端点检测和响应(EDR)系统)的已识别的使用模式。
2.未来的研究应利用最近在流程执行链上进行数据溯源分析方面的工作[71,21],以建立合法流程关系的模型,并识别可疑的行为模式。
(这两篇我都有收集到,下一步去看一下。)
(论文笔记07.Survivalism: Systematic Analysis of Windows Malware Living-Off-The-Land(CCF A)2021)相关推荐
- [论文笔记-1]Aspect-based Sentiment Analysis as Machine Reading Comprehension
题目.作者 一.Abstract 1. 现有的研究通常通过堆叠多个神经模块来处理基于方面的情感分析,这不可避免地导致严重的错误传播 2. 本文提出了MRCOOL: MRC-PrOmpt mOdeL框架 ...
- (论文笔记06.High Fidelity Data Reduction for Big Data Security Dependency Analyses(CCF A)2016)
High Fidelity Data Reduction for Big Data Security Dependency Analyses(CCF A) 这是我读的条理最清晰的一篇文章了! 1.AB ...
- 【论文笔记09】Differentially Private Hypothesis Transfer Learning 差分隐私迁移学习模型, ECMLPKDD 2018
目录导引 系列传送 Differentially Private Hypothesis Transfer Learning 1 Abstract 2 Bg & Rw 3 Setting &am ...
- SER 语音情感识别-论文笔记4
SER 语音情感识别-论文笔记4 <SPEECH EMOTION RECOGNITION WITH MULTISCALE AREA ATTENTION AND DATA AUGMENTATION ...
- 【论文笔记】Unsupervised Deep Embedding for Clustering Analysis(DEC)
[论文笔记]Unsupervised Deep Embedding for Clustering Analysis(DEC) 文章题目:Unsupervised Deep Embedding for ...
- 论文笔记:Non-Profiled Deep Learning-based Side-Channel attacks with Sensitivity Analysis(DDLA)
论文笔记:Non-Profiled Deep Learning-based Side-Channel attacks with Sensitivity Analysis(DDLA) Benjamin ...
- 【论文笔记】李盟, et al. 一种恶意代码特征选取和建模方法. 计算机应用与软件 08(2015):272-277.
前言 论文笔记. 论文笔记 出处及年份 <计算机应用与软件 Computer Applications and SoftwareVol.>第32卷第8期2015年8月 论文标题 一种恶意代 ...
- [论文阅读] (07) RAID2020 Cyber Threat Intelligence Modeling Based on Heterogeneous GCN
<娜璋带你读论文>系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢.由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学 ...
- NLP论文笔记合集(持续更新)
NLP论文笔记合集(持续更新) 经典论文 参考文献 情感分析论文 关键词 综述 参考文献 非综述 参考文献 其他论文 参考文献 经典论文 2003年发表的文章1^11,NLP经典论文:NNLM 笔记 ...
最新文章
- 程序员编程时戴耳机是在听什么?
- 6款强大的jQuery插件 创建和加强网站布局
- 如何分析java程序_如何利用 JConsole观察分析Java程序的运行,进行排错调优
- 课堂经验值管理小程序_柳州人事管理小程序要有这些功能
- python语言命名规定首字符不能是_python标识符命名规范原理解析
- 存储过程排版工具_我的绘图工具箱
- cudaMemcpy2D介绍
- leetcode —— 面试题68 - II. 二叉树的最近公共祖先
- kafka 分组消费topic_关于kafka更改消费者对应分组下的offset值
- SCOM 2016 配置报警邮件 (下)
- Docker 安装基本操作
- RabbitMQ小笔记
- Python实现类似局域网QQ群聊
- 计算机辅助设计与制造考试重点,2016计算机辅助设计与制造复习内容
- 华为HCNE(H3CNE) / HCSE(H3CSE)认证必看书籍
- 问题解决:Too many errors! 3 errors were dropped
- 调css p 段落间距,CSS段落第一个文字空两格缩进text-indent 和 文字之间间距调整letter-spacing...
- 【Unity学习历程之一】给Visual Studio中的C#脚本编辑添加自动补全
- ORA-01918: user hr does not exist 解决办法
- 我的北漂之路 北漂如饮水,冷暖自知