| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 区块链 -> 消逝的Coin:Stratum协议劫持技术 -> 正文阅读 |
|
[区块链]消逝的Coin:Stratum协议劫持技术 |
一、概述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 ? ? ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/18 10:28:03- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |