冲突的公链!来自 P2P 协议的异形攻击漏洞
异形攻击实际上是一个所有公链都可能面临的问题,我们用以太坊为例子说明。以太坊的 P2P 网络主要采用了 Kademlia (简称 Kad ) 算法实现,Kad 是一种分布式哈希表( DHT )技术,使用该技术,可以实现在分布式环境下快速而又准确地路由、定位数据的问题。 异形攻击又称地址池污染,是指诱使同类链的节点互相侵入和污染的一种攻击手法,漏洞的主要原因是同类链系统在通信协议上没有对非同类节点做识别。 以太坊异形攻击是指,以太坊同类链(具体的说是使用以太坊 P2P discv4 节点发现协议的公链,包括以太坊、以太经典)由于使用了兼容的握手协议,无法区分节点是否属于同个链,导致地址池互相污染,节点通信性能下降,最终造成节点阻塞的一种攻击方式。 1. 正常的节点发现过程 以太坊同类链节点间通过 4 个 UDP 通信协议来完成节点发现,消息结构如下: [1] ping: 探测一个节点是否在线 2. 攻击过程 准备工作:收集以太坊节点地址 我们找到了社区制作的一个地址库:
https://github.com/smartheye/EthStaticNodesTool/blob/master/MainNet/static-nodes.txt 第一步:发起恶意握手。 攻击者 A 模拟整个握手过程,主动发起 ping 操作,并利用协议的第 4 步 neighbors,将返回的邻居表修改成我们收集到的以太坊节点地址,推送给受害节点 B(B 是一个以太坊同类链节点)。由于单次通信只能推送 16 个地址,我们需要多次推送以达到攻击效果。 第二步:污染地址池。 B 收到大量 A 返回的邻居表,尝试跟这些节点握手,并将这些节点加入了自己的地址池(俗称 K 桶)。 第三步:污染自动扩散。 让人意外的是,不同链的节点居然互相握手成功了,更为可怕的是,它们把各自地址池里已知的节点推送给了对方,导致更多的节点互相污染,最终扩散致整个网络。 理论上所有使用了以太坊 discv4 协议的区块链都可能受此漏洞影响,在发起测试后的一段时间,我们观测到 EtherNode 的监测节点也已经被污染了,污染的扩散速度似乎比想象中的要快。 后记 1、 此漏洞对以太坊是否有影响?
以太坊的节点数量远大于其它同类链节点,并且节点间已经建立了稳定的连接,影响不明显。但对于其它的同类链节点,却会受到来自以太坊节点的强势侵入,导致通信阻塞。 2、 很多朋友关心除了以太坊之外,其它的公链是否有此问题,比如比特币和它的山寨币,比如使用了 libp2p 协议的公链,这些问题我们将在后续文章中披露! 来源:慢雾安全团队 编者注:本文作了不改变原意的删减。什么是异形攻击?
漏洞危害
影响范围
免责声明:
1.本文内容综合整理自互联网,观点仅代表作者本人,不代表本站立场。
2.资讯内容不构成投资建议,投资者应独立决策并自行承担风险。
- 贝佐斯最后一封股东信:宇宙希望你成为普通人,千万别让它成为现实2021-04-19 17:02
- Props,让互联网与区块链无缝对接的「中间件」2021-04-19 17:02
- Coinbase高管到底卖了多少股票?2021-04-19 16:03
- 通往未来之路:下一代互联网与Metaverse2021-04-19 16:03
- 央行前行长周小川谈比特币:要提醒,要小心2021-04-19 15:03
- 链上新知 |电子图片卖出7000万美金,让马斯克都来站台的NFT究竟是什么?2021-04-19 15:02
- Crypto VC,LP怎么投?2021-04-19 13:03
- 周末比特币融资利率跌至-0.03%低点,为7个月以来最低水平2021-04-19 11:02