前言
2022年1月18日,知道創宇區塊鏈安全實驗室監測到BSC上Crosswise遭遇攻擊,此次攻擊導致協議損失87.9萬美元。
攻擊者僅用1個CRSStoken便獲取CrosswiseMasterChef池中價值87.9萬美元的692K個CRSS。實驗室將對本次事件深入跟蹤并進行分析。
基礎信息
攻擊交易哈希:
0xd02e444d0ef7ff063e3c2cecceba67eae832acf3f9cf817733af9139145f479b
攻擊者地址:
0x748346113B6d61870Aa0961C6D3FB38742fc5089
攻擊合約:
0x530B338261F8686e49403D1b5264E7a1E169F06b
安全機構:Cronos上Crolend項目疑似rugpull,網站已關閉:12月2日消息,區塊鏈安全機構PeckShield Alert發推表示,區塊鏈平臺Cronos上Crolend項目疑似rugpull,Crolend_io已經刪除其社交賬戶/群組,并且網站已關閉。被盜資金位于0xb9aA aE11ba22e37B597b0b7d90092F85d6Cd8e1e。[2022/12/2 21:18:37]
MasterChef:
0x70873211CB64c1D4EC027Ea63A399A7d07c4085B
CrosswiseRouter:
0x8B6e0Aa1E9363765Ea106fa42Fc665C691443b63
CRSS:
MicroStrategy CEO:如果不持有比特幣四年就不是真正的投資者:金色財經報道, MicroStrategy首席執行官稱,如果你不打算持有比特幣超過四年,你就不是真正的投資者。[2022/6/5 4:03:43]
0x99FEFBC5cA74cc740395D65D384EDD52Cb3088Bb
攻擊核心
此次攻擊的核心在于,Crosswise中的MasterChef合約Owner地址設置即transferOwnership函數能夠被攻擊者繞過,使得攻擊者能夠成為新的Owner并對MasterChef池子進行攻擊利用。我們將本次攻擊過程分為兩個階段進行分析:獲取Owner權限攻擊和MasterChef池攻擊。
獲取Owner權限攻擊
1.由于在MasterChef合約中setTrustedForwarder函數為公開可見性且未作權限設置,攻擊者先將自己的地址設置為TrustedForwarde地址。
跨鏈流動性聚合器Router Protocol推出跨鏈SDK Cross Talk的Alpha版:5月20日消息,跨鏈流動性聚合器Router Protocol宣布推出跨鏈SDK Cross Talk的Alpha版本,該SDK能夠實現不同鏈之間的通用消息和狀態轉換。Cross Talk是一個即插即用庫,允許開發者將其智能合約能夠與部署在不同鏈上的智能合約進行通信,用例包括構建原生跨鏈應用、將單鏈DApp擴展到多鏈、啟動多鏈NFT,在平臺上集成跨鏈橋等。[2022/5/11 3:05:07]
2.Crosswisefi項目方對MasterChef的_msgSender()函數并未采取openzepplin的標準寫法且存在漏洞,導致攻擊者能夠通過構造惡意的calldata實現繞過onlyOwner限制完成合約Owner的獲取。
美國交易所CrossTower在印度分公司推出加密交易平臺:金色財經報道,CrossTower 已經雇傭了 35 人來運營其在印度的新部門,并計劃在未來六到九個月內將員工人數增加到 100 人。
盡管監管機構對印度加密貨幣的未來持續存在不確定性,但此舉仍是存在的。政府計劃在本屆議會會議上提出一項法案,該法案可能會在該國徹底禁止加密貨幣。然而,這尚未發生,政府的加密計劃仍然不確定。(路透社)[2021/9/7 23:05:52]
下圖為攻擊者繞過onlyOwner權限構造的惡意payload:
分析公司Coinfirm與CRO主網Crypto.org Chain達成合作:官方消息,分析公司Coinfirm與CRO主網Crypto.org Chain達成合作,為Crypto.com生態的支付、DeFi和NFT,提供AML/CFT RegTech和分析。[2021/4/9 20:02:18]
MasterChef池攻擊
1.攻擊者在CrosswiseRouter中用0.01個WBNB兌換出3.71個CRSS
2.攻擊者調用deposit將1個CRSS質押到CrosswiseMasterChef
3.由于上一階段攻擊者已經獲取到MasterChef的Owner權限,此時攻擊者調用set函數對MasterChef的pid為0的池子重新部署了一個未開源的策略合約:0xccddce9f0e241a5ea0e76465c59e9f0c41727003
4.攻擊者調用MasterChef的withdraw函數從池子中獲取692K的CRSS
5.最后攻擊者把692K的CRSS通過CrosswiseRouter合約swap兌換出547個BNB完成攻擊,獲利超87.9萬美元。
策略合約
猜想
由于攻擊者部署的策略合約并未開源,我們只能反向推導猜想策略合約的主要邏輯:
1.根據下圖第18行代碼可以推斷出合約中lockedAmount應該是一個極大值才能支撐攻擊者692k的代幣轉出;又根據第7-11行可以推導出攻擊者部署的strategy合約的LockeTotal()函數返回值極大、sharesTotal()返回值極小。
2.在上圖代碼23行當_amount>0時,會先計算出user的shareRemoved,然后在執行user.amount=user.amount.sub(shareRemoved);,此時若shareRemoved大于user.amount則代碼執行不會通過,可以推導出26行的shareRemoved值很小,又shareRemoved是調用攻擊者部署strategy合約中withdraw獲取,所以此時的strategy合約中withdraw的返回值會很小,小于之前質押的1個CRSS數量;再結合鏈上數據可推導攻擊者部署strategy合約中的withdraw調用返回值為0。
反編譯
為了證實我們的猜想是否正確,我們將攻擊者部署的策略合約進行反編譯。
反編譯后我們可以發現存在一個極大值和一個較小值的常量,即對應猜想1中LockeTotal和sharesTotal值,猜想1正確。
對于猜想2,經過反編譯后我們可以看到策略合約的withdraw最后的返回值為0,猜想2正確
總結
這次攻擊產生的主要原因是項目方使用錯誤的方法去獲取msgSender,導致合約的Owner權限更改能被繞過。知道創宇區塊鏈安全實驗室在此提醒,任何有關合約權限問題的操作都需要慎重考慮,合約審計、風控措施、應急計劃等都有必要切實落實。
這是科學代幣工程博客系列的第2部分。如果你還沒有讀過第1部分,點擊這里DAOrayaki|科學領域的代幣工程所解決的問題.
1900/1/1 0:00:00俄羅斯最大的社交網絡VKontakte的技術總監AlexanderTobol在接受俄媒采訪時表示,計劃在其運營中集成NFT和區塊鏈技術.
1900/1/1 0:00:00Jan.2022,Lesley@footprint.networkDataSource:FootprintAnalytics2021年,web3概念被討論得越來越多.
1900/1/1 0:00:00一根大陽線千軍萬馬來相見,幾根大陽線韭菜追高不聽勸。最近大火的MovetoEarn項目STEPN再次破圈,其發布的治理代幣GMT暴漲200多倍且交易量超越BTC大餅.
1900/1/1 0:00:002022年3月10日WorldMobile將部署第二個飛艇,來連接非洲各地尚未連接網絡的地區,每個飛艇的覆蓋范圍可達75公里.
1900/1/1 0:00:00據最新消息,權威媒體《福布斯》日前發布文章《AreRealEconomiesReadyForDAOs?》,文章對TRONDAO大加贊賞,并稱TRONDAO是世界上最大的DAO.
1900/1/1 0:00:00