•Introduction
加密劫持就是通过Web网页消耗客户端计算机上的计算资源来解决加密难题,从而为攻击者的挖矿提供额外的工作量,并且这种行为通常不会通知用户或者经过明确的用户同意。这种新机制就称为加密劫持。
加密劫持存在严重的滥用现象,如果要深入研究就得首先大规模识别此类加密网页。现有收集加密劫持样本的方法有两种:加密网页耗尽受害者的CPU资源,或者包含显式关键字的恶意有效载荷签名。但是作者发现了很多加密劫持其实是躲过了这两点检测的。例如,基于关键字的加密货币挖矿脚本搜索[28]可以通过简单的代码混淆技术来规避;攻击者也可以通过配置挖矿任务来保持CPU使用率在一定限度内。
然后作者提出了一种检测机制。它由两个基于运行时行为的分析器组成。第一个分析器,基于散列的分析器,利用了工作量证明系统的性质,该系统需要繁重的工作量来计算哈希值。因此,作者监视与哈希活动相关的脚本行为的统计信息。第二个分析器,基于堆栈结构的分析器,因为观察到加密货币的挖矿是重复和定期的,因此挖矿脚本的堆栈调用也必须是重复定期的。所以作者就通过记录运行时的堆栈来识别挖矿页面。
通过使用刚刚介绍的它们自己提出的这个检测机制的检测,最终从85万多个热门网页中收集了2770个加密劫持样本,其中包括在Alexa列表中前100K的有868个。Alexa是一家专门发布网站世界排名的一个网站。然后它们的检测结果中有53.9%的样本是现有的基于黑名单的检测器检测不出来的。并且它们的检测结果是2个月前(18年2月)360发布的最新公开报告的2.6倍。同时作者采用手动抽样检查的方式验证它们的检测机制检出来的结果是正确的(TP)。从而证明他们的检测机制在覆盖范围和精度方面都是不错的,优于现有的检测方法。
之后作者对他们检测出来的数据进行分析,并得到一些结论。从检测到的2,770个加密网站中,他们估计至少每月会影响到1千万的网络用户。进一步分析,他们发现每天加密劫持的工作量有超过278K千瓦时的额外的能源消耗,相当于一个拥有9.3K人口的小城镇的能源消耗。同时,估计攻击者每天的收入超过59K美元。
其次,他们通过研究加密劫持的基础设施发现恶意的角色是相互协作的。不同加密劫持样本的钱包ID很少有指向同一个攻击者的,所以存在大量不同的攻击者。此外,加密劫持页面会快速更改它的域,从而使现有的基于黑名单的解决方案无效。由作者实验可知,超过20%的加密劫持域持续不到9天,但黑名单平均每10至20天才更新一次。
然后它们发现至少有3种技术可用于规避当前已有可用的检测方法,包括限制CPU使用,挖矿脚本的代码混淆和有效载荷的隐藏。
这篇文章主要有三个贡献点:第一点,作者设计并实施了一个检测器,用于检测高精度和大覆盖范围的加密劫持。第二点,通过抓取并访问Alexa前100K的网站,以及每个网站里的几个链接,检测到了2,770个加密劫持页面。 同时作者估计了加密劫持的一些影响,比如它每天的额外功率超过278K千瓦时,攻击者每天的收入至少为59K美元等。第三点,作者系统地研究了加密攻击的基础设施,分析了攻击域的各个方面和脚本的行为。
•Related Work
首先是加密劫持方面。经过用户反映,这种加密劫持的新现象正在增多,可能是由于加密货币的市场价值的提升所致的。Adguard [2]在2017年11月已经从Alexa排名前100K的名单中发现了220个加密网站。 同时,Whorunscoinhive [33]显示了,使用Coinhive(最流行的加密货币挖掘脚本)的网站数量仅在一个月内增加了31.7%。
然后是加密货币安全方面。大多数现有的研究都集中在通过改进加密货币的设计和架构来构建更安全的生态系统。例如,Eleftherios等人[23]提出了一个新的拜占庭共识协议,他们的设计为比特币交易带来了更高的效率,同时又不牺牲其安全保障。
还一些工作重点是识别加密货币体系结构中的威胁和机会。Eyal等人[16]针对比特币挖矿提出了一种新型攻击方式。他们发现,合作可以让矿工获得比正常公平奖励得到的收入更多。Reid等人[30]研究了比特币系统的匿名性。他们发现,矿池可能会引发高代价的DDoS攻击,从而降低与其竞争的矿池的预期成功的前景。Johnson等人[15] 通过一系列不同大小的两个池之间的竞争博弈模型,探讨了这些策略之间的权衡。
最相关的工作是Plohmann等人[29]。他们研究了矿工僵尸网络的安全事件。但是,他们的研究并不在网络环境中。
之后是恶意JavaScript检测。因为作者对加密劫持的测量研究主要基于JavaScript代码分析技术。
现有的相关研究通常采用静态或动态分析来识别恶意JavaScript的特征。
首先动态分析,JS.JSAND [9]提取了四个不同方面的特征(重定向,反混淆,环境上下文和广告推销)。他们采用基于朴素贝叶斯的方法来检测JavaScript恶意软件样本,这些样本通过后台下载,自动在受害者机器上进行分发。
对于静态分析,Curtsinger等 [10]介绍了一种通过提取与程序的抽象语法树(AST)相关的功能来预测良性或恶意JavaScript代码的工具。
还有部分研究集中于通过利用一些独特的特征(如,广告商ID)来检测恶意广告脚本。Zarras等人 [37]研究了广告的安全性,以及用户如何暴露于恶意内容及其来源的。但是这些特征和加密货币挖矿的独特的特征还不太一样。
•加密劫持识别
第三部分从三方面描述了检测加密劫持网站的方法。首先,介绍了用于进行大规模研究的数据集。 然后举例说明了两种基于行为的动态发现加密货币挖矿页面的方法。最后对这些自动识别的网站进行进一步的验证,以确定它们是否确实是