Moonbeam团队发布针对整数截断漏洞的紧急安全修复

2022年6月27日,Moonriver和Moonbeam都通过Runtime 1606进行了紧急升级,成功解决当天早上(美国东部时间)由独立白帽黑客披露的一项安全问题。该安全问题现已修复,且不再被任一网络利用。初步迹象表明,该漏洞从未被利用,但团队仍将继续展开调查。

为了防止漏洞被恶意利用与攻击Moonbeam网络和其他平行链网络,以及验证在网络受攻击期间未被主动利用,我们并未立即披露此次安全问题的细节。

我们发现安全问题的背景

2022年6月27日下午(美东时间),Moonbeam团队收到了一份漏洞报告。这份报告提出Frontier(属于Substrate pallet,由Moonbeam团队帮助波卡生态构建,是实现以太坊兼容性的核心功能)内部存在的一个潜在安全漏洞。该漏洞由pwning.eth(于5月发现另一个安全问题)直接外联发现并由Immunefi提交。

Moonbeam运营和开发团队立即研究了这份报告并调查该漏洞。其中包括 Astar、Parity和Moonwell在内的其他团队与Moonbeam合作评估此漏洞的范围和严重性。

经验证后,准备Runtime修复和部署计划。然而,当Moonbeam团队处于修复过程中时,通过签入公共存储库无意中披露了核心漏洞。出于谨慎考虑,Moonbeam和Moonriver技术委员会将网络置于维护模式,以防止任何潜在的滥用。网络维护期间仅允许升级和治理操作,网络将继续生产区块。

当天晚上(美东时间)执行并验证Runtime执行后,维护模式被停用,网络恢复正常。

漏洞范围

根源漏洞是一个整数截断,当通过智能合约启动传输时,它绕过了完整性检查。虽然传输只会发生在截断值的情形,但恶意操作者可能已经创建了一个合约,该合约启动了一个更高的值(超过128 bits)到Token包装合约的转移。上述的bug可误导包装合约,致其相信如此大量的Token实际上已被转移,并导致接收地址被错误地记入大量的包装Token。

补救措施

Runtime 1606通过删除截断来解决此问题,留下已经存在的饱和强制转换(Saturating Cast),从而防止执行任何溢出。

紧跟补救措施,一项在Moonriver的治理议案于7月1日通过,消除了在团队测试解决方案期间产生的无效余额。感谢Web3Go团队及时发现问题并引起我们的注意。

修复后的代码可在此获得:https://github.com/PureStake/frontier/compare/652abf16…ca027df5

现有安全措施

代码审计

Moonbeam团队与两家审计公司(SR-Labs和NCC)始终保持着服务关系,这两家公司为Moonbeam执行持续的、递增的和完整的代码快照审计。Moonriver和Moonbeam的代码库都在这一审计过程的范围内。此外,团队正在考虑聘请第三家公司来进一步扩大审计范围。

漏洞赏金计划

去年,Moonbeam项目创建了Immunefi bug bounty赏金计划,以鼓励对Moonbeam代码库进行额外的安全测试。这项安全问题通过该计划提交,是第二个关于Moonbeam的重要报告。从这次披露中可以看出,这项漏洞赏金计划已被证实在维护安全代码库方面极具价值。

内部测试

每次发布前,Moonbeam团队都会完整彻底地测试代码,以此确保代码的完整性,同时通过自动和手动两种途径测试,排除任何潜在的技术问题。一般情况下,此类内部测试耗时超过一周,除了公共测试网络Moonbase Alpha之外,还需在几个内部测试网络中进行反复测试。通常,发布在Moonriver和Moonbeam的代码需间隔约两周以上。由于本次发现的问题迫在眉睫,经过精简而有效的内部测试,Moonriver和Moonbeam两个网络的紧急升级在同时间完成,以最快速度限制曝光窗口。

沟通

根据之前漏洞披露的发现,Moonbeam团队实施了新的通信工具和最佳实践。这使团队之间的沟通和升级过程都更加顺畅。

沟通和回应的时间轴回顾

在收到漏洞报告和相关团队的参与后,Moonbeam团队迅速处理了安全报告并开始着手修复。

首要任务是尽快解决所有受影响链上的直接安全漏洞。当漏洞进入公众视野时,Moonbeam和Moonriver技术委员会迅速采取行动,通过将网络置于维护模式来防止任何损害。

为了更详细描述导致安全修复的事件,Moonbeam团队提供了有关这一事件所采取的步骤和本次事件的沟通明细。

所有提供的时间均以美国东部夏令时间(EDT)为准。

2022 年 6 月 27 日

  • 下午2:13 — Moonwell团队在收到白帽黑客的直接联系后联系了Moonbeam团队。Moonbeam团队立即要求提供一份Immunefi报告以确认其真实性并着手开始处理。
  • 下午2:25 — Moonbeam技术事件响应团队召集Moonwell团队代表开会讨论报告。随后将问题上报给整个业务事件响应团队和Moonbeam & Moonriver的技术委员会。
  • 下午2:36 — 白帽请求引荐Parity和Astar团队。Moonbeam创建了一个电报群供白帽进行内部讨论,并联系请求的团队加入。
  • 下午3:10 — 白帽向Moonbeam和Astar提交Immunefi报告。
  • 下午3:21 — Moonbeam团队收到报告后重新召开会议并决定进行程序修补,但未将网络置于维护模式。
  • 下午4:00 — Parity、Moonbeam和Astar共同确认问题及严重性。Moonbeam开发团队设定升级时间表,并开始着手开发补丁。
  • 下午5:00 — 沟通内容发送给生态内的开发团队。
  • 下午6:13 — Astar团队在公共代码库发布了该问题的修复程序。
  • 下午6:33 — Moonbeam团队注意到已发布的代码并要求技术委员会将网络置于维护模式。开始与重点项目就维护模式进行沟通。
  • 下午6:46 — 维护模式通过Moonbeam和Moonriver的技术委员会制定并启动外部通信。
  • 下午7:46 — 更新完成,CI/CD启动,随之回归测试和部署到多个测试网络。
  • 下午8:05 — 下线Moonbeam dApps GUI以防止出现意外行为。
  • 下午9:40 — 在Moonriver上进行升级投票。因维护模式期间EVM功能不可用,所以Polkassembly暂无法使用
    Polkadot/Substrate Portal
  • 下午10:31 — Moonbeam升级已批准并需要60分钟的排队时间。
  • 下午10:58—Moonbeam和Moonriver均已成功升级并开始产生区块。技术委员会对取消维护模式的投票已提交。

Moonriver技术委员会提案 #92
Moonbeam技术委员会提案 #50

  • 下午11:05 — 维护模式被解除,两个网络恢复全部功能。
  • 下午11:49 — Moonwell确认其服务已完全恢复。
  • 下午11:50 — 升级确认发送至Twitter、Telegram、Discord和Reddit。

回顾与感谢

从收到问题到解决问题,再加上公开披露,处理时长约10个小时。这个时间窗口包括多个阶段的测试和协调,不仅要与PureStake团队、Moonbeam基金会和Immunefi上的漏洞报告者协调,还要与Parity团队和Astar协调。加上开源开发的属性,披露的效率需要极强的执行力和高效的团队间协调,同时需要同步分布在全球不同时区的大量潜在受影响方。

感谢所有协助Moonbeam和Moonriver项目团队解决该问题的伙伴,同时点赞我们团结一致和超强执行力的Moonbeam团队,这是我们快速地解决该问题的关键。

有关Immunefi漏洞赏金计划的更多信息以及如何参与,请访问其网站:Moonbeam Network Bug Bounties | Immunefi

关于此次汇报和我们收到的安全报告的其他问题,请通过Discord联系团队: https://discord.gg/PfpUATX


关于Moonbeam
Moonbeam是波卡网络中兼容以太坊的智能合约平台,可实现轻松构建原生的互操作性去中心化应用。以太坊兼容特性允许开发者以最少的更改将现有的Solidity智能合约和DApp前端部署到Moonbeam。Moonbeam将延续其在Kusama上的姐妹平行链Moonriver的成功,从100多个在网络上构建DApp和协议的项目中积累开发者和用户活动。作为波卡网络上的平行链,Moonbeam将受益于波卡中继链的共享安全性和连接波卡其他链的互操作优势。

如需了解更多信息,请访问:Moonbeam | Polkadot Smart Contract Platform


关于Moonriver
Moonriver是Moonbeam的同行网络,旨在为激励实验提供永久性的测试环境。新上线项目的代码将优先部署到Moonriver,在其真实的经济环境下经历一系列的测试与实验验证。当验证完成并通过测试之后,项目代码才可正式部署至波卡上的Moonbeam。

如需了解更多信息,请访问:Moonriver - Solidity Smart Contracts on Kusama

更多 Moonbeam 信息 
官网: Moonbeam | Polkadot Smart Contract Platform
微博:Sina Visitor System
twitter: https://twitter.com/MoonbeamNetwork
Telegram: https://t.me/moonbeam_CN
Discord: https://discord.gg/skPfXvJWG7
中文电报群助手:@MoonbeamSister

猜你喜欢

转载自blog.csdn.net/Moonbuilder/article/details/126159490