消逝的Coin:Stratum协议劫持技术

消逝的Coin:Stratum协议劫持技术,第1张

一、概述

Blackhat USA 2021落下帷幕,Blackhat又称黑帽大会,是安全行业工业界的顶级会议之一。笔者关注到今年BlackHat USA中也出现了区块链安全相关议题,如腾讯玄武实验室发布的议题——《How I Used a JSON Deserialization 0day to Steal Your Money on the Blockchain》。

而在今年5月份举行的Blackhat Asia会议中,众信星空科技CTO IceCat & 兰州大学Dslab实验室发布了区块链安全相关的研究议题——《Disappeared Coins: Steal Hashrate in Stratum Secretly》。本文我们给大家带来该议题的内容介绍,并对挖矿协议Stratum协议的攻击场景抛砖引玉。

二、什么是Stratum协议?

早在“远古时期”,加密货币矿工进行挖矿的模式主要为SOLO挖矿,顾名思义是用个人单机进行挖矿,这个时期的矿工多为“狂热”的加密货币技术爱好者。实际上,在公链发展早期,全网的算力和难度值都相对较低,因此SOLO挖矿是可行的。然而随着全网算力和难度值的提高,单机挖矿模式已经无法出块获得奖励。这时候,出现了矿池的概念,矿池可以将矿工们联合起来,通过聚集算力来提升出块的几率,最终挖到的块又会根据矿池中各矿工算力占比进行奖励分配。而Stratum协议,是为矿工和矿池进行通信所设计的网络协议,详细的通信过程如下:

三、我们的工作

目前主流矿池在用的stratum协议都是V1版本(见下图),因此我们的研究建立在Stratum V1版本,值得注意的是:该版本下网络通信为明文。

熟悉网络安全的工程师都知道,明文通信的协议理论都可能遭受“中间人攻击”。而我们的议题就是探讨Stratum V1协议的中间人攻击实施的可能性,并发布具体的攻击手法和复现过程。

如果无法理解该研究的意义,您可以想象在ISP劫持的场景下,劫持者可以基于这种攻击劫持区域内的矿工通信,假设每天只抽取该区域算力的1%,收益都是十分惊人的。相对应的,这些收益当然来自于矿工们的损失。

四、Stratum劫持技术

我们提出了两种形式的攻击方法:job injection与time segment。

(1)Job Injection(任务注入)

简要概括就是攻击者充当中间人,连接正常矿池和恶意矿池,利用协议将恶意矿池的任务按照一定比例插入到正常任务队列中:

不过,Stratum协议中存在Extranonce字段,直接劫持通信暴力插入会导致该字段与矿机内存中不一致,因此这里需要一些trick进行技术实现。

具体时序图如下:

(2)Time Segment(时间分片)

时间分片,顾名思义就是中间人攻击者劫持通信后,让矿工在不同时间周期内为不同的矿池挖矿。

利用断线重连机制,攻击者在一个时间分片末尾断开连接,然后等待矿工重连,重连后将其分配到恶意矿池进行挖矿,从而达到窃取矿工算力的目的。

相关攻击POC可以通过:https://www.youtube.com/watch?v=ZvpdOj6U0vM 进行了解。对议题感兴趣的同学可以查看议题slides[1]进行深入了解。

References

[1]https://www.blackhat.com/asia-21/briefings/schedule/#disappeared-coins-steal-hashrate-in-stratum-secretly-22266

About us

众信星空科技由一支在安全、区块链行业深耕多年的工程师团队组成。我们专注于链上数据分析与溯源技术,为多个企业、金融行业、政府部门提供链上数据技术支持,以推动区块链行业合规发展。

https://mp.weixin.qq.com/s/JIQGGp3KV04U-zaiDoQSAw


 

 

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/1498800.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-25
下一篇 2022-06-25

发表评论

登录后才能评论

评论列表(0条)

保存