以太坊交易所 以太坊交易所
Ctrl+D 以太坊交易所
ads
首頁 > 波場 > Info

CertiK:Soda項目智能合約安全漏洞分析_ETH:2gether

Author:

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

判斷一個人到底屬于什么資產階級,只需要看他的負債率。簡而言之,借的錢越多,代表你越有錢。

所以借錢從某種角度上來講,是屬于富人的游戲。通過借貸手段合理分配資產從而達到收益也是理財的精髓。

相信每個人都好奇過,銀行到底拿我們存的錢去做什么了呢?

從這種角度上來講,銀行屬于最大的欠款方。那如果,突然有人攻破了銀行系統,強制銀行“還款”,然后本來需要還到儲蓄者賬戶里的錢款直接被攻擊者收入囊中,儲蓄者和銀行都將成為最大的受害方。

北京時間9月21日,CertiK安全研究團隊發現soda區塊鏈項目中存在智能合約安全漏洞,該漏洞允許任意外部調用者通過調用智能合約函數,無視受害用戶債務中的代幣數目,強行結算受害用戶的債務,并將通過結算操作所得的收益轉入到自己的收款地址。

Balancer已在Arbitrum上集成Chainlink預言機喂價:金色財經報道,Chainlink在官方社交媒體宣布去中心化交易協議Balancer已在Arbitrum上集成Chainlink喂價功能,Balancer現在可以獲得高質量、防篡改的價格信息,有助于為wstETH、rETH和cbETH提供可靠的價格數據,據悉初始集成將支持wstETH/ETH、rETH/ETH和cbETH/ETH的價格源,后續將拓展更多交易對。[2023/9/7 13:23:25]

soda項目官方現在已經提交修復補丁來修復這個安全漏洞,但由于soda項目采用了TimeLock來將所有的操作延遲48小時,修復補丁會在延遲事件之后生效,因此截止發稿時,該漏洞已完成修復。

漏洞技術分析

去中心化交易所CrownSwap通過Certik安全審計:據悉,去中心化交易所CrownSwap已經通過美國知名安全審計公司Certik代碼審計,CrownSwap首創單邊流動性提供機制,有著創新的經濟激勵模型和成熟的技術團隊,在V2版本上線后,日交易額已經突破1700萬美金。[2021/12/9 13:00:28]

圖一

soda項目中的WETHCalculator.sol智能合約中存在邏輯實現錯誤導致的安全漏洞,圖一中WETHCalculator.sol智能合約第193行,maximumLoad的計算公式錯誤的使用了amount作為基礎值。

因此,在196行滿足require()判斷的檢測條件loanTotal>=maximumLoan可以轉換為:

Spencer Noon:可在YFI價格連續超過比特幣10天后將其拆分:DTC Capital 投資者 Spencer Noon發推提出一個適度的非正式拆分YFI建議:在YFI價格連續超過比特幣10天之后以10:1的比例拆分YFI,拆出ySplit。新的ySplit保證1YFI=1比特幣,這能夠讓社區在同一文化氛圍下集結,并且永遠擁有以績效為導向的目標。

此前,yearn.finance宣布將推出去中心化保險功能,這促使YFI幣價大漲,一度觸及9000美元,這點燃了YFI支持者對價格超過比特幣的信心。(嗶嗶News)[2020/8/18]

loanInfo.amountinterest>=loanInfo.amount*maximumLTV/LTV_BASE

由于maximumLTV/LTV_BASE的值是在0.15-0.95區域中變動,并且interest>=0。因此圖一196行的require()判斷中的檢測條件總是為真。

動態 | 交易所Liquid與區塊鏈安全公司CertiK達成合作:加密貨幣交易所Liquid今天宣布區塊鏈安全公司CertiK達成合作,CertiK將為在該交易所尋求上幣和IEO的團隊提供智能合約審計平臺。(CryptoNinjas)[2020/1/23]

失去了該require()判斷的保護,任何外部調用者可以通過調用以下圖二中SodaBank.sol中104行的collectDebt()函數來將任意loadId的貸款清空。在執行該函數的過程中,圖一中的collectDebt()函數會在圖2第121行被執行,并通過123行和125行代碼將該用戶鎖在soda里面的WETH的其中一部分轉移到該外部調用者的地址msg.sender中:

圖二(參考鏈接2)

通過以上漏洞,任何外部調用者都可以通過調用SodaBank.sol中的collectDebt()并傳入其他用戶的loadId來清空該用戶在soda中的代幣。

官方修復細節

soda官方為修復以上漏洞,設計了新的智能合約WETHCalculatorFixed.sol來替換WETHCalculator.sol。

通過分析可以看到在圖三WETHCalculatorFixed.sol智能合約第979行,maximumLoan的計算公式被正確的計算為loanInfo.lockedAmount?*maximumLTV/LTV_BASE。因此,圖三中第982行require()判斷的檢測條件變更為:

loanInfo.amountinterest>=loanInfo.lockedAmount*maximumLTV/LTV_BASE

圖三

該等式的代碼實現與soda項目中的邏輯設計相符,該等式的真假與用戶的借貸債務數目和被鎖本金數目相關。漏洞完成修復。

soda項目中關于該等式的邏輯設計細節可以從下面的鏈接中進行了解:

https://medium.com/soda-finance/the-soda-revolution-9185fdb99fc1

事件分析總結

該漏洞是由于邏輯設計與代碼實現不符而造成。當前常用的單元測試等測試方法以及自動化的測試工具均無法有效的查找到該種與邏輯相關的漏洞。

因此,CertiK安全團隊有以下安全建議:

安全是區塊鏈項目的立足之本,任何區塊鏈項目在上線前需要請專業第三方安全審計團隊對項目整體代碼進行安全審計。

當前區塊鏈檢測工具對智能合約的檢測均無法檢測其邏輯上出現的漏洞,其結果也沒有可信的數學證明作為支撐。形式化驗證是當前唯一被證明可以產生可信數學證明的軟件驗證方法。采用基于形式化驗證方法的區塊鏈檢測工具來驗證項目中的安全漏洞,應成為每一個項目在上鏈前的必經步驟。

參考鏈接:

圖一:

https://github.com/soda-finance/soda-contracts/blob/master/contracts/calculators/WETHCalculator.sol#L189

圖二:

https://github.com/soda-finance/soda-contracts/blob/master/contracts/components/SodaBank.sol#L104

圖三:

https://github.com/soda-finance/soda-contracts/blob/master/contracts/calculators/WETHCalculatorFixed.sol#L275

Tags:ODASODASODETHYODASODA幣2gether

波場
幣圈總監:比特幣大概率箱體震蕩趨勢 警惕外面環境刺激再次下探_BITG:HedgeTrade

進行交易,必須要有堅定的信念,必須有對市場有足夠的信心,這是投資者在數字幣交易市場中賴以生存的唯一保障。制定了一份投資計劃后,就要嚴格執行,不要被一時漲跌打亂了自己的計劃.

1900/1/1 0:00:00
KTS創世分發活動結果公告_DROP:DROPS價格

親愛的Pool-X用戶,Kratos公測代幣創世分發活動質押輪階段已于2020年9月20日20:00圓滿結束,同時KCS質押輪將在2020/09/2120:00:00進入燃燒加速期.

1900/1/1 0:00:00
Hotbit 定于9月23日上線 SAND (Sandbox)_TBI:slingshot幣圈

尊敬的用戶: Hotbit即將開啟SAND(Sandbox)數字資產服務。 具體安排如下: 充值時間:2020年9月23日15:00交易時間:2020年9月23日17:00(香港時間)交易對:S.

1900/1/1 0:00:00
密歇根州繼續反對電動汽車初創企業_ATO:Ideaology

美國密歇根州的汽車經銷商使用只能被認為是過時和落后的立法,試圖阻止Rivian和Lucid等電動汽車初創企業直接銷售給該州的消費者。除此之外,特斯拉這樣做就可以了.

1900/1/1 0:00:00
深入神秘的大草原,探究神秘的以太坊礦工生活,孤獨而寂寞_LON:3X Long Altcoin Index Token

中國是世界電力資源相對比較豐富的地區,相對廉價的電能吸引了大批的數字貨幣礦工來這里安家落戶,除了云貴川豐富的水電資源之外,內蒙穩定的火電資源同樣吸引著眾多的加密數字貨幣,以太坊作為其中的嬌嬌者.

1900/1/1 0:00:00
Filecoin太空競賽慶典:時空云最終獎勵公布_FILE:OIN

北京時間9月22日早上8時,Filecoin太空競賽慶典開始,正式公布了第一輪太空競賽獎勵以及總結.

1900/1/1 0:00:00
ads