一、事件簡述
2020-06-18(文中所提及時間均為UTC時間),以太坊上的智能合約BancorNetwork被爆出存在嚴重漏洞。該漏洞由BancorNetwork團隊和白帽最先發現,并第一時間對存在被盜風險的資金進行了轉移,涉及資金50W余美元。
此次事件中,存在漏洞的合約地址主要有如下三個:
0x923cab01e6a4639664aa64b76396eec0ea7d3a5f
0x8dfeb86c7c962577ded19ab2050ac78654fea9f7
0x5f58058c0ec971492166763c8c22632b583f667f
2020-06-183:06:48,BancorNetwork團隊利用此漏洞對存在被盜風險的用戶資金進行轉移,截至2020-06-18?6:56,BancorNetwork團隊共計轉移資金約合$409,656。
另外兩個公開郵箱信息的地址:
0x052ede4c2a04670be329db369c4563283391a3ea
Neobank Cogni宣布推出一款非托管錢包:金色財經報道,Neobank Cogni宣布推出一款應用內非托管錢包,旨在補充其現有的銀行服務。 Cogni 的錢包使其用戶能夠在 KYC 流程后自行保管他們的加密貨幣。
目前,Cogni 的錢包允許用戶簡單地持有、發送和接收加密貨幣,但即將與一家尚未命名的交易所建立合作伙伴關系,讓用戶可以在應用程序內購買加密貨幣。[2022/12/21 21:59:15]
0x1ad1099487b11879e6116ca1ceee486d1efa7b00
也于同一時間利用此漏洞對用戶資金進行轉移,分別轉出資金$131,889和$2346。
到目前為止:
EtherScan已經將存在此漏洞的合約進行標注,如下圖所示
圖一
BancorNetwork團隊也已對此次事件做出了回應,
瑞士數字銀行SEBA Bank發布波卡ETP產品:7月22日消息,瑞士數字銀行SEBA Bank加入21Shares和Valour的行列,發布波卡交易所交易產品(ETP)SA1 Polkadot ETP(SDOT),該產品已登陸瑞士交易所SIX Swiss Exchange,總費用率(TER)為1.25%。瑞士加密ETP發行商21Shares于2月率先推出21Shares Polkadot ETP(ADOT),瑞士區塊鏈公司Valor隨后于5月推出Valor Polkadot SEK ETP。(ETF Stream)[2021/7/22 1:09:11]
詳情見
,
并于UTC時間2020-06-1721:35:53部署了新的BancorNetwork合約,合約地址為
0x2f9ec37d6ccfff1cab21733bdadede11c823ccb0
二、原理分析
LBank藍貝殼將于今日18:00開啟 XWC/BTC、XWC/ETH交易對:據官方消息,4月17日18:00 LBank藍貝殼將開啟 XWC/BTC、XWC/ETH交易對。
資料顯示,Whitecoin(XWC)白幣是一個具有5年多去中心化歷史的社區性去中心化項目,項目產生于2014年初,主要開發團隊來自荷蘭、德國、芬蘭、澳大利亞等國家。
2019年升級的全新Whitecoin將采用RPOS機制,實現跨鏈資產的管理、跨鏈轉移互換、跨鏈價值的傳遞等功能。當前白幣公鏈有三大功能和一個核心特色:跨鏈資產、智能合約、去中心化交易所、以及獨創性的社區治理機制。[2021/4/17 20:30:52]
漏洞爆出后,成都鏈安安全團隊第一時間對本次事件進行跟蹤分析,根據鏈上分析結果發現,此次事件中漏洞產生的主要原因是智能合約BancorNetwork存在一個調用權限為public的函數safeTransferFrom,通過調用此函數,可以將用戶授權給智能合約BancorNetwork的資金轉出到任意地址。
由源碼可以知,該函數為一個public函數,詳細代碼如下圖所示:
LBank藍貝殼將于今日上線VAL、ANY、RAZE ,開啟USDT交易:據悉LBank藍貝殼將于4月16日上線三個項目分別是:
項目一:VAL(Vswap),上線時間 17:00;
項目二:ANY(AnySwap),上線時間 19:00 ,同時啟動瓜分3,290 ANY活動;
項目三:RAZE(Raze Network) ,上線時間 23:00,同時啟動充值RAZE瓜分10,000 USDT活動;
更多信息可登錄官網進行查看[2021/4/16 20:26:55]
圖二
safeTransferFrom函數內部調用了execute函數。而execute函數的功能是調用safeTransferFrom參數中的_token代幣智能合約的transferFrom函數進行代理轉賬。execute函數源碼如下圖所示:
動態 | 韓國互聯網銀行Kakao Bank計劃今年底上市 騰訊為第二大股東:韓國互聯網銀行Kakao Bank的一位高管近期表示,公司準備在今年年底前在該國股市上市。 Kakao Bank是由韓國投資控股公司和韓國互聯網巨頭Kakao聯合推出的韓國互聯網銀行,為繼K Bank之后韓國的第二家純互聯網銀行。該互聯網銀行的股東包括韓國投資金融控股公司、騰訊、國民銀行、易趣等9家公司,資本金為3千億韓元。其中,騰訊為第二大股東。值得注意的是,2019年,Kakao Bank開始積極布局區塊鏈,目前成立了Ground X公司。Ground X公司負責開發和運營Kakao的公共區塊鏈平臺Klaytn。(IPO早知道)[2020/1/21]
圖三
我們通過一筆鏈上交易可以清晰的看到調用此函數的具體作用。如地址“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:BANETWWORTWOProfit BankEarn NetworkSX NetworkColony Network Token
最新的以太坊2.0測試網迭代Altona計劃于6月29日星期一發布。正如6月25日的以太坊?2.0開發人員電話會議所討論的那樣,新的測試網已“基本準備就緒”,只是為了確保啟動期間所有開發人員都在.
1900/1/1 0:00:00以太坊聯合創始人VitalikButerin在推特上質疑了預測比特幣價格將達六位數的庫存流量模型,他還表示,比特幣的價格和減半不相關.
1900/1/1 0:00:00免責聲明:本專欄內容概不構成任何投資意見,內容亦并非就任何個別投資者的特定投資目標、財務狀況及個別需要而編制。投資者不應只按本專欄內容進行投資.
1900/1/1 0:00:007月5日,國內首個隱私計算產業論壇在杭州區塊鏈國際周上強勢登場。活動匯聚了AI、區塊鏈、大數據、物聯網等眾多技術方向的頂級主流機構代表與專家,聚焦“密碼學”“多方安全計算”“安全”“聯邦學習”等.
1900/1/1 0:00:007月5日上午,在由杭州市余杭區政府指導,杭州未來科技城管委會、巴比特主辦的“擁抱產業新浪潮——2020杭州區塊鏈國際周”現場,浙江省區塊鏈專業標準化技術委員會揭牌成立.
1900/1/1 0:00:00renBTC、tBTC、kava等去中心化比特幣錨定幣模式辨析。把比特幣引入以太坊生態是長期的主線,值得長期關注.
1900/1/1 0:00:00