主页 > imtokenapp下载 > 冲突的公链!来自P2P协议的Alien Attack漏洞

冲突的公链!来自P2P协议的Alien Attack漏洞

imtokenapp下载 2023-01-17 08:27:47

*本文涉及的相关漏洞已反馈厂商并已修复。 本文仅供技术研究和讨论,严禁用于非法用途,否则一切后果自行承担。

1.png

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

外星人攻击其实是所有公链都可能面临的问题。 我们以以太坊为例进行说明。 以太坊的P2P网络主要由Kademlia(简称Kad)算法实现。 Kad是一种分布式哈希表(DHT)技术。 使用这种技术,可以在分布式环境中快速准确地路由和定位数据。 问题。

什么是外星人攻击?

首先,我们先定义同构链的概念,同构链是指与其他区块链使用相同或兼容协议的区块链系统。

外星人攻击以太坊的节点相当于什么,又称地址池污染,是指诱导同链节点相互入侵污染的一种攻击方式。 造成漏洞的主要原因是同链系统在通信协议中不识别非相似节点。

Alien对以太坊的攻击意味着类似的以太坊链(具体是使用以太坊P2P discv4节点发现协议的公链,包括以太坊和以太坊经典)由于使用了兼容的握手协议,无法区分节点是否属于同一条链。 一种导致地址池相互污染,降低节点通信性能,最终导致节点阻塞的攻击方式。

1、正常的节点发现过程

以太坊同链节点间使用四种UDP通信协议完成节点发现。 消息结构如下:

[1]ping:检测节点是否在线

1.png

[2]pong:响应Ping命令

2.png

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

3.png

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

4.png

2.攻击过程

准备工作:收集以太坊节点地址

我们找到了一个社区制作的地址库:

第一步:发起恶意握手

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

第二步:污染地址池

B收到A返回的大量邻居列表,试图与这些节点握手,并将这些节点加入到自己的地址池中(俗称K桶)。

第三步:污染自动扩散

令人惊讶的是,不同链的节点成功握手。 更可怕的是,他们将各自地址池中的已知节点相互推送,导致更多节点相互污染,最终波及全网。 .

漏洞危害

1、被外星人攻击的同链节点找不到真正可用的节点,无法建立TCP数据同步通道,导致节点被攻击下线。

2. 对于矿池或出块节点,外来攻击可能会导致广播延迟甚至失败,从而造成收益损失。

3、外星人攻击可以污染以太坊所有同类链的地址池,导致节点通信效率全面下降以太坊的节点相当于什么,对整个区块链系统造成长期破坏。

势力范围

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

理论上,所有使用以太坊discv4协议的区块链都可能受此漏洞影响。 启动测试一段时间后,我们观察到EtherNode的监控节点也受到了污染,而且污染的蔓延似乎比预想的要快。 快点。

WX20190325-131416@2x.png

也许,以太坊需要清洗。

后记

1. 该漏洞是否影响以太坊?

以太坊的节点数量远大于其他同类链,节点之间已经建立了稳定的连接,因此影响并不明显。 但对于其他类似的链节点,它们会被以太坊节点入侵,导致通信阻塞。

2、很多朋友关心除了以太坊之外的其他公链是否存在这个问题,比如比特币及其山寨币,比如使用libp2p协议的公链。 这些问题我们会在后续的文章中揭晓!

非常感谢QuarkChain团队对本次测试的大力协助!