Eclipse Attacks on Ethereum's Peer-to-Peer Network
本文首次实现了对以太坊执行层节点的日蚀攻击端到端方案,证明结合 DNS 列表投毒与空闲连接槽位劫持的多阶段策略可成功隔离超过 80% 的公共节点,从而凸显了合并后网络中存在的关键漏洞。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象以太坊网络是一座庞大、繁忙的数字城市,其中每台计算机(节点)都是一位试图与邻居交流以分享消息和交易商品的居民。为了让城市顺畅运转,每位居民都维护着一本他们信任的邻居的“电话簿”。
本文描述了一种巧妙的多步 trick,攻击者可以利用它使特定居民误以为其整个街区已被一群冒名顶替者取代。在安全领域,这被称为日蚀攻击(Eclipse Attack)。
以下是研究人员如何实施该攻击的分解说明,采用简单的类比:
目标:“虚假街区”
攻击者希望隔离一个特定的以太坊节点(我们称其为“鲍勃”)。一旦被隔离,鲍勃就看不到真实的城市,只能看到攻击者伪造的版本。攻击者随后可以向鲍勃提供虚假信息,诱使他做出错误决策,例如重复花费同一笔资金或接受虚假规则。
三管齐下的攻击策略
研究人员发现,以往攻击比特币的方法无法完美适用于新的以太坊系统,因此他们制定了一个全新的三阶段计划:
1. 毒化电话簿(发现表)
类比:想象鲍勃的抽屉里有一本实体电话簿。当他醒来时,会查看这本簿子以联系最初几位朋友。
攻击:研究人员意识到,在鲍勃醒来之前,他的电话簿已经部分填充了来自过去的名字。攻击者“预先填充”了这本簿子,加入了他们自己的虚假名字。
- 他们是如何做到的:他们在鲍勃睡觉或刚启动时,向他发送持续的“你好”消息(Ping)。鲍勃的系统会自动将这些“你好”发送者添加到他的电话簿中。通过分波次进行,他们将鲍勃长期存储中的好邻居替换成了坏邻居。
- 结果:当鲍勃重启时,他的电话簿大部分已被攻击者的虚假号码填满。
2. 腐蚀城市目录(DNS 列表)
类比:以太坊还有一个公开的“城市目录”(DNS 列表),供所有人查阅以寻找新邻居。这本目录本应由城市官员维护,是一份受信任的列表。
攻击:研究人员找到了将他们的虚假名字悄悄混入这份官方目录的方法。
- 他们是如何做到的:他们搭建了许多自己的计算机,并让它们对“城市官员”(负责更新目录的自动化爬虫)高度可见。他们诱骗官员们相信,这些虚假计算机是镇上最可靠的邻居。
- 结果:官方目录开始将攻击者的虚假计算机列为顶级邻居。当鲍勃查找新朋友时,目录将他指向了攻击者。
3. 占满停车位(插槽劫持)
类比:想象城市中的每位居民都有一个车道,上面有有限数量的停车位(连接)。你无法在同一时间将无限多的车停进自己的车道。
攻击:研究人员意识到,即使他们毒化了鲍勃的电话簿和城市目录,鲍勃仍可能尝试联系一位真实的邻居。但如果那位真实邻居的车道已被其他人的车辆占满,鲍勃就无法接入。
- 他们是如何做到的:攻击者将自己的虚假车辆派往整个网络中数千名真实、诚实的邻居的车道上停放。
- 结果:当鲍勃尝试联系真实邻居时,线路繁忙(车道已满)。鲍勃被迫转而联系攻击者,因为他们的“车道”是空的,正等待着他。
最终陷阱
一旦鲍勃重启他的计算机:
- 他的电话簿里全是虚假名字。
- 城市目录将他指向虚假名字。
- 真实邻居因过于忙碌而无法接听他的呼叫。
鲍勃现在完全被攻击者的虚假网络包围。他以为自己正在与整个世界交流,但实际上他身处一个由攻击者控制的“封闭花园”中。
需要多少努力?
研究人员在测试网络(Sepolia)和真实网络(Mainnet)上对此进行了测试。
- 在测试网络上:他们大约需要 304 个公共 IP 地址(可将其视为唯一的电话号码),即可在 95% 的情况下成功诱捕一个节点。
- 在真实网络上:他们发现超过 80% 的真实节点几乎没有可用的空停车位,这使得该攻击比预期更容易实施。
解决方案
研究人员不仅破坏了系统,还告知了以太坊团队如何修复。他们建议:
- 黑名单:如果某个邻居发送“你好”消息的速度过快,则将其屏蔽。
- 目录检查:限制来自同一条“街道”(IP 地址)的虚假邻居出现在官方城市目录中的数量。
核心结论
本文证明,即使在现代升级版的以太坊中,一个拥有中等资源(数百个 IP 地址)的坚定攻击者也能完全隔离一个用户,将其诱骗至虚假现实中。研究人员已负责任地向以太坊报告了这些漏洞,以便在恶意行为者利用之前修补这些漏洞。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。