加密矿工,又称加密劫持者(cryptojackers),是一种利用受害者计算资源来挖掘加密货币从而牟利的恶意软件类型。与攻击者通常将加密货币用作支付手段不同,加密矿工利用加密货币的核心基础——区块链挖矿操作——来获取经济利益。
加密货币最初的设计目的是提供一种无国界、去中心化的货币转移方式,以摆脱传统银行体系。自比特币首次出现以来,许多其他加密货币和基于加密技术的代币陆续问世。每一种代币都基于某种主题或一组独特特性,使其有别于其他代币。例如,Monero(门罗币)旨在实现完全隐私、防止交易追踪,同时确保交易的完整性;而像狗狗币这类迷因币则更具情感价值而非实用价值。
随着攻击者在追求匿名获利的过程中不断探索,加密货币成为了一个极具吸引力的选择——它允许威胁行为者在几乎不被执法机构识别的情况下使用其加密资产。实现财务获利同时保持匿名的最直接方式,就是挖掘以隐私为导向的加密货币,这种方式能让攻击者立即获利,同时不暴露于受害者,并掩盖使用这些收益的任何交易。
加密矿工对世界的影响
自 2013 年以来,加密矿工便开始对世界造成影响,当时一家视频游戏公司据称利用客户的电脑挖掘比特币。十多年后的今天,这一威胁已扩展至惊人规模,加密矿工如今已成为全球网络犯罪的重要组成部分。
多年来,关于加密矿工的案例研究层出不穷:从 2017 年的 WannaMine 僵尸网络,到最近利用 Redis 发动攻击的 Migo 活动,再到各种面向云环境的变体和浏览器挖矿脚本。近年来,我们在 Akamai 也发现了一些加密挖矿僵尸网络,例如 Panchan 和 NoaBot。
攻击量级
随着时间推移,越来越多的攻击者将注意力转向了加密矿工。图 1 显示,2023 年全球恶意加密挖矿活动激增,而这一趋势在 2024 年仍在持续。尽管增长迅猛,分析报告并未指出加密矿工行为有重大变化。2024 年的典型加密矿工与十年前的版本表现非常相似:攻击手段吵闹、无明确目标,感染云资源和个人电脑来挖掘以隐私为导向的加密货币。
加密矿工所涉及的行业与领域分布
加密矿工影响着各种不同行业和领域。借助 Akamai 对互联网流量的独特视角,我们识别出了与公共加密挖矿矿池之间的通信行为。图 2 展示了加密挖矿流量在不同业务领域中的分布情况。
图 2:观察到的攻击在各个行业中的分布情况
高等教育机构是最常受到攻击的领域之一,这很可能是因为其拥有大量的计算资源,且常常无人监管。
在私营部门中,加密矿工更倾向于攻击云服务和主机托管等行业。这些目标为攻击者提供了极好的机会,使其能够获取大量计算资源,同时避免在受害者环境中产生副产品,如大量噪音、热量和电力消耗,从而降低被发现的风险。
这种类型的攻击对受害者而言可能在经济上造成毁灭性打击——2022 年,Sysdig 曾指出,加密矿工每赚取 1 美元,受害者大约要损失 53 美元(见图 3)。
生成式 AI 为加密矿工带来新的攻击面
我们预测的另一项将显著影响加密矿工格局的趋势是生成式 AI 的迅速兴起。由于 AI 计算高度依赖图形处理器(GPU),这类硬件正越来越频繁地出现在企业网络和服务器中。而许多加密货币的挖矿算法同样是为 GPU 设计的,因此 AI 行业所依赖的底层计算基础设施对加密矿工运营者极具吸引力。
我们很可能很快就会看到针对 AI 基础设施的攻击活动,不论是直接通过模型交互,还是通过模型训练过程(或二者皆有)。
攻击者动机
威胁参与者选择使用加密矿工主要有两个动因:
-
1. 财务利益 -
2. 隐私保护
财务动机
除国家支持的攻击者和黑客行动主义之外,大多数网络犯罪的动机都是为了金钱。加密矿工为攻击者提供了一种简单直接的变现方式,无需像勒索软件那样通过索要赎金,或出售敏感数据等将对网络的控制转化为金钱。这使得加密挖矿恶意软件成为威胁参与者眼中的有利可图的选择。
攻击者在发动攻击时也会考虑加密货币的市场价值及挖矿的分成比例。例如,如果攻击者一年只能赚到 1 美分,那显然不足以抵消被抓捕的风险。因此,攻击者的目标之一就是在“投入”与“收益”之间找到平衡点,这也有助于我们缩小其可能挖掘的币种范围。
在我们的研究中,我们发现有一个攻击者自 2018 年 6 月起似乎就一直活跃,每年平均收入约为 300 枚 XMR(门罗币)。按当前每枚 XMR 折合约 150 美元计算,其年收入大约为 45,000 美元,这与 2024 年美国一家无员工小企业的平均年收入相当。
隐私动机
隐私性是大多数加密货币的内在特性。它们采用加密算法,通过密钥对(私钥和公钥)来保障用户隐私和资产所有权,公钥则作为钱包地址使用。攻击者利用加密货币这种天然具有匿名性的特征,再加上一些专门用于隐藏交易金额、发送方和接收方地址的隐私算法,几乎可以完全隐匿其行为。
正如我们所提到的,当攻击者切换其僵尸网络去挖某种特定加密货币时,他们会权衡多种因素。其中一个关键点就是“隐私”与“利润”的取舍——有些收益更高的币种隐私性较低。
币种的隐私性通常从以下三个方面衡量:
-
1. 与区块链网络通信时是否使用隐私网络协议(如 Tor 或 I2P) -
2. 是否对交易信息(如钱包地址和金额)加密,防止追踪和余额泄露 -
3. 是否可以在支持隐私交易的加密货币交易平台上进行兑换
举例来说,比特币缺乏交易隐私,容易被监控,因此用户更容易被去匿名化。这种限制缩小了攻击者可以利用的加密货币范围。因此,只要仍存在可盈利且注重隐私的币种,攻击者的动机就不会减弱。
然而,如果隐私币变得无利可图,或挖矿机制发生改变(如切换至权益证明 PoS,详见下文),攻击者将无法再轻松通过资源密集型方式牟利,其动机也可能随之减弱。
对于一个有强烈动机的攻击者来说,如何执行一场加密挖矿攻击是一个必须考虑的问题,而理解挖矿的基本过程则是关键。下一节我们将概述挖矿流程,从而理解攻击者的关注点,这有助于我们开发更有效的追踪与检测技术。
加密货币基础知识
什么是加密货币?
加密货币是一种数字货币,利用密码学技术来确保交易安全,并控制新币(或称代币)的生成。与传统货币(即法币)不同,加密货币运行在去中心化的区块链网络上,即由一组节点维护的分布式账本系统。
区块链中的每一笔交易都被记录在一个“区块”中,并与前一个区块链接,形成一个不可篡改的链条。若未掌控网络大多数计算能力,几乎无法修改该链条。这种去中心化的特性消除了对银行等中介机构的依赖,提升了安全性与透明度。
加密货币系统的核心组件之一是“钱包”,它是一组加密秘钥的集合,允许用户通过区块链发送和接收资产。钱包通过特定格式的字符串地址表示,地址之间的交易会被公开记录在区块链上,但交易者身份在没有额外信息的情况下保持匿名。
更注重隐私的加密货币如 Monero(门罗币)或 Zcash 则进一步引入了高级加密技术,如环签名、隐匿地址和零知识证明等,以隐藏交易细节(包括发送方、接收方和金额),从而比传统金融系统提供更强的隐私与匿名性。
共识算法
要向区块链中添加新区块,网络必须就一个“共同认可的事实”达成一致。这就是“共识算法”的作用。这类算法使去中心化网络能够验证区块链交易,同时防止双重支付,保持账本的完整性,并实现无需信任的交易。
不同加密货币采用不同的共识机制,侧重点各有不同,例如安全性、可扩展性、能源效率等。
工作量证明(Proof-of-Work)
最著名的共识算法是 工作量证明(PoW),它被比特币及其他多个加密货币使用。在 PoW 中,矿工们竞争性地解决复杂数学难题,这一过程需要强大的计算能力。第一个找到答案的矿工获得向区块链添加新区块的权利,并会因此获得加密货币奖励。
这个过程虽然耗能巨大,但能提供强大的安全性,因为若想篡改区块链,攻击者需要控制超过50%的网络算力,这使得这类攻击几乎不可能实现。
权益证明(Proof-of-Stake, PoS)
另一种流行的共识算法是权益证明(PoS),被以太坊2.0和Cardano等加密货币采用。在PoS机制中,验证者是根据他们所持有并愿意抵押的币数量来选择生成新区块的。
这种方式比PoW更节能,因为它不需要大量的计算资源。然而,PoS假设在网络中拥有更多权益的人更有动力保持诚实行为。
加密矿工只使用PoW算法(或“容量证明”(Proof-of-Capacity),本文未涉及),因为他们的攻击手段基于资源劫持。因此,从此处开始,提及“挖矿”时均指基于PoW的场景。
抗ASIC算法
用于计算共识算法的硬件有多种类型。中央处理器(CPU)是一种通用集成电路(IC),可以轻松计算任何共识算法,但有时效率并不高。因此,一些算法被设计为适用于图形处理器(GPU),因为GPU在处理复杂运算方面比CPU更高效。
矿工使用的另一类硬件是专用集成电路(ASIC)和现场可编程门阵列(FPGA),这类处理器专为执行特定任务而优化。它们在处理诸如计算SHA1哈希算法等确定性任务方面表现出色,但在面临高内存需求或运行时分支数量过多的情况下(即算法依赖于前一次迭代的输出结果),表现就会不佳。
大多数加密货币依赖去中心化来确保区块链的安全与可靠。如果一个网络通过控制大多数节点或拥有主要算力而变得中心化,攻击者就可能发动51%攻击。为了防止这种情况,许多币种引入了特殊的哈希算法,使ASIC的设计和生产在经济上变得不可行。
这些算法基于以下实践:使用通用处理器来执行对内存要求高、结构复杂的算法,并充分利用现代CPU的优化特性。换句话说,这类算法使用大量内存地址空间并尽可能利用CPU的各种现代功能,从而使专用ASIC的开发毫无性价比。实质上,如果有人试图为这类算法设计ASIC,最终得到的将只是一个功能完整的CPU。
挖矿过程
挖矿过程就像买彩票一样。每个参与者都需要完成一项任务,其中包括区块信息和随机数。矿工需要找到一个符合网络的目标难度的随机数,从统计学上讲,可以在特定时间段内做到这一点。这段时间被称为目标时间,通过为未来区块设置难度 (d) 来实现,这可确保挖矿率稳定并发生在目标时间段内。
难度通常表示需要计算多少个哈希值才能找到符合目标 (t) 值的有效哈希值。目标值表示所有有效的哈希值的上确界。门罗币的难度计算方法是用可能的哈希值数量除以目标值。
在为网络设定目标时间来控制区块链的增长率后,就可以得出 N 个区块的每区块时间结果平均值,并得出哈希率。利用哈希率,可以设置下一个难度;对于某些加密货币,每个区块会相对于前面 N 个区块更改难度,而其他加密货币则每隔一定数量的区块更改一次难度。
交易隐私
比特币是首个获得广泛使用的加密货币,它使用区块链技术来记录网络交易。这些交易以明文形式存储,可供任何人通过区块链资源管理器服务公开访问(如果愿意,也可以手动访问)。与比特币相关的匿名性有点容易令人误解——虽然数字钱包的使用确实是匿名的,但与第三方的互动却不是匿名的。
举个例子,如果有人想用法定货币(如美元)兑换比特币,就必须公开自己的钱包,而这会将身份与钱包联系起来,从而导致去匿名化。即便试图通过转化型交易来混淆身份,最终也会获得相同的结果,因为这些交易在通过交易平台离开网络之前都能够被追踪到。在将资金存入网络或者从网络提取资金的过程中,常常会使用匿名化。
在一些合法的环境中(例如减少对交易知识的滥用),需要保留隐私,因而产生了以隐私为导向的加密货币。不过,隐私也可能被滥用来掩盖犯罪活动,这使得以隐私为导向的加密货币成为加密挖矿程序和其他恶意攻击者的共同需求。
如今,以隐私为导向的加密货币可以隐藏发送方和接收方的地址以及他们之间的交易金额。这种等级的隐私导致无法在网络上追踪涉及非法所得资金的交易。
加密货币候选
通过分析操作加密挖矿程序的网络罪犯的能力和需求,我们创建了符合其要求的加密货币的清单。首先,加密挖矿程序通常会跨不同的架构大规模运行,这使跨平台挖矿实施变得至关重要。这种多样性可能涉及到 x86、AMD64、ARM 和其他 CPU 架构。
在许多情况下,受害者并没有功能强大的 GPU,也没有配备 ASIC 或 FPGA 的矿机。因此,关注点转向了抗 ASIC 算法,这种算法旨在将挖矿限制在常见的传统平台上,如家用电脑和类似设备。
加密挖矿程序依赖的另一个关键方面是加密货币网络的隐私。由于加密挖矿程序在大多数国家/地区都被视为非法软件,因此,恶意攻击者在试图洗钱时必须隐藏其行踪。
考虑到这些因素,我们可以强调选择加密挖矿程序的加密货币的必要条件:
-
• 跨平台架构 -
• 抗 ASIC 挖矿算法 -
• 可持续的高利润 -
• 以隐私为导向的加密货币,支持不可追踪的交易 -
• 轻量级挖矿算法实施
表 1 列出了根据上述假设得出的最相关加密货币的简短清单。此清单主要关注抗 ASIC 和以隐私为导向的加密货币,以及目前已应用这些加密货币的加密货币交易平台的数量。(有关潜在加密挖矿程序加密货币的完整清单,请参见 附录 A。)
表 1 根据撰写本文时加密货币的盈利能力进行了排序。在这项研究中,我们将重点关注加密挖矿程序更常用的加密货币,并对自动散布型 (ITW) 样本进行分析。为了根据当前市场价值和奖励率重新生成加密货币候选表,我们在 Akamai GitHub 存储库中发布了自己的代码。
在研究了攻击者的动机、加密货币区块链的基本原理及其挖矿过程后,我们创建了这个候选货币表。现在,我们将更深入地研究以下三种加密货币以及合法矿工和恶意加密挖矿程序都能用来获取加密货币的挖矿拓扑结构。
-
• 门罗币,以被攻击者使用而闻名 -
• Zephyr,似乎前景不错 -
• Safex,我们认为可能会被攻击者忽略
门罗币
众所周知,门罗币是加密挖矿程序最常使用的加密货币。它是一种以隐私为导向的加密货币,基于抗 ASIC 的 RandomX 算法,这使它成为加密挖矿程序的理想选择。门罗币使用先进的加密算法来实施前沿隐私技术,例如环签名、多重非对称密钥、防弹、RingCT 等。有关这些隐私技术和算法的更多信息,请参见 Moneropedia。
门罗币采用了 RingCT 算法,将大量无效的输入交易与实际交易结合来隐藏交易使用的输入,从而隐藏转帐金额。它还使用多种技术对数值进行签名,从而仅允许交易参与者读取这些数值。发送方和接收方的身份都将受到加密保护,这意味着它通过发送方、接收方和金额这三个主要因素来实施隐私保护。
为了使 RandomX(以及门罗币)能够抗 ASIC,它定义了自己的指令集和运行指令集的虚拟机 (VM)。与传统的虚拟机不同,该虚拟机并不是一个单独的操作系统,而是一种将自定义指令集转换为底层硬件的解释程序。
我们专注于研究门罗币,而我们用来分析门罗币网络、程序和区块链的方法也适用于其他任何加密货币。
Zephyr
Zephyr 自身的定位是一个专注于隐私的协议,旨在彻底改变 稳定币 行业。Zephyr 以门罗币的强有力的隐私特性为基础,并使用 RandomX PoW 挖矿算法,将其加密货币分为以下四种代币,从而引入一个独特的生态系统:ZEPH、ZSD、ZRS 和 ZYS(图4)。
在这个框架中,ZEPH 是充当参考货币的可挖矿货币。ZRS 为对应的稳定币 ZSD 提供储备支持。2024 年,Zephyr 推出了 ZYS,这是一种收益机制,旨在从流通的 ZYS 代币增长中获得收益。
这意味着,相较于 ZSD,ZYS 的价值会持续增长,为用户提供与稳定币表现相关的潜在有盈利的投资。攻击者将使用可挖矿的 ZEPH 代币,同时考虑其他代币的趋势,从而确立攻击目标。
目前,它几乎是可获收益最少的可挖矿货币,加密挖矿程序也最不愿意使用此加密货币。尽管如此,我们还是找到了对 Zephyr 进行挖矿的恶意软件样本。我们可以推测出攻击者将其用于攻击活动中的原因:这可能是为了获得更多收益 (7.896 ZEPH),找到区块或躲避门罗币专用检测引擎。
SafeX
Safex 是一个区块链平台,旨在建立一个私有的、去中心化的市场,用户可以在这里买卖产品,消除了中间商环节。它使用两大加密货币:Safex Token (SFT) 和 Safex Cash (SFX)。Safex 将隐私放在首位,使用环签名和隐身地址,确保交易不可追踪并保护用户身份,而这一切都基于门罗币。
目前,SafeX 币似乎是收益非常高的挖矿币。这对攻击者来说极具吸引力,但除了配置文件中的几个钱包外,我们还没有发现活跃的加密挖矿活动。
通过使用我们创建的专用工具映射 Safex 网络,可以发现该网络在门罗币网络面前就显得微不足道了。我们可以找到 298 个节点,但只有 6 个节点是公开可用的。
虽然此加密货币在挖矿方面似乎收益不错,但攻击者目前并未使用它。我们推测,攻击者并未发现 SafeX 的盈利能力,并且在不久之后,就会出现滥用它的恶意活动。
挖矿拓扑结构
矿工可以使用几种拓扑结构设置挖矿网络。虽然每种设置各有自己的优缺点,但它们总是能够更好地权衡盈利能力与安全性。一些拓扑结构使用去中心化的架构来支持网络并确保其可持续发展。其他拓扑结构侧重于优化哈希率,提高收集区块奖励的几率。
各种拓扑结构的组成部分都基本相同。它们都使用 IP、I2P、Tor 等网络协议、用于点对点通信的 Levin 等应用协议以及通过 JSON-RPC 实施的 STRATUM 协议来进行交互。Stratum 协议是使用简单的 JSON 结构化作业(包含计算共识哈希算法所需的所有数据)来操作矿工群的加密货币挖矿标准。
案例研究
在针对不同的挖矿拓扑结构的案例研究中,我们将重点关注门罗币。典型的门罗币挖矿拓扑结构由表 2 所示的某个组件构成。
用于挖矿操作的拓扑结构
后面的章节将详细介绍可用于挖矿操作的各种拓扑结构,包括:
-
• 独立 -
• 矿池 -
• P2Pool -
• Nicehash -
• 代理
无论是出于合法目的还是恶意目的,这些拓扑结构都在搜寻和检测加密挖矿程序方面发挥了至关重要的作用。
独立
在独立挖矿中,矿工直接使用自己的节点或可信节点(图 5)。虽然独立挖矿增加了攻击者在发现区块时的潜在收益,但也大大降低了他们获得奖励的几率。如果攻击者的僵尸网络足够大,进行独立挖矿可能是值得的。但如果一个攻击者控制了大量的哈希率,则会给网络带来严重风险。
我们还没有遇到针对独立挖矿配置的加密货币挖矿恶意软件。这可能是因为独立挖矿并不总能让攻击者获得收益,因此,从长远来看,其他挖矿策略可能会创造更多价值。也可能是因为维护节点的运营成本非常高,而且拥有一个节点可能会降低攻击者的匿名性。
矿池
与独立挖矿不同,矿池挖矿可实现与其他矿工的合作,从而提高找到新区块的几率,毕竟这就是一个统计游戏。当多个矿工合作解决区块链中的下一个区块时,他们的哈希率将合并,这使得他们在网络中以单个矿工的身份出现(图 6)。
这个矿工现在被称为 矿池 ,矿池通常由一个实体管理。只要发现新区块,就会根据参与矿工的贡献来分配收益并计为股份。因此,矿池将充当多个矿工之间的协调者,从而提高他们挖掘区块和获得收益的统计几率。
一些矿池要求支付手续费,并且它们都制定了一个支付模式来定义收益的分配方式,如 根据过去的 N 个股份来支付收益 (PPLNS)。许多矿池不要求矿工提供身份验证或身份证明;通常是用于身份验证和付款的钱包地址。
能够广泛覆盖各种加密货币的矿池数不胜数。其中一些矿池根据一些共有特性(如隐私)收集多种加密货币,并提供一种简便的方法,以相同的方式使用同一矿池操作多个矿机。其他一些矿池提供多货币挖矿功能,即同一台采矿设备根据收益同时挖掘多种加密货币,类似于 nicehash 操作。
表 3 列出了我们前面讨论过的三种加密挖矿程序候选货币的知名矿池列表(部分)。
表 3:适用于门罗币、Zephyr 和 SafeX 的知名矿池
P2Pool
门罗币的 P2Pool 是一个去中心化矿池,它解决了传统矿池中经常出现的中心化问题。P2Pool 不依赖中央机构来管理挖矿操作和分配奖励,而是会创建一个点对点网络以便矿工直接协作(图 7)。这种方法与门罗币的隐私和去中心化承诺相一致,提高了挖矿过程中的安全性和公平性。
在 P2Pool 系统中,每个矿工运行一个完整的门罗币节点,为网络贡献算力,同时保持对自己的挖矿活动的控制。奖励会根据每个矿工的贡献按比例分配,绝不会降低门罗币的强有力的隐私特性。
通过消除集中化控制,P2Pool 降低了单点故障和潜在审查等风险,并在门罗币生态系统中为矿工建立了一个更具韧性和民主化的环境。
尽管使用 P2Pool 拓扑结构可获得很多好处(包括无需支付费用和更高的区块发现率),但我们还没有遇到在这种拓扑结构中应用的恶意样本。从攻击者的角度来看,稳定节点的运行会降低他们的匿名性,从而给他们带来不利。
Nicehash
Nicehash 是一项计算资源交易服务。矿工可以出售其采矿设备的哈希率,而无需指定单一算法,并可以获得固定价格。它消除了挖矿的统计因素和运气因素,取而代之的是减少但不变的收入。
这种挖矿方式类似于矿池挖矿,即挖矿任务同时结合使用多种算法,这意味着矿工将同时通过不同的算法为多个买家挖矿。
由于 Nicehash 的 KYC(充分了解您的客户)要求对卖方和买方进行身份验证,因此发现与 Nicehash 关联的加密挖矿程序的几率很小。他们可能使用伪造或盗用的身份来建立关联,但这可能不会持久。
代理
代理是一种众所周知的网络组件,用于在传输层或应用层路由连接。门罗币挖矿以及常见挖矿都使用 Stratum 协议来交付挖矿任务——与任何应用协议一样,如果需要,可以使用代理或简单的路由表规则将它重定向到另一个服务器。
另外,挖矿代理服务器也可以直接为矿工服务,从矿池或节点拆分挖矿任务,并将其分配给关联的矿工,就像门罗币软件 XMRig 代理一样,充当中间件来分配任务(图 8)。
我们发现攻击者使用了这两种类型,区别在于,使用一种类型是为了隐藏矿池地址,而使用另一种类型是为了隐藏矿池和使用的钱包。
结论
虽然加密货币常用于网络犯罪活动中,但通常只是作为一种付款方式。而加密挖矿恶意软件则从基础入手,利用加密货币的挖矿过程作为牟利的主要手段。
攻击者可以利用各种挖矿拓扑结构来加强隐私保护,提高躲避常用检测方法的能力。例如,避免在恶意软件样本中包含钱包地址,这样有助于降低静态分析引擎在识别钱包地址模式时的效力。这一策略也使得更难将单个样本与规模更大的活动关联起来,从而确保攻击行为的匿名性。
通过创建加密挖矿程序候选货币表,我们可以预测攻击者将选择的加密货币,这些货币可能会在他们的加密挖矿程序僵尸网络中使用。此洞察有助于我们发现未被注意到的活动,并将我们的检测方法侧重于一系列特定的加密挖矿程序候选货币。
录 A:潜在的加密挖矿程序货币
声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。
原文始发于微信公众号(白帽子左一):加密挖矿程序深度解析:内部构成与研究
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论