以太坊交易所 以太坊交易所
Ctrl+D 以太坊交易所
ads

成都鏈安:Bancor Network漏洞事件分析_ANC:Californium

Author:

Time:1900/1/1 0:00:00

一、事件簡述

2020-06-18(文中所提及時間均為UTC時間),以太坊上的智能合約BancorNetwork被爆出存在嚴重漏洞。該漏洞由BancorNetwork團隊和白帽最先發現,并第一時間對存在被盜風險的資金進行了轉移,涉及資金50W余美元。此次事件中,存在漏洞的合約地址主要有如下三個:0x923cab01e6a4639664aa64b76396eec0ea7d3a5f0x8dfeb86c7c962577ded19ab2050ac78654fea9f70x5f58058c0ec971492166763c8c22632b583f667f2020-06-183:06:48,BancorNetwork團隊利用此漏洞對存在被盜風險的用戶資金進行轉移,截至2020-06-186:56,BancorNetwork團隊共計轉移資金約合$409,656。另外兩個公開郵箱信息的地址:0x052ede4c2a04670be329db369c4563283391a3ea0x1ad1099487b11879e6116ca1ceee486d1efa7b00也于同一時間利用此漏洞對用戶資金進行轉移,分別轉出資金$131,889和$2346。到目前為止:EtherScan已經將存在此漏洞的合約進行標注,如下圖所示

成都鏈安:fomo-dao項目遭受攻擊,攻擊者獲利11萬美元,目前已轉至Tornado.cash:金色財經消息,據成都鏈安“鏈必應-區塊鏈安全態勢感知平臺”安全輿情監控數據顯示,fomo-dao項目遭受攻擊。攻擊者地址:

0xbb8bd674e4b2ea3ab7f068803f68f6c911b78c0a

攻擊交易bsc:0xbbccd687a00bef0c305b8ebb1db4c40460894f75cdaebd306a2f62e0c86b7ba5

攻擊合約:0xe62b2dfc54972354fac2511d8103c23883c746c4

目前攻擊者獲利11萬美元,已經轉至Tornado.cash[2022/6/4 4:01:44]

圖一BancorNetwork團隊也已對此次事件做出了回應,

成都鏈安:fortress被盜金額已被轉換成1048eth并轉入了Tornado Cash:5月9日消息,據成都鏈安安全輿情監控數據顯示,fortress 遭受預言機價格操控攻擊,被盜金額已被轉換成1048eth并轉入了Tornado Cash。經成都鏈安技術團隊分析,本次攻擊原因是由于fortress項目的預言機FortressPriceOracle的數據源Chain合約的價格提交函數submit中,將價格提交者的權限驗證代碼注釋了,導致任何地址都可以提交價格數據。攻擊者利用這個漏洞,提交一個超大的FST價格,導致抵押品價值計算被操控,進而借貸出了項目中所有的代幣。

攻擊交易:0x13d19809b19ac512da6d110764caee75e2157ea62cb70937c8d9471afcb061bf

攻擊者地址:0xa6af2872176320015f8ddb2ba013b38cb35d22ad

攻擊者合約:0xcd337b920678cf35143322ab31ab8977c3463a45[2022/5/9 3:00:21]

詳情見,并于UTC時間2020-06-1721:35:53部署了新的BancorNetwork合約,合約地址為0x2f9ec37d6ccfff1cab21733bdadede11c823ccb0二、原理分析

成都鏈安:正在追查Ronin攻擊事件的資金去向:據成都鏈安鏈必應-區塊鏈安全態勢感知平臺輿情監測顯示,Axie Infinity側鏈Ronin遭到攻擊,17.36萬枚ETH和2550萬USDC被盜,總金額約合價值為6.15億美元。在這里,成都鏈安對此類跨鏈橋項目給出以下建議:

1.注意簽名服務器的安全性;

2.簽名服務在相關業務下線時,應及時更新策略,關閉對應的服務模塊,并且可以考慮棄用對應的簽名賬戶地址;

3.多簽驗證時,多簽服務之間應該邏輯隔離,獨立對簽名內容進行驗證,不能出現部分驗證者能夠直接請求其它驗證者進行簽名而不用經過驗證的情況;

4.項目方應實時監控項目資金異常情況。[2022/3/30 14:25:56]

漏洞爆出后,成都鏈安安全團隊第一時間對本次事件進行跟蹤分析,根據鏈上分析結果發現,此次事件中漏洞產生的主要原因是智能合約BancorNetwork存在一個調用權限為public的函數safeTransferFrom,通過調用此函數,可以將用戶授權給智能合約BancorNetwork的資金轉出到任意地址。由源碼可以知,該函數為一個public函數,詳細代碼如下圖所示:

成都鏈安:BaconProtocol遭受攻擊事件分析:據成都鏈安鏈必應-區塊鏈安全態勢感知平臺輿情監測顯示,BaconProtocol遭受黑客攻擊損失約958,166 美元,關于本次攻擊,成都鏈安團隊第一時間進行了分析:1. 本次攻擊利用重入漏洞,并憑借閃電貸擴大收益額。2:目前攻擊者地址還沒有被加入USDC的黑名單中。[2022/3/6 13:40:01]

圖二safeTransferFrom函數內部調用了execute函數。而execute函數的功能是調用safeTransferFrom參數中的_token代幣智能合約的transferFrom函數進行代理轉賬。execute函數源碼如下圖所示:

成都鏈安CEO楊霞:DeFi項目方應重視合約安全問題:據官方消息,在由OKEx主辦的“后疫情時代:DeFi的機遇與挑戰”社群活動上,成都鏈安創始人兼CEO楊霞談到最近dForce攻擊事件,她表示,DeFi項目正在快速發展壯大,據我們統計截止2020年,鎖定在以太坊DeFi應用中資產已達到10億美元。DeFi項目火爆主要來源它的高收益。DeFi又被稱為“去中心化金融”,開放式金融基礎,則是高達8%-10%收益率必然會伴隨巨大風險。各方DeFi團隊開發自己合約產品也是自由發揮;但并沒有一個統一的、標準的安全方案去遵守,或者說是必須通過嚴格安全審計,這就導致各種合約漏洞與相關安全問題層出不窮,此次事件項目方就應該進行重入防護:比如使用OpenZeppelin的ReentrancyGuard,另一方面先修改本合約狀態變量,再進行外部調用。任何Defi項目方在開發合約時應重視合約安全問題,以應對各種突發情況和各種非正常使用合約情況,從而避免造成損失;同時建議做好相關安全審計工作,借助專業的區塊鏈安全公司的力量,避免潛在的安全隱患。[2020/4/30]

圖三我們通過一筆鏈上交易可以清晰的看到調用此函數的具體作用。如地址“0xc802”發起一筆交易,調用了智能合約“0x5f58”的safeTransferFrom函數,使地址”0x8a39”中的0.000000000000000003代幣MFG發送到”0x2955”,具體如下圖所示:

圖四以上就是本次事件漏洞的原理分析,該漏洞的原理十分簡單,是因為函數的調用權限設置錯誤,將本應該只有合約本身調用的函數,設置成了任何人都可以調用。而當BancorNetwork擁有用戶的授權額度時,任何人都可以通過調用safeTransferFrom函數,以BancorNetwork的身份對用戶的資金進行代理轉賬。針對該漏洞,有兩點值得我們進行深入分析:1.為什么BancorNetwork合約的safeTransferFrom函數會將權限設置成public。2.BancorNetwork合約的主要功能是代幣轉換,并非一個錢包,為什么用戶會有未使用的授權。對于第一個問題,我們追蹤了safeTransferFrom函數的調用情況,發現safeTransferFrom函數只在handleSourceToken函數中被調用,用于將用戶的代幣轉移到本合約中。handleSourceToken函數源碼如下圖所示:

圖五既然只是在handleSourceToken函數中調用,那么顯然是沒有必要設置成public權限,且根據業務來看,BancorNetwork的主要作用是用于代幣交換,并不需要用戶主動調用safeTransferFrom,也就沒有必要將safetransferFrom設置為public權限。于是我們對比了合約中其他的幾個函數,這幾個函數均被設置成了public權限。如下圖所示:

圖六由此,針對第一個問題,我們推測將這些函數設置為public權限可能是因為合約開發人員的疏忽。而目前來看,BancorNetwork團隊新部署的合約也驗證了這個推測。根據鏈上代碼顯示,官方部署的新合約已經將相關函數權限全部進行了更改。具體代碼如下圖所示:

圖七針對第二個問題,我們跟蹤了漏洞爆出后被轉移資金的地址,發現這些地址在對BancorNetwork授權額度時,往往超過了所需要兌換代幣的數量,且在兌換完成后,并沒有收回額度。如下圖所示:

圖八“0x624f”開頭的地址對BancorNetwork合約授權了900000000000000個ONG代幣,此額度已經超過了ONG的發行量,相當于將“0x624f”所擁有的ONG代幣全部授權給BancorNetwork合約。而跟蹤“0x624f”開頭地址的交易我們發現,在進行完代幣兌換后,未使用完所有授權額度,但并未將授權額度收回。綜上所述,我們推測可能是用戶考慮到要隨時使用,為了方便,一次性將所有代幣都授權給了BancorNetwork合約。也可能是BancorNetwork的前端對授權金額設定了默認值。但這種行為存在巨大的風險,一旦智能合約爆發漏洞,資金極易被攻擊者竊取。而在對后續新的BancorNetwork合約進行分析時發現,BancorNetwork團隊和用戶似乎也意識到了此問題存在的巨大風險,并做出了相應的安全防護。如下圖九、十為用戶對新合約的授權情況,對比兩筆線上交易不難看出,兩次授權的時間間隔很短,當用戶成功兌換完代幣后,剩余授權即被收回。

圖九

圖十三、結語

BancorNetwork本次爆出的漏洞,是一個較為簡單的漏洞,此類漏洞在代碼審計過程中十分容易被發現,但此次漏洞的影響卻很大,上線僅兩天,涉及的資金就已經超過50w美元。幸而BancorNetwork團隊及時發現并修復了漏洞,否則后果不堪設想。成都鏈安-安全研究團隊在此提醒各大智能合約運營商,因區塊鏈合約部署后不可更改的特性,對比傳統軟件,上線前做好充分的代碼審計十分重要,此次事件雖未造成太大的經濟損失,但勢必會讓用戶對BancorNetwork團隊產品的安全性產生質疑。另外也提醒廣大用戶和運營商,在授權資金給第三方合約時,都應保持謹慎,切不可盲目相信“大公司”,對任何合約的授權都應當秉承最小原則,不要使自己的資金安全掌握在他人手中。

Tags:ORNANCWORETWCaliforniumBig FinancePoseidon NetworkDeBio Network

比特幣價格
解讀:Vitalik的以太坊路線圖_ETH2:區塊鏈幣圈幣種知識大全

編者按:本文來自頭等倉區塊鏈研究院,Odaily星球日報經授權轉載。2020年以太坊會有哪些進展?VitalikButerin在推特上發布了一條個人以太坊路線圖,你可能會好奇他的路線圖的含義,以.

1900/1/1 0:00:00
行情分析:大盤迎來預期反彈,但后繼如何呢?_OTC:gmt幣日本

本文來自:哈希派,作者:哈希派分析團隊,星球日報經授權轉發。金色財經合約行情分析 | BTC再次向上突破將測試近三月高點:據火幣BTC永續合約行情顯示,截至今日18:00(GMT+8),BTC價.

1900/1/1 0:00:00
NFT市場規模過億美元,一文讀懂非同質化代幣發展全貌_CRYPTO:CRY

編者按:本文來自鏈聞ChainNews,撰文:AndrewSteinwold,加密貨幣投資基金PolynexusCapital合伙人,NFT播客ZimaRed創始人,編譯:PerryWang.

1900/1/1 0:00:00
一文了解比特幣挖礦產業_ORL:加密貨幣市場行情走勢分析

挖礦,也許是比特幣生態系統最重要的組成部分之一。礦工需要解決復雜的數學計算問題,從而保障交易的順利執行。這些問題如此復雜,即使對于功能極其強大的計算機而言,這些問題也很難解決.

1900/1/1 0:00:00
區塊鏈如何幫助6G資源管理與共享_CORD:CORD幣

在網絡切片被不同的資源池共享的同時,計算資源也無法避免地下沉,豐富了邊緣計算霧計算的生態,為此,我們意識到通信資源并不是孤立存在的,它的背后還有著兩種更加初始并值得整合的資源,計算與能源.

1900/1/1 0:00:00
區塊鏈+物流天生耦合,重塑供應鏈管理體系_區塊鏈游戲:區塊鏈游戲幣拍賣

魔幻開局的2020推動著電商行業的快速發展,作為電商企業和用戶的唯一樞紐,物流行業同樣面臨著無限機遇.

1900/1/1 0:00:00
ads