Cream Finance是DeFi領域的知名去中心化借貸協議。項目方在業內首先推出了白名單機制的Ion Bank借貸機制。這一創新一方面為DeFi借貸提供了更為便捷的工具,另一方面也為黑客攻擊創造了條件。
在今年2月13日,Cream Finance就因為其Ion Bank被黑客利用并輔以閃電貸工具遭到攻擊。時隔半年,在8月30日,Cream Finance再次遭到閃電貸攻擊。
本次攻擊是因為項目中的APM代幣合約與借貸合約的cToken合約不適配造成重入漏洞,被黑客利用。
在本次攻擊中,攻擊者的地址為:0xce1f4b4f17224ec6df16eeb1e3e5321c54ff6ede。
攻擊合約的地址為:0x38c40427efbAAe566407e4CdE2A91947dF0bD22B。
獨家 | 金色財經2月22日礦幣數據播報:金色財經報道,據幣印礦池數據顯示:
主流幣挖礦日收益分別為:BTC(¥1.11/T)、ZEC(¥0.39/T)、LTC(¥21.23/G)、BSV(¥1.08/T)、BCH(¥1.14/T)、DASH(¥0.12/G)。
當前熱門礦機數據及凈收益分別為:阿瓦隆A1066(BTC,¥26.37)、芯動A9+(ZEC,¥32.78)、芯動A4+(LTC,¥6.32)。[2020/2/22]
被攻擊的合約有兩個,合約及地址分別為:
APM token合約:0xff20817765cb7f73d4bde2e66e067e58d11095c2
cToken合約:0xd06527d5e56a3495252a528c4987003b712860ee
獨家 | 金色財經2月17日挖礦收益數據播報:金色財經報道,據印比特數據顯示,按照BTC參考價格68250元、電價0.38元/kWh計算,當前在售主流BTC礦機的市場價格及回本周期為:芯動T3+-57T(全新現貨9300元,293天回本)、神馬M20S-68T(全新現貨12600元,272天回本)、螞蟻S17Pro-56T(全新現貨12500元,336天回本)、阿瓦隆1066-50T(全新現貨6300元,235天回本)。[2020/2/17]
我們先看cToken合約中出現漏洞的代碼片段:
上面的代碼所實現的邏輯是在轉賬完成之后,才修改借貸額度狀態accountBorrows。
獨家 | 金色財經2月17日礦幣數據播報:金色財經報道,據幣印礦池數據顯示:
主流幣挖礦日收益分別為:BTC(¥1.13/T)、ZEC(¥0.49/T)、LTC(¥20.95/G)、BSV(¥1.08/T)、BCH(¥1.16/T)、DASH(¥0.11/G)。
當前熱門礦機數據及凈收益分別為:神馬M20S(BTC,¥46.91)、螞蟻Z11(ZEC,¥40.94)、芯動A4+(LTC,¥6.15)。[2020/2/17]
這是一個典型的競態問題。
代碼中的doTransferOut函數最終會調用標的代幣(underling token)合約的transfer函數,在此之后再對與標的代幣關聯的cToken合約的狀態進行修改。
通常cToken對應的標的代幣合約都是標準的ERC-20代幣合約,這類標準的ERC-20代幣合約中的transfer函數中沒有回調函數。但如果標的代幣不是標準的ERC-20代幣合約,其transfer函數帶有回調函數,則會引發重入漏洞。
獨家 | 三大主流平臺幣行情播報:據非小號數據,截至目前主流平臺幣種概況如下:HT現價3.37美元,24h下跌2.93%,24h成交額1.38億美元,市值為10.46億美元;OKB現價3.25美元,24h下單1.46%,24h成交額1.05億美元,市值為9.37億美元;BNB現價18.07美元,24h下跌1.67%,24h成交額1.47億美元,市值為27.58億美元。[2020/2/4]
本次攻擊恰恰就是因為cToken對應的標的代幣(APM代幣)不是標準的ERC-20代幣。APM代幣合約是個基于ERC-777標準的合約。這個合約中的transfer函數最后會調用_callPostTransferHooks()函數,在這個函數的最后會有一個回調函數IAmpTokensRecipient.tokensReceived。
獨家 | 天風證券李煉炫:市場最終可能將只剩2至3種穩定幣:針對“穩定幣是否會快速過時”一事,金色財經獨家采訪到天風證券李煉炫,他表示目前穩定幣有過熱的跡象,市場上已發行和待發行的穩定幣數量太多了,一個成熟的市場不需要這么多穩定幣,我預計最終大概只會剩下2~3種穩定幣。當然,快熱也不一定代表快衰,穩定幣依然存在一定的市場需求,最主要的就是避險需求,有人說法幣就能避險,但人們將法幣兌換成數字貨幣很不方便,但將穩定幣兌換成其他數字貨幣卻很方便,這種高效快捷對投資方而言尤其重要,形成了穩定幣獨特的需求。因此穩定幣不會過時,但會降溫。[2018/10/25]
下面是與此相關的代碼片段:
在回調函數中,攻擊者可以再次發起交易,而此時cToken還未修改用戶借款的相關狀態,攻擊者卻已經收到借款,可以利用這些借款進行后續的動作。
合約中與cToken修改借款狀態的相關接口已經定義了防重入的鎖 borrowInternal,使用戶無法再次直接從初始的借款合約中借入資金。
borrowInternal的代碼片段如下:
攻擊者也注意到了這一點,于是選擇從一個借貸池借來的cToken,去另一個借貸池借款,以繞開上述防重入鎖的限制。
由于cToken被再次用于借款,因此超過了借款額度。如果攻擊者直接還款則會因為超額借貸而導致第一次借貸交易失敗。因此攻擊者選擇不還款,而是使用另一個地址清算了這個滿足清算條件的cToken,從而完成全部攻擊。
縱觀整個攻擊過程,導致本次攻擊成功的原因有兩個:
1 為AMP代幣添加借貸池時,沒有考慮到AMP代幣與借貸合約的適配性
2 借貸生成的cToken存在競態條件問題,代碼的實現邏輯沒有嚴格遵循狀態修改要放在外部調用之前的默認規范。
在此,Fairyproof Tech提醒所有的項目方:編寫Solidity合約代碼時一定要遵循Solidity合約編寫的安全規范,不能心存僥幸。
在此例中Cream.Finance的代碼分叉復制于Compound,盡管后者已經經過考驗,但依然不能認為其代碼是萬無一失的。
根據我們的經驗,即便是利用一些成熟的、歷經考驗的項目代碼,也不能認為它們是絕對安全的,依然要進行充分的審計。尤其是要弄清楚,這些代碼適用的前提條件和安全假設,以及具體到自己的應用場景中,這些代碼是否還滿足這些前提和假設。
在Fairyproof Tech審計代碼的過程中,對適用前提和安全假設都有嚴格的檢驗標準和審查流程,并不會因為項目代碼分叉自知名項目而忽略對這些安全事項的檢查。
關于Fairyproof Tech:
Fairyproof Tech科技有限公司是一家專注區塊鏈生態安全的公司。Fairyproof Tech科技主要通過“代碼風險檢測+邏輯風險檢測“的一體化綜合方案服務了諸多新興知名項目。公司成立于2021年01月,團隊由一支擁有豐富智能合約編程經驗及網絡安全經驗的團隊創建。
團隊成員參與發起并提交了以太坊領域的多項標準草案,包括ERC-1646、ERC-2569、ERC-2794,其中ERC-2569 被以太坊團隊正式收入。
團隊參與了多項以太坊項目的發起及構建,包括區塊鏈平臺、DAO組織、鏈上數據存儲、去中心化交易所等項目, 并參與了多個項目的安全審計工作,在此基礎上基于團隊豐富的經驗構建了完善的漏洞追蹤及安全防范系統。
作者:
Fairyproof TechCEO 譚粵飛
美國弗吉尼亞理工大學(Virginia Tech, Blacksburg, VA, USA) 工業工程(Industrial Engineering) 碩士(Master)。曾任美國硅谷半導體公司 AIBT Inc(San Jose, CA, USA) 軟件工程師,負責底層控制系統的開發、設備制程的程序實現、算法的設計,并負責與臺積電的全面技術對接和交流。自2011至今,從事嵌入式,互聯網及區塊鏈技術的研究,深圳大學創業學院《區塊鏈概論》課程教師,中山大學區塊鏈與智能中心客座研究員,廣東省金融創新研究會常務理事 。個人擁有4項區塊鏈相關專利、3本出版著作。
Tags:TOKETOKENTOKKENISAS TokenAngel TokenTOKE.NShilling Token
當我們談論加密貨幣行業的周期性時,通常集中在價格走勢的某種周期性上,常有人用其他商品使用的stock-to-flow模型來描述周期。然而,還有一種周期性經常被忽略.
1900/1/1 0:00:00接著上一篇有關互操作性的引介,開始介紹資產橋的最新進展,區塊鏈互操作性和跨鏈交易的相關理論研究在 2015 年左右就開始就被熱烈討論,設計方案也有很多.
1900/1/1 0:00:00NFT已成為近期加密貨幣出圈的代表,吸引著大量品牌名企入場布局。大量企業開始嘗試探索NFT與品牌營銷相結合的方式,比如騰訊試水“NFT”交易平臺“幻核”,網易旗下游戲《永劫無間》IP 也授權發行.
1900/1/1 0:00:00近年來,隨著加密領域里的DeFi生態崛起后,人們更清晰地看到區塊鏈應用落地的價值,于是NFT、元宇宙和Web3概念開始接力呈現出一片“炙手可熱”的喜人形式.
1900/1/1 0:00:00如果將區塊鏈視為互聯網之后的下一代基礎設施技術,那么,參考互聯網的發展軌跡,在區塊鏈之上建立面向廣大不定用戶的應用自然而然成了行業發展的下一步.
1900/1/1 0:00:002021年是一個新的開始,?我們見證了華爾街認可后一年10倍的比特幣,又見證了打遍天下無敵手的Ark?Investment,也見證了被18輪大卡碾死的GME空頭.
1900/1/1 0:00:00