1、前言
北京時間3月5日,知道創宇區塊鏈安全實驗室?監測到?BaconProtocol?遭受黑客攻擊損失約958,166美元,本次攻擊利用重入漏洞,并憑借閃電貸擴大收益額。目前攻擊者地址還沒有被加入USDC的黑名單中。
2、分析
攻擊事件如下圖所示,該次攻擊事件的問題點在于lend()函數,攻擊者利用該函數進行重入攻擊。
2.1基礎信息
攻擊合約:0x580cac65c2620d194371ef29eb887a7d8dcc91bf
攻擊者地址:0x7c42f2a7d9ad01294ecef9be1e38272c84607593
Bluehelix VP:BHEX Chain 跨鏈橋定位DeFi生態工具 可促進各公鏈間跨鏈資產流通:8月13日消息,Bluehelix全球商務VP Elsa Qiu在社群AMA解答用戶相關問題中提到,BHEX Chain BBS跨鏈橋不是簡單的雙鏈跨鏈橋,而是可以兼容多條異構鏈和同構鏈的多鏈跨鏈橋,目前可支持市面上所有公鏈的跨鏈橋。
BHEX Chain目前已經支持BTC、ETH、HECO、BSC、DOGE、TRON等多條公鏈,且即將接入Polygon、xDai、Fantom、Cosmos、FIL、NEAR、Solana等公鏈。任意的項目方、公鏈、錢包都可基于BHEX Chain的多鏈映射功能進行資產跨鏈,實現不同生態間的去中心化流通。BBS跨鏈橋基于已在歐美獲得專利的Bluehelix私鑰分片技術搭建,用戶生成的充值地址都是獨立的,且充值地址的私鑰完全以分片的形式存在不同的節點上,用戶的任意一筆資產跨鏈流程完全透明、清晰可見。[2021/8/13 1:53:55]
攻擊tx:0x7d2296bcb936aa5e2397ddf8ccba59f54a178c3901666b49291d880369dbcf31
金色熱搜榜:BHD居于榜首:根據金色財經排行榜數據顯示,過去24小時內,BHD搜索量高居榜首。具體前五名單如下:BHD、OKB、ONT、DASH、BNB。[2020/11/3 11:33:33]
漏洞合約:0x781ad73f140815763d9A4D4752DAf9203361D07D
2.2流程
1.攻擊者通過UniswapV2閃電貸借出6,360,000USDC。
2.用閃電貸借出的6,360,000USDC分成3份,去bHOME中進行2次重入攻擊調用了3次lend()函數鑄造共8,465,943.180104bHOME。
3.將剛才重入獲得的bHOME拿去銷毀贖回獲得7,336,924.998USDC。
動態 | 資金盤項目BHB負責人被抓,涉案金額超20億:據四川省青神縣局今日消息,以區塊鏈、虛擬貨幣為名義的資金盤項目BHB主要負責人刁某某已被青神縣局刑事拘留,案件正在進一步偵辦中。 據悉,BHB于2018年12月2日在微信群進行宣傳,以拉人頭的方式募集資金,宣稱起底投資8000元,日分紅1.3%。但在今年2月12日,平臺將所有用戶的BHB鎖定,停止所有提現操作,公司也已注銷。而該項目負責人不僅利用發行BHB圈錢詐騙,還搞了其它4個名為菠菜、量化、劍基金、小密圈期貨的虛擬幣資金盤。[2019/8/12]
4、歸還閃電貸借出的6,360,000USDC,并支付19,716的手續費,最后將剩余的957,208.998USDC轉入自己的賬戶。
動態 | BHC將在兩周內進行網絡壓力測試:據bitcoin.com報道,BHC生態系統的參與者計劃于兩周內的9月1日進行網絡壓力測試,個人和團體將在一天內發送數百萬筆交易。隨著BCH壓力測試日即將來臨,BCH的支持者一直在測試同時發送大量小額交易,并建立了可以同時扇出數百個微交易的工具。[2018/8/21]
2.3細節
該次攻擊事件重點在于lend()函數,由于合約https://etherscan.io/address/0x781ad73f140815763d9a4d4752daf9203361d07d#code并未驗證開源,所以我們只能從交易的Debugger中尋找線索。
1、攻擊者通過UniswapV2閃電貸借出6,360,000USDC。
2、用閃電貸借出的6,360,000USDC分成3份,去bHOME中進行重入攻擊2次調用?lend()函數鑄造共8,465,943.180104bHOME。
3、將剛才重入獲得的bHOME拿去銷毀贖回獲得7,336,924.998USDC。
4、歸還閃電貸借出的6,360,000USDC,并支付19,716的手續費,最后將剩余的957,208.998USDC轉入自己的賬戶。
2.3細節
該次攻擊事件重點在于?lend()?函數,由于合約?https://etherscan.io/address/0x781ad73f140815763d9a4d4752daf9203361d07d#code?并未驗證開源,所以我們只能從交易的Debugger中尋找線索。
分析Debugger可以看到下圖是第一次調用函數,接著進行了2次重入。
從重入攻擊中可以找到INPUT中調用函數的字節碼為?0xa6aa57ce。
通過字節簽名可以知道重入攻擊調用的是?lend()?函數。
從Debugger中我們可以發現攻擊合約的地址?0x781ad73f140815763d9a4d4752daf9203361d07d。
通過反編譯合約?0x781ad73f140815763d9a4d4752daf9203361d07d?得到合約偽代碼內容,可以找到?lend()?函數。
我們在反編譯的代碼中可以看到該合約使用的ERC777協議,會查詢?recipient?的回調合約并回調?tokensReceived()?函數用以重入攻擊。
通過分析可以發現?_index?就是傳入的USDC數量。
totalSupply?和?balanceOf?的增量都和?_index?是正比關系,和?stor104?是反比關系,并且這兩個變量的更新發生在重入攻擊之前,每次都會更新。
stor104?記錄的是用戶存入的USDC總量,該變量的更新發生在重入之后,那么在重入的過程中?stor104?的值是不變的,而上面的?totalSupply?是在變大,所以最后return的值也會相應的增大,從而使得攻擊者通過重入攻擊鑄造得到比正常邏輯更多的bHOME代幣。
除了該次攻擊事件,BlockSecTeam還阻斷了后面發生的攻擊并將金額返還給了項目方。
交易hash:0xf3bd801f5a75ec8177af654374f2901b5ad928abcc0a99432fb5a20981e7bbd1
3、總結
此次攻擊事件是由于項目方使用了ERC777協議但沒有對回調合約的安全性進行考慮從而導致了重入攻擊的發生,當項目合約有涉及資產的轉移時,建議使用「檢查-生效-交互」模式來保證邏輯代碼的安全,當然我們也可以使用OpenZeppelin官方提供的ReentrancyGuard修飾器來防止重入攻擊的發生。
尊敬的用戶:?????????BKEX即將上線XBE,詳情如下:上線交易對:XBE/USDT??幣種類型:ERC20充值功能開放時間:已開放交易功能開放時間:2022年3月13日17:00提現功.
1900/1/1 0:00:00原文作者:AnastasiaChernikova原文來源:Cryptoslate本文來自FastDaily。貨幣行業打下了自己的烙印.
1900/1/1 0:00:00巴比特訊,3月11日,基于zkRollup的Layer2隱私跨鏈協議Zecrey完成天使輪融資,SpartanGroup和ShimaCapital領投.
1900/1/1 0:00:00尊敬的XT.COM用戶:因CELO節點升級已完成,XT.COM現已恢復CELO充提業務。給您帶來的不便,請您諒解!Connext推出Chain Abstraction,用戶可在同一界面完成跨鏈D.
1900/1/1 0:00:00尊敬的Tbit用戶: Tbit將于2022年3月11日上線代幣UNI、SAND、PEOPLE,屆時將開通UNI/USDT、SAND/USDT、PEOPLE/USDT交易對.
1900/1/1 0:00:00Plasma是Layer2方案之一,為解決以太坊交易速度和成本問題于2017年首次被提出,也是以太坊社區中第一個試圖解決此類問題的方案.
1900/1/1 0:00:00