2022年6月27日,Moonriver和Moonbeam都通過Runtime 1606進(jìn)行了緊急升級(jí),成功解決當(dāng)天早上(美國(guó)東部時(shí)間)由獨(dú)立白帽黑客披露的一項(xiàng)安全問題。該安全問題現(xiàn)已修復(fù),且不再被任一網(wǎng)絡(luò)利用。初步跡象表明,該漏洞從未被利用,但團(tuán)隊(duì)仍將繼續(xù)展開調(diào)查。
為了防止漏洞被惡意利用與攻擊Moonbeam網(wǎng)絡(luò)和其他平行鏈網(wǎng)絡(luò),以及驗(yàn)證在網(wǎng)絡(luò)受攻擊期間未被主動(dòng)利用,我們并未立即披露此次安全問題的細(xì)節(jié)。
我們發(fā)現(xiàn)安全問題的背景
2022年6月27日下午(美東時(shí)間),Moonbeam團(tuán)隊(duì)收到了一份漏洞報(bào)告。這份報(bào)告提出Frontier(屬于Substrate pallet,由Moonbeam團(tuán)隊(duì)幫助波卡生態(tài)構(gòu)建,是實(shí)現(xiàn)以太坊兼容性的核心功能)內(nèi)部存在的一個(gè)潛在安全漏洞。該漏洞由pwning.eth(于5月發(fā)現(xiàn)另一個(gè)安全問題)直接外聯(lián)發(fā)現(xiàn)并由Immunefi提交。
Moonbeam運(yùn)營(yíng)和開發(fā)團(tuán)隊(duì)立即研究了這份報(bào)告并調(diào)查該漏洞。其中包括 Astar、Parity和Moonwell在內(nèi)的其他團(tuán)隊(duì)與Moonbeam合作評(píng)估此漏洞的范圍和嚴(yán)重性。
經(jīng)驗(yàn)證后,準(zhǔn)備Runtime修復(fù)和部署計(jì)劃。然而,當(dāng)Moonbeam團(tuán)隊(duì)處于修復(fù)過程中時(shí),通過簽入公共存儲(chǔ)庫(kù)無(wú)意中披露了核心漏洞。出于謹(jǐn)慎考慮,Moonbeam和Moonriver技術(shù)委員會(huì)將網(wǎng)絡(luò)置于維護(hù)模式,以防止任何潛在的濫用。網(wǎng)絡(luò)維護(hù)期間僅允許升級(jí)和治理操作,網(wǎng)絡(luò)將繼續(xù)生產(chǎn)區(qū)塊。
當(dāng)天晚上(美東時(shí)間)執(zhí)行并驗(yàn)證Runtime執(zhí)行后,維護(hù)模式被停用,網(wǎng)絡(luò)恢復(fù)正常。
漏洞范圍
根源漏洞是一個(gè)整數(shù)截?cái)?,?dāng)通過智能合約啟動(dòng)傳輸時(shí),它繞過了完整性檢查。雖然傳輸只會(huì)發(fā)生在截?cái)嘀档那樾?,但惡意操作者可能已?jīng)創(chuàng)建了一個(gè)合約,該合約啟動(dòng)了一個(gè)更高的值(超過128 bits)到Token包裝合約的轉(zhuǎn)移。上述的bug可誤導(dǎo)包裝合約,致其相信如此大量的Token實(shí)際上已被轉(zhuǎn)移,并導(dǎo)致接收地址被錯(cuò)誤地記入大量的包裝Token。
補(bǔ)救措施
Runtime 1606通過刪除截?cái)鄟?lái)解決此問題,留下已經(jīng)存在的飽和強(qiáng)制轉(zhuǎn)換(Saturating Cast),從而防止執(zhí)行任何溢出。
緊跟補(bǔ)救措施,一項(xiàng)在Moonriver的治理議案于7月1日通過,消除了在團(tuán)隊(duì)測(cè)試解決方案期間產(chǎn)生的無(wú)效余額。感謝Web3Go團(tuán)隊(duì)及時(shí)發(fā)現(xiàn)問題并引起我們的注意。
修復(fù)后的代碼可在此獲得:https://github.com/PureStake/frontier/compare/652abf16…ca027df5
現(xiàn)有安全措施
代碼審計(jì)
Moonbeam團(tuán)隊(duì)與兩家審計(jì)公司(SR-Labs和NCC)始終保持著服務(wù)關(guān)系,這兩家公司為Moonbeam執(zhí)行持續(xù)的、遞增的和完整的代碼快照審計(jì)。Moonriver和Moonbeam的代碼庫(kù)都在這一審計(jì)過程的范圍內(nèi)。此外,團(tuán)隊(duì)正在考慮聘請(qǐng)第三家公司來(lái)進(jìn)一步擴(kuò)大審計(jì)范圍。
漏洞賞金計(jì)劃
去年,Moonbeam項(xiàng)目創(chuàng)建了Immunefi bug bounty賞金計(jì)劃,以鼓勵(lì)對(duì)Moonbeam代碼庫(kù)進(jìn)行額外的安全測(cè)試。這項(xiàng)安全問題通過該計(jì)劃提交,是第二個(gè)關(guān)于Moonbeam的重要報(bào)告。從這次披露中可以看出,這項(xiàng)漏洞賞金計(jì)劃已被證實(shí)在維護(hù)安全代碼庫(kù)方面極具價(jià)值。
內(nèi)部測(cè)試
每次發(fā)布前,Moonbeam團(tuán)隊(duì)都會(huì)完整徹底地測(cè)試代碼,以此確保代碼的完整性,同時(shí)通過自動(dòng)和手動(dòng)兩種途徑測(cè)試,排除任何潛在的技術(shù)問題。一般情況下,此類內(nèi)部測(cè)試耗時(shí)超過一周,除了公共測(cè)試網(wǎng)絡(luò)Moonbase Alpha之外,還需在幾個(gè)內(nèi)部測(cè)試網(wǎng)絡(luò)中進(jìn)行反復(fù)測(cè)試。通常,發(fā)布在Moonriver和Moonbeam的代碼需間隔約兩周以上。由于本次發(fā)現(xiàn)的問題迫在眉睫,經(jīng)過精簡(jiǎn)而有效的內(nèi)部測(cè)試,Moonriver和Moonbeam兩個(gè)網(wǎng)絡(luò)的緊急升級(jí)在同時(shí)間完成,以最快速度限制曝光窗口。
溝通
根據(jù)之前漏洞披露的發(fā)現(xiàn),Moonbeam團(tuán)隊(duì)實(shí)施了新的通信工具和最佳實(shí)踐。這使團(tuán)隊(duì)之間的溝通和升級(jí)過程都更加順暢。
溝通和回應(yīng)的時(shí)間軸回顧
在收到漏洞報(bào)告和相關(guān)團(tuán)隊(duì)的參與后,Moonbeam團(tuán)隊(duì)迅速處理了安全報(bào)告并開始著手修復(fù)。
首要任務(wù)是盡快解決所有受影響鏈上的直接安全漏洞。當(dāng)漏洞進(jìn)入公眾視野時(shí),Moonbeam和Moonriver技術(shù)委員會(huì)迅速采取行動(dòng),通過將網(wǎng)絡(luò)置于維護(hù)模式來(lái)防止任何損害。
為了更詳細(xì)描述導(dǎo)致安全修復(fù)的事件,Moonbeam團(tuán)隊(duì)提供了有關(guān)這一事件所采取的步驟和本次事件的溝通明細(xì)。
所有提供的時(shí)間均以美國(guó)東部夏令時(shí)間(EDT)為準(zhǔn)。
2022 年 6 月 27 日
- 下午2:13 — Moonwell團(tuán)隊(duì)在收到白帽黑客的直接聯(lián)系后聯(lián)系了Moonbeam團(tuán)隊(duì)。Moonbeam團(tuán)隊(duì)立即要求提供一份Immunefi報(bào)告以確認(rèn)其真實(shí)性并著手開始處理。
- 下午2:25 — Moonbeam技術(shù)事件響應(yīng)團(tuán)隊(duì)召集Moonwell團(tuán)隊(duì)代表開會(huì)討論報(bào)告。隨后將問題上報(bào)給整個(gè)業(yè)務(wù)事件響應(yīng)團(tuán)隊(duì)和Moonbeam & Moonriver的技術(shù)委員會(huì)。
- 下午2:36 — 白帽請(qǐng)求引薦Parity和Astar團(tuán)隊(duì)。Moonbeam創(chuàng)建了一個(gè)電報(bào)群供白帽進(jìn)行內(nèi)部討論,并聯(lián)系請(qǐng)求的團(tuán)隊(duì)加入。
- 下午3:10 — 白帽向Moonbeam和Astar提交Immunefi報(bào)告。
- 下午3:21 — Moonbeam團(tuán)隊(duì)收到報(bào)告后重新召開會(huì)議并決定進(jìn)行程序修補(bǔ),但未將網(wǎng)絡(luò)置于維護(hù)模式。
- 下午4:00 — Parity、Moonbeam和Astar共同確認(rèn)問題及嚴(yán)重性。Moonbeam開發(fā)團(tuán)隊(duì)設(shè)定升級(jí)時(shí)間表,并開始著手開發(fā)補(bǔ)丁。
- 下午5:00 — 溝通內(nèi)容發(fā)送給生態(tài)內(nèi)的開發(fā)團(tuán)隊(duì)。
- 下午6:13 — Astar團(tuán)隊(duì)在公共代碼庫(kù)發(fā)布了該問題的修復(fù)程序。
- 下午6:33 — Moonbeam團(tuán)隊(duì)注意到已發(fā)布的代碼并要求技術(shù)委員會(huì)將網(wǎng)絡(luò)置于維護(hù)模式。開始與重點(diǎn)項(xiàng)目就維護(hù)模式進(jìn)行溝通。
- 下午6:46 — 維護(hù)模式通過Moonbeam和Moonriver的技術(shù)委員會(huì)制定并啟動(dòng)外部通信。
- 下午7:46 — 更新完成,CI/CD啟動(dòng),隨之回歸測(cè)試和部署到多個(gè)測(cè)試網(wǎng)絡(luò)。
- 下午8:05 — 下線Moonbeam dApps GUI以防止出現(xiàn)意外行為。
- 下午9:40 — 在Moonriver上進(jìn)行升級(jí)投票。因維護(hù)模式期間EVM功能不可用,所以Polkassembly暫無(wú)法使用
Polkadot/Substrate Portal - 下午10:31 — Moonbeam升級(jí)已批準(zhǔn)并需要60分鐘的排隊(duì)時(shí)間。
- 下午10:58—Moonbeam和Moonriver均已成功升級(jí)并開始產(chǎn)生區(qū)塊。技術(shù)委員會(huì)對(duì)取消維護(hù)模式的投票已提交。
Moonriver技術(shù)委員會(huì)提案 #92
Moonbeam技術(shù)委員會(huì)提案 #50
- 下午11:05 — 維護(hù)模式被解除,兩個(gè)網(wǎng)絡(luò)恢復(fù)全部功能。
- 下午11:49 — Moonwell確認(rèn)其服務(wù)已完全恢復(fù)。
- 下午11:50 — 升級(jí)確認(rèn)發(fā)送至Twitter、Telegram、Discord和Reddit。
回顧與感謝
從收到問題到解決問題,再加上公開披露,處理時(shí)長(zhǎng)約10個(gè)小時(shí)。這個(gè)時(shí)間窗口包括多個(gè)階段的測(cè)試和協(xié)調(diào),不僅要與PureStake團(tuán)隊(duì)、Moonbeam基金會(huì)和Immunefi上的漏洞報(bào)告者協(xié)調(diào),還要與Parity團(tuán)隊(duì)和Astar協(xié)調(diào)。加上開源開發(fā)的屬性,披露的效率需要極強(qiáng)的執(zhí)行力和高效的團(tuán)隊(duì)間協(xié)調(diào),同時(shí)需要同步分布在全球不同時(shí)區(qū)的大量潛在受影響方。
感謝所有協(xié)助Moonbeam和Moonriver項(xiàng)目團(tuán)隊(duì)解決該問題的伙伴,同時(shí)點(diǎn)贊我們團(tuán)結(jié)一致和超強(qiáng)執(zhí)行力的Moonbeam團(tuán)隊(duì),這是我們快速地解決該問題的關(guān)鍵。
有關(guān)Immunefi漏洞賞金計(jì)劃的更多信息以及如何參與,請(qǐng)?jiān)L問其網(wǎng)站:Moonbeam Network Bug Bounties | Immunefi
關(guān)于此次匯報(bào)和我們收到的安全報(bào)告的其他問題,請(qǐng)通過Discord聯(lián)系團(tuán)隊(duì):?https://discord.gg/PfpUATX
關(guān)于Moonbeam
Moonbeam是波卡網(wǎng)絡(luò)中兼容以太坊的智能合約平臺(tái),可實(shí)現(xiàn)輕松構(gòu)建原生的互操作性去中心化應(yīng)用。以太坊兼容特性允許開發(fā)者以最少的更改將現(xiàn)有的Solidity智能合約和DApp前端部署到Moonbeam。Moonbeam將延續(xù)其在Kusama上的姐妹平行鏈Moonriver的成功,從100多個(gè)在網(wǎng)絡(luò)上構(gòu)建DApp和協(xié)議的項(xiàng)目中積累開發(fā)者和用戶活動(dòng)。作為波卡網(wǎng)絡(luò)上的平行鏈,Moonbeam將受益于波卡中繼鏈的共享安全性和連接波卡其他鏈的互操作優(yōu)勢(shì)。
如需了解更多信息,請(qǐng)?jiān)L問:Moonbeam | Polkadot Smart Contract Platform文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-415847.html
關(guān)于Moonriver
Moonriver是Moonbeam的同行網(wǎng)絡(luò),旨在為激勵(lì)實(shí)驗(yàn)提供永久性的測(cè)試環(huán)境。新上線項(xiàng)目的代碼將優(yōu)先部署到Moonriver,在其真實(shí)的經(jīng)濟(jì)環(huán)境下經(jīng)歷一系列的測(cè)試與實(shí)驗(yàn)驗(yàn)證。當(dāng)驗(yàn)證完成并通過測(cè)試之后,項(xiàng)目代碼才可正式部署至波卡上的Moonbeam。
如需了解更多信息,請(qǐng)?jiān)L問:Moonriver - Solidity Smart Contracts on Kusama
更多 Moonbeam 信息?
官網(wǎng): Moonbeam | Polkadot Smart Contract Platform
微博:Sina Visitor System
twitter: https://twitter.com/MoonbeamNetwork
Telegram: https://t.me/moonbeam_CN
Discord: https://discord.gg/skPfXvJWG7
中文電報(bào)群助手:@MoonbeamSister文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-415847.html
到了這里,關(guān)于Moonbeam團(tuán)隊(duì)發(fā)布針對(duì)整數(shù)截?cái)嗦┒吹木o急安全修復(fù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!