G.O.S.S.I.P 阅读推荐 2022-06-16

admin 2022年6月17日03:29:48评论27 views字数 4288阅读14分17秒阅读模式

今天为大家推荐的论文是来自纽约州立大学布法罗分校安全研究团队投稿的关于理解和检测Linux系统的物联网设备远程感染的工作Understanding and Detecting Remote Infection on Linux-based IoT Devices。目前该工作已发表于AsiaCCS 2022, 并获得了最佳论文奖( Best Paper Award )!


G.O.S.S.I.P 阅读推荐 2022-06-16


「背景介绍」

如今物联网(IoT)设备的数量迎来了爆发性的增长,但是因为安全性差和24小时7天都在线的特性,使得IoT设备成为了攻击者的理想目标。然而,因为IoT设备的开支限制和许多漏洞,保护这些IoT设备变得十分具有挑战性。正因如此,在被攻击者操纵之前尽早检测到来自远程的感染企图,对避免经济损失和实质性破坏十分关键。

在这项工作中, 作者对于从 VirusShare和182个物联网蜜罐收集的 403,464 个样本的大规模数据集进行了实证研究,以深入理解物联网恶意软件远程感染的特征。

基于对这些特征的理解,作者提出Infection Capability的概念,并用此概念对shell命令进行了抽象和分类。除此之外,作者基于对数据集研究的结果,开发了一个能运行在IoT设备内部,实时检测远程感染行为的方法。评估表明该检测方法可以实现 99.22% 的远程感染检测率,并同时维持较小的性能开销。

 

「研究工作概览和亮点」

理解IoT设备远程感染

首先,作者将IoT远程感染过程分成了如图1所示的Settlement, Environment Preparation, Payload Delivery, Payload Execution, and Persistence&Covert五个阶段。


G.O.S.S.I.P 阅读推荐 2022-06-16

图1:作者确定的物联网远程感染过程的五个阶段(左),以及在 Mirai 源代码中发现的用于感染的 shell 命令(右)


针对这五个阶段,理解在每个感染阶段执行哪些命令,以及这些命令执行的顺序对于完全理解IoT远程感染是怎么发生的变得至关重要。因此作者进一步对包含了大量用于远程感染shell命令的大规模数据集进行了研究。

作者从而收集了两部分数据集,一部分是来源于VirusShare的数据集,里面包含了从2012到2020年的恶意软件集合,其中作者发现里面的bash脚本和恶意ELF文件包含shelle命令。另一部分数据集来源于作者部署于2020-06-25至2020-10-13期间的182个蜜罐系统所收集的远程感染事件。以下图3,图4是数据集里的样例:


G.O.S.S.I.P 阅读推荐 2022-06-16

图3:数据集中的一个样本感染脚本

SHA-256: 2a151e1148fb95c7696b05db4c58d1fd8e138f0f9c8c638228c203ad273523f8


G.O.S.S.I.P 阅读推荐 2022-06-16

图4:数据集中的一个样本ELF文件

SHA-256: cc0e1ff4ef6ae076c55c7435457dbd647789989fbfecdc04262f26bd02deac73


为了分析这些bash脚本,基于bashlex作者开发了工具来从中提取Linux命令。作者从上述的数据集里面提取了命令序列,并且做了统计学上的分析如下表1:

G.O.S.S.I.P 阅读推荐 2022-06-16

表1:在感染脚本、恶意 ELF 文件和蜜罐日志中发现的前 20 个命令统计


通过进一步分析,作者得出如下五个发现:

  1. 在远程感染中所执行的Shell命令更集中和实用,数目要远比在数据集里所发现的要少。

  2. Shell 命令大多数由外部命令组成,这使得通过Shell命令来进行远程感染跟各种物联网设备架构和shell高度兼容。

  3. 多次更换路径和试错被远程感染脚本广泛使用,这是个非常可疑的行为。

  4. Shell 脚本中涉及的 IP 地址往往是临时的,不太可能被公开的恶意 IP 地址数据库所覆盖。

  5. 选择 VirusTotal 的 检测为恶意软件的报告比率为17% 左右,或者检测为恶意软件的数量 为20 左右,可以在感染脚本的误报和误报之间实现良好的权衡,如图5。


G.O.S.S.I.P 阅读推荐 2022-06-16

图5:显示数据集中每个脚本分类为恶意的 VirusTotal 引擎的数量 (a),以及 VirusTotal 引擎将感染脚本报告为恶意的比率分布 (b)的CDF 图


除以上分析和发现之外,作者还整理并提供了一种对Shell 命令的分类方法,该分类以Infection Capability概念为基础,如下表2所示:


G.O.S.S.I.P 阅读推荐 2022-06-16

表2:基于感染能力概念的 Shell 命令分类


将具体的Shell命令抽象为Infection Capability 主要有两个好处。其一是使得对感染过程的理解具有一般性;其二是能够极大减少Shell命令多样性造成的复杂性。

 

检测IoT设备远程感染

为了验证以上发现的实用性,作者基于所提出的分类法开发了一个初步性的感染检测器,并且做了相应的评估,如图6。

首先,作者使用数据集中的感染脚本将远程感染过程建模为了有限状态机。作者的建模方法包括 3 个主要步骤。首先,为数据集中的所有感染脚本和良性脚本生成命令流图(CFG)。其次,基于所有感染脚本的CFG构建感染状态机(ISM)。最后,对于感染脚本和良性脚本的CFG进行相关性分析。该相关性分析将跟踪所有CFG中的能力,并为ISM中的每个状态转换分配权重,分配权重时将感染脚本的权重最大化,并且将良性脚本的权重最小化。


G.O.S.S.I.P 阅读推荐 2022-06-16

图6:建模方法概述。首先,作者在数据集中生成感染和良性脚本的控制流图(CFG)。然后作者构建了一个代表恶意软件感染行为模式的(感染状态机)ISM。之后,作者通过相关性分析为ISM分配权重。生成的带权重的感染状态机(WISM)来用做恶意软件感染的通用模型


G.O.S.S.I.P 阅读推荐 2022-06-16

图7 :从两个感染脚本构建 ISM

 

进而,作者在Linux内核空间中构建了感染检测器,并对恶意软件远程感染进行了实时检测。作者实现了一个钩子函数来指向分类器入口点。该分类器由上述的WISM,PID为主键的时间窗口、阈值测试器和警报函数组成。每次当命令执行通过execve系统调用触发钩子函数时,感染检测器都会根据PID值来获得检索时间窗口。一旦登录会话终止,就会调用退出系统调用,并且触发删除相关时间窗口。该感染检测器会根据每个时间窗口内分别利用的感染能力重新计算风险评分。

如果风险评分未超过阈值,则分类器返回到execve以继续正常流程。否则,分类器将调用警报函数来将检测日志写入rsyslog系统日志。


G.O.S.S.I.P 阅读推荐 2022-06-16

图8: 感染检测器实现

 

作者对于所构建的模型和检测器的评估由有效性检测,泛化检测和真实设备的性能检测三部分组成。

首先,作者于2021年3月29日至2021年5月1日在IoT蜜罐上部署了感染检测器,以评估其在检测持续远程感染方面的有效性。表3列出了感染检测器对147,860次远程感染的检测结果,其中作者的感染检测器发出了146,702次警报。结果FNR为0.78%,TPR为99.22%。


G.O.S.S.I.P 阅读推荐 2022-06-16

表3: 感染检测器的实时检测结果


对于泛化评估,作者将数据集中的shell脚本随机分成训练集(80%)和测试集(20%),并确保测试集中的样本不会出现在训练集中。

表4列出了在此评估中使用的所有集合的详细信息.total_b 和 total_m 分别是良性和感染脚本集。training_b 和 training_m 是用于训练的良性和感染脚本集。testing_b和testing_m是用于测试的良性和感染脚本集。

测试结果如图9(a)所示。大多数感染脚本产生接近1的高风险评分,而大多数良性脚本获得接近0的低风险评分。使用在训练过程中确定的阈值 0.50,作者的模型实现了0.17%的误报率(FPR)和96.33%的真阳性率(TPR),总体准确率为98.83%,F-score为0.98。


G.O.S.S.I.P 阅读推荐 2022-06-16

表4: 评估中所使用的每个样本集的详细信息


G.O.S.S.I.P 阅读推荐 2022-06-16

图9: 感染检测模型的测试结果 (a) 和 ROC 曲线 (b) 


对于部署在真实设备上的性能测试,作者在三个流行的物联网平台(代表低端、中端和高端物联网平台)上进行了性能影响和功能影响的测试。分别使用了D-Link DCS-932L IP Camera(DCS-932L), Raspberry Pi Compute Model 3 (CM3)和SolidRun HummingBoard Edge (HBE).

图 10(a)显示了设备在没有人工交互的情况下运行时的结果,图10(b) 显示了用户登录系统并执行诸如复制文件、删除文件、打开文件等常规操作时的结果。在第一种情况下,感染检测器分别为DCS-932L、CM3和 HBE引入了 3.73%、3.61% 和3.85%的CPU 平均负载。在第二种情况下,感染检测器引入 1.73%、2.20% 和DCS-932L、CM3 和 HBE 的 CPU 平均负载分别为 2.54%。


G.O.S.S.I.P 阅读推荐 2022-06-16

图10: 无/有人工交互(a)和无/有人工交互(b)的三种IoT平台设备的CPU负载平均值。


对于远程感染逃避测试,在这种攻击中,攻击者在实际执行感染活动时试图模仿良性操作来让感染检测器无法捕获感染。作者对通常使用的三种类型更改正在执行的命令来避感染检测器的策略进行了测试。分别是注入额外的命令,用新命令来替换,和用可替换的命令来更换。

其中对于第一种类型,作者用三种策略来进行了测试。分别是策略1随机注入不同的shell命令来触发低权重小于0.42的转换。策略2随机注入重复的shell命令触发低权重的转换。策略3:随机注入不同的 shell命令来触发具有高权重(大于0.42的转换。

结果如图11中。随着额外命令数量的增加,感染检测器的检测精度略有下降。感染检测器为三种策略注入10%的额外命令时分别达到 97.42%,97.74%和97.58%,在三种策略中分别注入100%额外命令时达到89.66%,89.82%和87.72%。


G.O.S.S.I.P 阅读推荐 2022-06-16

图11: 通过注入随机命令进行感染逃逸测试

 

 

论文链接:

https://dl.acm.org/doi/abs/10.1145/3488932.3517423




投稿团队介绍:

作者团队分别来自State University of New York at Buffalo(纽约州立大学布法罗分校),Clemson University (克莱姆森大学),Texas A&M University (德州农工大学),共7名研究人员。其中Hongda Li毕业于克莱姆森大学, 目前就职于Palo Alto Networks, Qiqing Huang是纽约州立大学布法罗分校的在读博士生,  Fei Ding是克莱姆森大学的博士生,Hongxin Hu和Ziming Zhao是纽约州立大学布法罗分校的教授, Long Cheng是克莱姆森大学的教授,Guofei Gu是德州农工大学的教授。


原文始发于微信公众号(安全研究GoSSIP):G.O.S.S.I.P 阅读推荐 2022-06-16

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月17日03:29:48
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   G.O.S.S.I.P 阅读推荐 2022-06-16https://cn-sec.com/archives/1122885.html

发表评论

匿名网友 填写信息