加密电子货币的BGP劫持

概述

戴尔数据威胁安全研究小组(CTU)在2014年二月到五月持续发现了针对亚马逊、DigitalOcean、OVH、和一些大的主机运营公司部分网络的反复劫持。CTU的研究员们总共记录了51次来自19家不同的网络服务提供商所遭受的攻击。这些劫持将“矿工”的连接重定向到劫持所控制的“采矿池”下,并收集这些“矿工”的矿石,在这4个多月的时间里大概获利83000美元

 

采矿原理

在虚拟货币中,“采矿”是一种在公共的块总额进行的链式交易的行为(也称块链)。当一次事物被启动,他们就被以提交的日期和时间,交易中隐含的“费用”大小,来按优先级排入队列中。从队列的最顶端开始,矿工们通过加密传输尝试着“挖到一块矿石,”块链则通过限定继承淘汰一部分矿工来满足特定的公式,与此同时,它向网络应答它的计算结果有效。挖矿是一类活动,矿池则是命令要挖哪一种矿。

每次矿工发现一块矿石,则新的比特币又会被创造出来。而新创造出来的比特币数量是变化的。一旦被发现,25枚新的比特币又立即组成一块新的矿。那些发现矿石的矿工们将会被授予一定百分比的“矿石奖励”。基数为新制造出来的25枚比特比加上在该块矿石上所发生的交易额总和。而百分比则取决于矿工对这次发现所做出的贡献大小。这个过程可以让矿工们通过使用自身计算机资源通过计算核实其他玩家的交易来挣取一定的金钱。

 

地址

地址则是可以接收资金的账户,加密电子货币中,这些地址就是由一些数字和字母组成的和“私钥”相关的字符串。这是私钥首次被使用来构成地址,从而使得用户们可以转让和“消费”这些货币。用户接收货币时可以不使用私钥,但是花费时则必须确认。

 

底层

矿工们通过与矿池端服务器联系来开始采矿,矿池向矿工发送消息,安排每个矿工工作,并相应的付予报酬。矿池服务器可以发送工作命令来使矿工们执行各式各样的操作,比如为了负载平衡而断线重连。矿工们一般通过底层协议来连接网络,这个协议是基于JSON TCP的连接。一旦TCP连接建立,JSON则在矿工和矿池服务器之间传递信息,使得信息传输能更容易的被监控。

 

劫持发现

在2014.3.22 ,一个叫做“caution”的用户在bitcointalk.org上发布了一条消息称在挖矿系统连接到wafflepool.com矿池的时候发现了一些可疑的行为。(见图一)

1

图一. Bitcointalk.org 论坛

论坛中的消息说明了这次可疑行为(来自:bitcointalk.org)

一些bitcointalk的用户和其它虚拟货币论坛的用户也发现了相似的情况—挖矿系统神秘的重定向到一个以底层协议应答的未知ip地址。一旦连接到这个ip地址,矿工就会持续收到工作但挖矿却不再会有矿石奖励。劫持通过重定向一些有名的矿池的合法挖矿路径到恶意伪装的矿池从而利用矿工们的计算能力:(利用过程如下)

 

  1. 矿工连接到合法池请求任务。
  2. 劫持者开始攻击。
  3. 当矿工尝试连接到合法池时,一个新的BGP定向他们的路径到一个矿池,然后通过劫持来维持这种定向。
  4. 这个恶意池向每个被重定向的矿工发送一个客户端。然后重连接,指示他们连接到第二个劫持者的恶意池。通过指示矿工们连接到这第二个恶意池,劫持者则可以过滤已经被劫持的路径以保证它不会被第二次劫持。
  5. 劫持者停止攻击,被重定向的矿工们则持续收到任务和工作,但却没有奖励。没被重定向的则不受影响。
  6. 劫持者通过不断重复这个过程,来保证这个活动能顺利的持续几个月之久。

 

BGP基本原理

Border Gateway Protocol(BGP)是一种外部的路由协议来使得工作网络连接到英特网。工作网通过BGP互联来知晓其它工作网络的存在。和一般的网络路由协议能自动开始互联不同, BGP协议的两端连接(被称作”peers”)都需要人工控制。这种要求保证了恶意的网络无法劫持到通讯路径,除非有人从合法的网络中进行干扰。

图2,3,4展示了劫持者是如何利用假的BGP广播来将通讯路径重定向到他们的服务器的。

2

图二.一个恶意的路由广播过程

 

因为AS3正在和AS4进行通讯,所以也能收到恶意广播。因为AS3的广播比AS2的更为特别,所以BGP将其广播优先顺序排到了AS2之前。(来自:戴尔安全工程)

3

图三.被劫持前到合法矿池的路径

4

图四.被劫持后到非法池的路线

 

劫持者的BGP公告时线

尽管公共报告里称劫持开始于 2014.3.22,但CTU对BGP历史线路数据调查表名劫持实际开始于2月3日。研究员记录下了51次来自19家不同网络服务提供商遭受的攻击,包括亚马逊、Digital Ocean、OVH和一些大的主机运营公司。附录A里面包含了完整的劫持事件列表。

数据显示劫持者在二月发送非法广播持续了将近一周的时间。这个行为似乎在当时并没有被加密虚拟货币社区所注意,这也可能说明最初的劫持并没有成功。

CTU的调查员们联系到一个因为被劫持而好几周都没获利的矿工。图5绘制了在被劫持期间他的采矿活动的产出。CTU研究员们观察到他从普通矿池的收益和劫持事件有一定的关系。攻击者劫持矿池,大量虚拟货币都会受到影响。因为协议的缘故,想要识别攻击者到底是哪一个几乎是不可能的事,但CTU的研究员们通过映射这些活动从而定位到了一个地址。

5

图五.一个被劫持的矿工的狗币(一种山寨的比特币)收入

矿工没有马上注意到在三月末所发生的事,造成了理论收入与实际收入上的巨大差距。劫持在四月份被捕获的越来越频繁(来自:戴尔安全工程)

4月11号,该矿工通过增加防火墙规则来阻止到劫持者的采矿服务器路径,从而防御了劫持。他的收入也逐渐恢复了正常。尽管丢失的8000个狗币折合成美元只是一笔很小的数目,但劫持成百上千的这种小矿工收入还是相当可观的。

 

估算劫持者的收入

劫持者在4个多月里获得了大概83000$。图六中的表绘制出了劫持者从五个货币地址的大概收入。因为3月29到4月11号的数据缺失,导致该表并不完整。并且也无法证明其它货币地址是否存在,只是表名其它货币同样是在被挖掘。

6

图六.被劫持者所控制的货币地址的大致收入

3月29到4月11号的数据暂缺。(来自:戴尔安全工程)

 

狗币,HoboNickels和世界币

通过中心权力机构和客户端的交互过程,这三种货币都很容易从数据库中推算。相关的劫持事件更加清晰的反映出了这些问题池的所在,而这些池的操作人刚好就是劫持者。

 

比特币

相比之下,要从使用对等协议的分散式P2Pool比特币池中寻找到比特币的流向地址却是一个不小的挑战。CTU研究员们分别检查了所有的池服务器地址并比较了他们的地址。这些交易中匹配劫持事件的指向了一个地址,图6中已经绘制出来。

 

来源

所有的恶意BGP广播都被通过单独的路由器跟踪到一个位于加拿大的ISP,该劫持者很可能满足下列条件之一:

*这个ISP中的一个恶意的员工

*这个ISP中拥有没被更改的路由器密码的恶意前任员工

*一个蓄意的黑客

 

防御路由劫持

这个世界上每天估计有260w$的采矿金额。每个网络的管理员都需要密切注意这些可能存在的风险,如BGP劫持事件。ISP们应该选择性的加入公共资源设施密钥(RPKI)服务,以加密手段来保证属于某个ISP的IP前缀只能来自指定的ASNs.

 

从货币的角度来看,对矿池服务器来说矿工们最简单的选择就是使用SSL协议。SSL可以防止系统被重定向到一个另外的服务器,甚至IP地址相同也一样。矿工们首先需要进行服务器证书确认。这个确认保证了当连接到某域名时该矿池发出的证书是否有效,该连接是否被批准使用,这样即使域名地址更改也毫无影响。

 

结论

BGP对等互联要求两方网络都要进行手动的确认,以便知晓另外一方。这适当的要求人工互动使得BGP互联理论上很安全,但ISP们却无理由的不与任何人进行互动。那些劫持和矿工重定向本来因为缺少与路由器的对等广播确认是很难发生的。虽然被劫持的可能性还存在,但也会大大减少。

 

附加信息

 

Litke, Pat and Stewart, Joe. “虚拟货币最佳培养实践.” 戴尔安全工程 2014.1.27 http://www.secureworks.com/resources/articles/featured_articles/enterprise-best-practices-for-cryptocurrency-adoption

Litke, Pat; Stewart, Joe; and Small, Ben. “恶意盗取虚拟货币软件一览.” 戴尔安全工程2014.2.26

http://www.secureworks.com/cyber-threat-intelligence/threats/cryptocurrency-stealing-malware-landscape/

 

【via@91ri.org团队】