Network and Distributed Systems Security (NDSS) Symposium 2022, 24-28 April 2022
最近,加密劫持恶意软件 已成为从 大量受害者中获利的简单方式。先前研究的密码劫持检测系统,重点是(in-browser)浏览器内和(host-based)基于主机的密码劫持恶意软件。
然而,这些早期的工作都没有在这种背景下研究不同的攻击配置和网络设置。例如,具有积极获利策略的攻击者可能会将计算资源增加到最大利用率,以便在短时间内获得更多好处,而隐蔽型的攻击者可能希望在受害者的设备上停留更长时间而不被发现。
检测机制的准确性可能因攻击型和隐蔽型的攻击者而异。在检测机制的性能评估中,盈利策略、密码劫持恶意软件类型、受害者的设备以及网络设置都可能发挥关键作用。
此外,具有多个物联网设备的智能家居网络很容易被攻击者利用,帮攻击者去挖矿。然而,之前没有任何工作调查研究过:加密恶意软件对物联网设备和受损智能家居网络的影响。
结果表明,我们的检测算法仅需一个小时的训练数据就可以获得高达99%的准确率。据我们所知,这项工作是第一项专注于物联网密码劫持的研究,也是第一项分析密码劫持检测领域中各种攻击行为和网络设置的研究。
区块链技术消除了中央权威,并通过基于算力的共识模型来确保链上交易的不变性。这种共识模型称为PoW工作证明,用于比特币、以太坊和Monero等区块链网络中。PoW共识算法取决于硬件的计算能力,解决基于散列的题需要消耗大量能量,而这种能量成本是挖矿操作的主要开支之一。
在这个生态系统中,加密劫持是一种在受害者未知情和同意的情况下使用受害者处理能力的行为。攻击者滥用受害者的计算能力进行密码劫持有两种主要方法。
随着加密劫持攻击的流行,并且能够针对更大的攻击域,物联网设备逐渐成为攻击者的攻击对象。 但,物联网设备通常是资源受限的,也就是说,攻击者一般不从单独的设备中获利,而是利用僵尸网络攻击等技术大规模地控制物联网设备,并使其能够代表攻击者挖矿。
在物联网行业和物联网设备能力不断发展的同时,也为攻击者提供了更多的空间来扩大其攻击面。
物联网网络相对于非物联网网络(普通计算机,服务器)更能提供利益的几点原因:
在本文中,我们将重点放在物联网设备上,我们的目标是设计一个能够检测浏览器和基于主机的物联网加密劫持恶意软件的检测系统。
由于大多数物联网设备不允许被编程来收集硬件级功能或浏览器特定功能,因此检测物联网加密劫持具有挑战性。然而,基于网络流量的功能可以在路由器上的统一接口中收集,也就是说,根本不需要编程来修改设备。因此,在本文中,我们使用基于网络的特征来检测IoT加密劫持恶意软件,并提出了一种准确、轻量级且易于实现的加密劫持检测系统,该系统可以检测两种类型的加密劫持攻击。
我们进行了一系列实验,以设计和评估最佳物联网加密劫持检测机制。
为此,我们在物联网设备、笔记本电脑和服务器上安全地实施了加密劫持恶意软件。
https://github.com/cslfiu/IoTCryptojacking2
除了我们的轻量级和高精度物联网检测机制外,我们还进行了大量的实验,以评估各种攻击者行为和网络设置,这导致了一些值得关注的有趣结果:
节流:像阀门一样控制水流,避免单位时间内流量过大
加密货币挖掘是新加密货币进入流通的过程,是分布式区块链账本维护和连续性的关键组成部分。区块链网络的不变性由共识机制提供,即加密货币挖掘。
加密货币挖掘是一个费力、昂贵的过程,矿工的回报取决于运气因素。基于工作的协商一致机制受益于哈希算法的扩散特性,以防止矿工以非对称模式预测哈希值,
本节解释了不同类型的加密劫持恶意软件的详细信息及其相似性和差异。
我们评估了7个攻击案例,并进行了12个离散实验来测试本文提出的加密劫持检测机制。在本节中,我们将解释IoT设备如何成为恶意软件的攻击目标,以及如何在实验中跟踪这些对手。
攻击者通常利用网页和web应用程序的代码注入漏洞,来注入服务提供商提供的挖矿脚本。今年来,物联网框架快速发展。攻击者将这些框架功能与已知漏洞合并,并利用这些漏洞在这些设备中运行他们的恶意软件。
我们使用LG的WebOS开发框架[40]实现了WebOS物联网加密劫持恶意软件,并开发了一个基本的WebOS应用程序,当用户开始运行该应用程序时,该应用程序会调用加密劫持脚本。
为了能够创建一个稳定和可控制的加密劫持环境,我们在可控的服务器下准备了一个网站,并托管了几个不同的加密劫持脚本。我们选择了Webmine[41]作为我们的主要服务提供商。我们使用不同级别的计算硬件使用组合运行脚本,以观察这些脚本的特征结果。
C&C指的是:敌方利用计算机去向设备发送指令。出于身份安全的原因,攻击者通常将这些服务器托管在基于云的平台上。
图1展示了连接到挖矿池的C&C服务的基本配置。在加密劫持域中,C&C服务器作为挖矿池的一个子集工作,从挖矿池接收任务并将任务分发给物联网设备。
在本文中,我们重点讨论了被攻击设备和C&C服务器之间的通信管道。为了演示此设置中的流程和数据通信,我们创建了一个C&C服务器,该服务器在不同时间段之间发送挖矿任务。此时间频率可以根据区块链网络的区块频率进行更改。我们成功地利用LG WebOS[40]智能TV和测试平台实现了这个场景。
网络流量分类和识别技术在过去几年中得到了广泛的应用,在服务器端和本地网络端创建用户或设备配置文件是一项众所周知的技术。
在本文中,我们考虑智能家庭网络设置,其中许多IoT和非IoT设备连接到路由器,以便能够连接到互联网。每个设备都可以通过其MAC地址进行识别。因此,我们将网络中的设备定义为网络中给定设备的 ( M A C 0 、 M A C 1 、 … 、 M A C n ) (MAC_0、MAC_1、…、MAC_n) (MAC0、MAC1、…、MACn)。
我们假设此网络中的一个或多个设备被攻击者破坏,以代表攻击者执行加密货币挖掘,我们的目的是通过在一定时间段内监视其网络流量来检测正在执行的设备。
为此,我们使用机器学习算法,这些算法事先经过了恶性和良性数据的训练。设备产生连续的网络流量,需要将其转换为数据格式,机器学习算法可以预测设备是否运行。
在将数据包转换为正确格式之前,我们使用以下过滤器过滤每个数据包。
( M A C s r c = = M A C i ) O R ( M A C d s t = = M A C i ) (MAC_{src}==MAC_i)\;OR\;(M AC_{dst}==MAC_i) (MACsrc==MACi)OR(MACdst==MACi)
然后,从每个数据包中提取以下元数据:
P k t i = [ M A C i , t i m e s t a m p , p a c k e t l e n g t h ] Pkt_i= [MAC_i,\, timestamp,\, packet\,\, length] Pkti=[MACi,timestamp,packetlength]
在这个过程的最后,我们获得了每个设备在给定时间到达的一系列数据包长度。最后,我们使用10个数据包来计算特征,并使用这些特征来训练/测试机器学习算法。
本文中我们关注的数据是物联网设备和加密劫持服务提供商之间的网络通信数据。在本节中,我们将重点介绍拓扑结构、工具、方法以及我们在物联网环境中使用的其他实现细节,从而解释主要的数据集收集和创建过程。
检测网络中 受控设备执行未经授权的挖矿行为。
我们在代表不同计算能力的四种不同设备上进行了实验。树莓派和LG智能电视代表现实网络中的物联网设备,而笔记本电脑代表常规设备,而Tower服务器代表计算能力强的设备。表I显示了我们在实验中使用的设备及其规格。
此外,在图2中的给定拓扑中:
通过这种网络配置,我们能够使用Wireshark数据包收集器和分析器收集所有网络数据。
浏览器内和基于主机的密码劫持的实现在几个方面有所不同。在接下来的小节中,我们将解释其实现的细节。
为了能够在安全的环境下实施浏览器加密劫持,我们推出了一个基本的WordPress[49]网页,其中包含了几种不同的恶意软件。我们在测试网站的不同页面的源代码中放置了不同的基于HTML的恶意软件样本。我们将这些页面与测试设备连接起来,并为每个用例场景收集至少12小时的网络流量数据,如第三节所述。我们使用了Webmine.io和WebminePool[50]服务提供商分发的脚本,用于浏览器内加密货币挖掘。
在树莓派、笔记本电脑和Tower Server上实现基于主机的加密劫持非常简单。我们下载了加密货币挖掘二进制文件MinerGate V1.7,并让他运行。
然而,在LG 智能电视上这样做比较难,因为该设备必须要求能够执行该二进制MinerGate文件。因此,我们使用LG WebOS 框架开发了一个基础应用程序,只要该程序运行,他就会运行加密劫持恶意软件。我们使用 1 GB RAM, 1 Core CPU, and UbuntuServer 18.4配置的云服务器。在我们创建了在WebOS支持的智能电视和C&C 服务器中运行的恶意程序后,我们为实际的挖掘过程实现了两种不同的模型,如下所示:
这两种方法之间的唯一区别是创建挖掘任务的实体(C&C服务器与挖掘池)。对于我们的数据集,我们使用Ant挖掘池[53]并收集了智能应用程序和C&C服务器之间的数据流。
当Wireshark收集所有网络数据时,我们会使用我们在第三节中介绍的所有攻击场景来收集网络数据。执行挖掘的设备生成的网络流量被标记为恶性,而未执行加密或当前挖掘的设备收集的数据集被标记为良性。
我们设计了不同的场景,使用我们的受控环境设置收集恶性数据,以评估攻击者可能使用的各种配置以及在现实智能家庭环境中可能的网络设置。关于配置和结果的更多详细信息,请参见第六节。
另一方面,对于第一组实验,我们从公共存储库下载了良性数据集[54],对于第二组实验,对于我们用于恶意数据收集的同一组设备,我们收集了自己的良性数据集。数据集的完整细节如表二、表三和表XI所示。
本文的主要目标是能够区分恶性和良性网络数据。为此,我们对加密劫持网络数据进行了一些初步数据分析,并将结果列出如下:
为了能够看到不同设备在不同攻击场景下产生的不同模式,我们对本文中使用的所有设备进行了浏览器和二进制加密劫持,并在表2中总结了结果。我们可以将我们的观察总结如下:
最后,我们进行了特定于设备的分析:
总而言之,我们发现,从网络流量上看,浏览器内的恶意软件试图保持隐蔽并减少高数据密度通信,但基于主机的软件则产生了巨大的网络流量。这是因为基于主机的密码劫持恶意软件通常与其他计算量大的应用程序共同运行。
在本节中,我们设计了四组实验,以设计和评估准确、高效且适用于不同配置和网络设置的物联网密码劫持检测机制:
在数据集收集和标记过程之后,我们创建了一个完整的数据集,该数据集包含一个恶性数据集和一个良性数据集,数据包数量相等。表IV给出了数据集的大小以及整个数据集的总特征提取和分类时间。
在本小节中,我们的目标是设计一种基于网络流量特征的物联网检测机制,并使用机器学习(ML)分类器进行分类。
为此,我们执行了以下步骤:
我们使用tsfresh[37]从数据集中提取特征。tsfresh库是一个python包,它可以从时间序列数据中自动计算统计特征。在我们的例子中,我们为每个特征向量使用了10个数据包,它计算了788个不同的统计特征,比如有时间戳和数据包长度。
特征选择是为我们的模型选择相关特征子集的过程。数据集中所有特征的相关性得分不相同。为了能够优化提取的特征并仅使用最相关的特征,我们计算了P值。P值就是当原假设为真时,比所得到的样本观察结果更极端的结果出现的概率。如果P值很小,说明原假设情况的发生的概率很小,而如果出现了,根据小概率原理,我们就有理由拒绝原假设,P值越小,我们拒绝原假设的理由越充分。我们发现290个数据集的统计显著特征,并用这些特征训练我们的模型。我们对其余的实验重复同样的过程。
我们实现了四个机器学习分类器来测试前一小节描述的特征的准确性。在这些分类器的实现过程中,我们使用了75%的数据进行训练,25%的数据用于测试分类器。在前三组实验中,我们使用了scikit-learn的默认参数[57],而在第VI-D3节中,我们测试了非默认参数。
我们使用了5倍交叉验证(CV)来评估分类器的有效性,并使用了准确性、精确度、召回率、F1得分和ROC作为我们所有实验的指标。
SVM是一种有用且设计良好的有监督机器学习分类器,当存在明显的分离边界时非常有效。此外,SVM分类器非常稳定,数据集中的小变化不会导致结果的重要变化。因此,我们决定在本文的其余部分中使用SVM分类器来进一步分析和实现其他用例场景。
在本节中,我们用不同的训练规模进行了实验。通过这个实验,我们分析了数据集收集时间对分类精度和总体分类时间的影响。
为了获得参考结果,我们首先通过减小原始数据集的大小将代表性数据集的时间拟合为12小时,然后将其拟合为12个小时、6个小时、3个小时,最后是1个小时,然后重复分类以测量每个训练大小 情况下的准确度和基于时间的值。图3总结了本节所涵盖的4个不同结果:
我们可以得出结论:
在本小节中,我们的目标是评估我们在第六节A中使用各种攻击配置设计的物联网密码劫持检测机制。
攻击者可以针对不同的受害者设备,选择不同的盈利策略,或者选择基于浏览器或主机的加密劫持类型。我们通过进行一组全面的实验来测试这三种配置,从而对我们的机制进行了评估。
所有场景和实验都使用第VI-A节中描述的相同特征提取和选择过程来实现。这种实现方法允许我们观察对于不同的用例场景如何有效地使用一个特性集的结果。
我们为三个场景创建了一个平衡的数据集,以最小化不平衡数据集问题的影响。表VII给出了我们用于实现这三种场景的数据集大小和来源。我们将SVM分类器用于模型训练过程。
我们从三个场景和八个离散实验的结果中看到,我们提取的特征可以在不依赖任何设备的情况下获得接近完美的分数。
在本节中,我们将研究在智能家居环境模拟网络中简化的不同对抗模型。
我们实施了四种不同的场景,并在本节的其余部分展示了它们的结果:
最后两个场景的结果很重要,因为这两个场景反映了大多数Mirai[13]和其他已知的物联网僵尸网络[58]攻击场景。我们的结果表明,设备完全受损的场景是最有可能被我们的检测机制检测到的场景,而当只有物联网设备受损时,也能有一个比较高的准确度(>92%)。这意味着我们实现的检测模型和特征集可以成功检测各种家庭环境攻击场景。总体而言,我们选择的分类器和特征集的组合成功地以高精度检测到了加密劫持恶意软件。
在本节中,我们进行了更多的实验来测试分类器的敏感性。
为了用我们自己的数据集验证上一节中的结果,我们重复了相同的场景(场景1-7),并在附录中的表XVI和XVII中给出了数据集大小和结果。
此外,为了测试分类器的灵敏度,我们设计了另外三个实验:1)不平衡数据集,2)可转移性,和3)非默认参数实验。在本节的其余部分,我们将解释这些实验的细节。
表XIII显示了我们的检测系统在不平衡数据集的不同场景下的性能。我们的训练模型能够检测并正确分类所有不平衡情况,总体准确率达到98%。
从表XV可以看出,我们提出的检测系统可以检测到密码劫持恶意软件,而无需依赖任何平台和服务提供商,这些结果验证了我们的基于机器学习的检测系统可以提供有效的保护。
3. 场景10:非默认参数实验。为了测试SVM分类器,我们调整了三个参数:kernels,Regularisation parameter(C),Gamma。
- Kernel是将低维数据转换为高维数据的主要函数。
- 正则化参数用于在决策边界和分类误差之间进行调整的惩罚参数。
- 伽马参数高时,附近的点将具有更高的影响。
我们的结果表明,不同的变量可以显著改变SVM分类器的结果。使用默认参数,分类器以87%的平均分数训练模型。然而,在我们改变参数并计算所有可能的15个组合后,我们得到了0.52-0.89之间的各种训练分数。此外,一些参数导致数据集分类过度拟合。然而,我们注意到,我们的密码劫持检测机制是高度可配置的,可以根据需要进行定制。
本文基于从网络流量中提取的特征,提出了一种准确有效的加密劫持检测机制。
我们的机制能够检测浏览器内和基于主机的加密劫持恶意软件。我们使用一小时的网络流量数据来训练机器学习分类器,实现了99%的检测准确率。
我们还设计了新颖的攻击场景,以测试我们在攻击配置和家庭网络设置中的机制。
此外,我们还分析了几种不同平台上的密码劫持攻击,以了解我们的检测机制的效率。
我们展示了攻击者可能使用的不同配置以及将执行挖掘的不同网络设置如何影响检测精度。
此外,我们公开分享了我们收集的网络流量和代码,以加速这一领域的研究。