以太坊:冲突的公链!来自 P2P 协议的异形攻击漏洞

作者:慢雾安全团队

当我们谈论区块链时,总是离不开这些技术:分布式存储、P2P网络和共识机制,本次我们要谈的问题就是出现在P2P对等网络协议上。

异形攻击实际上是一个所有公链都可能面临的问题,我们用以太坊为例子说明。以太坊的P2P网络主要采用了Kademlia(简称Kad)算法实现,Kad是一种分布式哈希表(DHT)技术,使用该技术,可以实现在分布式环境下快速而又准确地路由、定位数据的问题。

什么是异形攻击?

首先,我们先定义一个同类链的概念,是指使用了和其它区块链相同或兼容协议的区块链系统。

异形攻击又称地址池污染,是指诱使同类链的节点互相侵入和污染的一种攻击手法,漏洞的主要原因是同类链系统在通信协议上没有对非同类节点做识别。

美SEC主席:Coinbase提供冲突服务并且缺乏有效风险监督:7月13日消息,彭博高级ETF分析师Eric Balchunas发推称,美国证券交易委员会(SEC)主席Gary Gensler今天在一次网络研讨会上,被问及Coinbase是否处于比特币ETF申请的中心,表示他无法对这些文件发表评论,但对加密货币交易所持相当负面的态度,称他们提供冲突服务并且缺乏有效风险监督。[2023/7/13 10:51:49]

以太坊异形攻击是指,以太坊同类链由于使用了兼容的握手协议,无法区分节点是否属于同个链,导致地址池互相污染,节点通信性能下降,最终造成节点阻塞的一种攻击方式。

1.正常的节点发现过程

美CFTC专员:FTX事件引发对投资者潜在利益冲突与尽职调查的担忧:金色财经报道,美国商品期货交易委员会(CFTC)专员Christy Goldsmith Romero表示,FTX事件引发了“严重的问题”,即风险资本家和基金经理在投资客户资金之前如何仔细审查他的业务。

Christy Goldsmith Romero质疑称:“是否因为加密行业的相互关联性及其可能存在潜在的利益冲突,导致投资者无法真正关注尽职调查?”(彭博社)[2023/1/21 11:24:53]

以太坊同类链节点间通过4个UDP通信协议来完成节点发现,消息结构如下:

ping:探测一个节点是否在线

也门政府军和胡塞武装持续冲突 两天导致96人死亡:当地时间16日,也门政府军与胡塞武装在也门中部的马里卜省继续交火。也门联合政府官员当天向媒体透露,过去48小时,双方的战斗造成96人死亡,其中包括36名政府军士兵和60名胡塞武装成员。政府军方面还表示,胡塞武装不断对马里卜省首府马里卜市发起激烈攻势,对该市的西北防线构成威胁,政府军则在一些关键地点进行阻击。马里卜省是也门主要的石油产区,也是也门政府在北部控制的唯一地区,以及以沙特为首的多国联军指挥部所在地。(央视新闻)[2021/4/16 20:28:34]

pingstruct{VersionuintFrom,TorpcEndpointExpirationuint64Restrlp.RawValue`rlp:"tail"`}

研究:美国党派冲突加剧将抬高比特币收益:金色财经报道,一项名为“美国党派冲突与加密货币市场”的新研究表明,加密货币可以作为一种对冲资产,以应对潜在的和经济不确定性。文章使用了党派冲突指数(PCI),这一指标主要考察不确定性是否会影响加密货币的收益和波动。该指数被用来衡量美国民主党和共和党之间的紧张关系,以及它对加密市场的影响。研究发现,当投资者发现动荡加剧时,他们会改变投资组合,进行相应的多元化投资,以避免潜在的财富损失。根据该论文的实验结果,PCI的变化率与加密收益率正相关,而与加密波动率的变化负相关,尤其是对于比特币。这意味着如果美国党派冲突指数上升,比特币的收益将会增加,比特币的波动性将降低。此外,PCI对其他主要加密货币波动性的影响远弱于对比特币。[2020/5/21]

pong:响应Ping命令

pongstruct{TorpcEndpointReplyTokbyteExpirationuint64Restrlp.RawValue`rlp:"tail"`}

findnode:查找与Target节点异或距离最近的其他节点

findnodestruct{TargetNodeIDExpirationuint64Restrlp.RawValue`rlp:"tail"`}

neighbors:响应FindNode命令,会返回一或多个节点

neighborsstruct{NodesrpcNodeExpirationuint64Restrlp.RawValue`rlp:"tail"`}

2.攻击过程

https://github.com/smartheye/EthStaticNodesTool/blob/master/MainNet/static-nodes.txt–第一步:发起恶意握手。

攻击者A模拟整个握手过程,主动发起ping操作,并利用协议的第4步neighbors,将返回的邻居表修改成我们收集到的以太坊节点地址,推送给受害节点B。由于单次通信只能推送16个地址,我们需要多次推送以达到攻击效果。

–第二步:污染地址池。

B收到大量A返回的邻居表,尝试跟这些节点握手,并将这些节点加入了自己的地址池。

–第三步:污染自动扩散。

让人意外的是,不同链的节点居然互相握手成功了,更为可怕的是,它们把各自地址池里已知的节点推送给了对方,导致更多的节点互相污染,最终扩散致整个网络。

漏洞危害

受异形攻击的同类链节点无法找到真正可用的节点,无法建立TCP数据同步通道,导致节点被攻击离线。

对于矿池或者出块节点,异形攻击可能导致广播延迟甚至失败,造成收益损失。

异形攻击可以使所有以太坊同类链地址池相互污染,导致节点通信效率全面下降,对整个区块链系统造成长久的伤害。

影响范围

我们对知名公链QuarkChain进行安全审计时发现,QuarkChain的节点在遭受异形攻击后,节点性能严重下降,外部节点需要很长时间才能与受害节点建立连接。QuarkChain团队随后修复了该问题。

理论上所有使用了以太坊discv4协议的区块链都可能受此漏洞影响,在发起测试后的一段时间,我们观测到EtherNode的监测节点也已经被污染了,污染的扩散速度似乎比想象中的要快。

也许,以太坊需要来一次清洗。

后记

1、此漏洞对以太坊是否有影响?

以太坊的节点数量远大于其它同类链节点,并且节点间已经建立了稳定的连接,影响不明显。但对于其它的同类链节点,却会受到来自以太坊节点的强势侵入,导致通信阻塞。

2、很多朋友关心除了以太坊之外,其它的公链是否有此问题,比如比特币和它的山寨币,比如使用了libp2p协议的公链,这些问题我们将在后续文章中披露!

十分感谢QuarkChain团队大力协助本次测试!

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

地球链

[0:15ms0-0:544ms