警惕!新型网络攻击:Cryptojacking 如何在你不知情时盗挖门罗币
——实验室经理
一、背景
没有来自勒索软件的勒索通知,也没有迹象表明您的帐户或密码已被盗。除了计算机偶尔出现延迟或需要支付更高的电费之外,您甚至可能没有意识到自己已被黑客攻击。 ,即未经授权使用受害者的计算资源来挖掘加密货币,属于资源盗窃攻击。黑客将恶意代码植入网站,导致网站访问者在不知不觉中贡献自己的算力为攻击者挖矿,间接为其生产虚拟货币。它不仅会损坏网络服务器,还会消耗大量的电力资源和计算机资源,影响用户计算机的正常使用。
(图片来源于网络,因侵权已删除)
2018年《英国企业网络威胁》报告显示,全球近一半企业受到攻击,共有近5万个网站感染挖矿劫持脚本。与勒索软件等恶意软件系列相比,其操作难度更低,投资回报率更高。它不需要入侵目标系统来建立命令和控制。受害者只是被动地消耗自己的CPU周期。和电力来执行与加密货币相关的哈希函数的计算。因此,它成为近年来最常见的网络攻击手段,也是黑帽子牟利的主要手段。
据不完全统计,Alexa排名前100万的域名共包含约1700个挖矿域名,涉及28种恶意挖矿脚本。主要挖矿对象为类加密货币,如(门罗币)、(大法世界币)等。根据目前市场价值估算,收集这些加密货币平均可为挖矿受益人带来20-30万美元的总经济效益每月。不仅如此,由于此类加密货币可以通过混淆交易各方的地址来保证用户的匿名性,因此可以更好地隐藏犯罪交易的踪迹。也有人认为它们是犯罪分子的洗钱工具。
2. 攻击过程
以图1为例,提供攻击过程的分解。
图1 攻击流程
步骤1:受害者访问一个被植入挖矿脚本的网站,该网站返回一个
代码响应内容。这部分代码用于检查访问者的主机环境,找到可用的CPU核心数,并计算有多少计算能力可用;
步骤2:收到响应后,从网站或外部服务器下载高度优化的恶意挖矿脚本(如.min.js),并包含分配的计算任务;
步骤3:验证网站源代码中的site-key(挖矿受益人ID)有效后,开始实例化挖矿任务,并使用本地资源进行哈希计算;
第四步:与矿池通信,通过代理服务器将计算结果提交给矿池。代理矿池还可以与进一步的通用矿池进行交互。
至此,第一个计算任务完成,接下来会重复步骤3的计算过程和步骤4的结果提交过程。在执行过程中,受害机器的CPU使用率飙升,甚至达到100%。直到挖矿网站关闭后,用户的计算机才会恢复正常。
3、检测方法
目前有多种攻击检测方法,每种方法都有自己的优点和缺点。本文介绍两种检测方法。
1 基于黑名单的检测方法
之前文章提到,这些恶意挖矿脚本必须嵌入到网站中才能发挥作用。然后我们就可以轻松获取调用这些恶意脚本的源代码,并总结不同恶意脚本的特征。
图2 Label调用挖矿脚本
如图2所示,这是调用挖矿脚本的标签内容,其中包含原始挖矿JS脚本文件的名称:.min.js、挖矿受益人的key:以及自定义的CPU使用阈值:0.7。然后通过查找特定的字符串“.”或者“.min.js”,就可以简单判断该网站是挖矿网站。表1展示了一些较为活跃的挖矿脚本及其对应的关键字符串信息。
表1 部分挖矿脚本对应的关键字符串
挖矿脚本
关键字符串
新的 \。 | /lib/.min.js
.pt/.js | \.用户\(地址
新 | /库/
/加载
.cz/矿工
CRLT\. | .pro/lib/crlt.js
新的 。 | .js
|
\。信息'
/[A-Za-z]+\" data-id='
ecart\.html\?bdata= | /amo\.js\"> | \.com'
……
……
通过将这些关键字符串组织到黑名单中,通过爬虫搜索找到这些关键字符串,就可以检测到恶意挖矿网站。目前很多浏览器插件,例如 ,都采用这种检测方式。此外,它是一个仍在维护和更新的开源项目。它不仅收集挖矿脚本中的关键字符串黑名单,还会持续收集与恶意挖矿事件相关的矿池、代理服务器、特定域名和IP。地址等黑名单可以帮助人们从更多维度分析和防范挖矿行为。
虽然这种方法可以快速验证网站是否为挖矿网站,但所有基于黑名单的检测方案都存在误报和漏报的情况。所有黑名单都需要手动维护且不可扩展,这种方法对于未知的挖矿脚本无能为力。
2 基于加密算法特性的检测方法
与比特币不同,类似加密货币的货币可以在普通个人电脑上开采。主要原因是用于挖掘此类货币的挖掘脚本大多是基于挖掘算法编写的。这类算法的核心是Hard型功能,它将挖矿过程锁定在内存衡量的硬件性能上,阻止多核并行处理发挥作用,降低硬件的计算优势,从而使得挖矿效率下降内存性能正相关,保证平等挖矿。它诞生的主要原因其实是为了抵制矿机。从这类算法的特点出发,我们还可以检测挖矿网站。
图3 算法的计算过程
图3给出了算法的计算流程,主要分为三个部分。
首先,临时寄存器初始化过程。暂存器是用于存储中间结果的大存储区域。根据自定义参数计算输入内容,将计算结果分为多个相同大小的块并进行AES加密计算。该过程循环直到临时寄存器已满。
然后是内存处理流程。该过程主要对第一步的结果进行了524,288次迭代读/写操作。每个操作包括 AES、XOR、MIL 和 ADD 操作。
最后,结果计算过程使用与第一步初始化相同的方法进行AES加密计算,然后进行一些哈希函数操作,例如BLAKE-256、-256和Skein-256。最终的计算结果就是算法的输出。 。
通过静态分析加密算法不同哈希函数的分布,跟踪分析循环计算时不同操作指令(异或、移位、)的数量,可以识别加密算法,进而检测挖矿网站,主要确定依据如下:
该算法一般包含 5 个加密原语,包括:AES、BLAKE-256、-256 和 Skein-256。通过分析控制流,可以判断恶意挖矿模块是否包含这些原语或原语变形函数。例如,BLAKE-256原语通常包含80个XOR、85个左偏移和32个右偏移指令。如果有一个函数 foo() 包含 86 个异或、85 个左偏移、33 个右偏移,那么根据自定义规范可以计算出 foo() 与 BLACK-256 的相似度为 3,然后我们可以得到该模块中包含的不同相似密码原语的数量分布。另外,恶意挖矿模块中的异或和移位指令的数量都有一定的数量。根据这两点就可以判断该模块是否含有算法,进而判断该网站是否为挖矿网站。
4. 总结
任何可以使用浏览器访问互联网的设备都可能容易受到攻击,包括不同操作系统的服务器、普通PC、笔记本电脑,甚至手机和平板电脑。因此,您必须时刻警惕此类攻击。作为网站运维人员,需要定期扫描网站并修复漏洞。作为普通互联网用户,最好安装浏览器拦截插件和安全防护软件。
参考:
[1].:深入研究驾车经过及其。
[2].博士.我的:一个帮助in-的节点。
[3]。 S、A、T 等。初探-为本[J]. 2018.
[4]..(2018)。
[5]。 。调整为威尔。
[6].. 问题:CPU 使用率高。
[7]., Max, Tuomo, 和 M..
哈希。
(2013 年 3 月)。