加密貨幣交易所 加密貨幣交易所
Ctrl+D 加密貨幣交易所
ads
首頁 > BNB > Info

CertiK:Soda項目智能合約安全漏洞分析_ODA:Soda Finance

Author:

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

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

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

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

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

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

Balancer 近7日TVL下降近20%至6.76億美元:金色財經報道,據Dellama的數據,Balancer的TVL下降了近20%,從8.4億美元降至6.7647億美元。8月27日在其官方X帳戶上發布的帖子中,Balancer協議透露其緩解程序能夠最大限度地減少該漏洞的影響。不過,建議用戶從受影響的資金池中提取資金,以防止進一步的攻擊。自事件發生以來,該平臺的資金流入僅為3800萬美元。[2023/8/28 13:02:00]

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

漏洞技術分析

圖一

CertiK:ALG代幣跌幅超過94%,需警惕風險:5月30日消息,CertiK Alert發推稱,此前曾在5月17日提醒社區ALG代幣暴跌超過99%。5月19日,新ALG代幣被創建,今天的跌幅超過94%,CertiK提醒社區警惕風險。合約創建者地址為0xb428bf8b0b42d12f8ff38786ff6e226353709223。[2022/5/31 3:51:35]

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

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

Certihash與IBM合作開發企業區塊鏈安全工具套件:4月28日消息,Certihash宣布基于美國國家標準與技術研究院(NIST)網絡安全框架開發Sentinel Node項目,這是其五個區塊鏈支持的企業實用程序套件中的第一個項目。

Certihash選擇IBM Consulting來協助軟件設計和開發。作為該項目的一部分,IBM Consulting將使用經過驗證的網絡設計框架,并利用其在向企業提供去中心化應用程序方面的豐富經驗,致力于提供先進的去中心化網絡安全基礎設施。該應用程序的MVP版本計劃于2022年初秋推出。(Finextra)[2022/4/28 2:37:33]

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

Lancer Capital領投Matou Network為虛假消息:近日有投資者稱名為Matou Network發表其項目獲得Lancer Capital領投,經核實,Lancer Group 及Lancer Capital, Media,EDU等旗下其他業務機構均沒有開展與Matou Network任何形式的合作。特此聲明,望廣大投資人注意風險。[2021/3/23 19:09:29]

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

失去了該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:ODASODSODACERCryptoDash TokenSOD幣Soda FinancePaycer Protocol

BNB
幣圈總監:BTC/ETH 震蕩上行呈企穩需求 反彈乏力欲再次下探筑底_BTC:Wrapped Secret (ERC20)

今日熱點資訊快報: 據LongHash9月22日消息,在MicroStrategy先后購買4.25億美元BTC后,機構的比特幣需求顯著上升.

1900/1/1 0:00:00
庫幣合約即將上線LINK 1-50倍 永續合約_LINK:INK

尊敬的庫幣用戶: 庫幣合約將于2020年09月24日16:00上線Chainlink(LINK)永續合約,支持1-50倍杠桿,以USDT穩定幣結算,敬請期待.

1900/1/1 0:00:00
Kakao談論DeFi,希望建立“數字資產交易生態系統”_AKA:KAK

韓國最大的科技公司之一在由中央政府主辦的論壇上曾大聲疾呼要建立一個生態系統,以“交易”其所謂的“數字資產”,并曾大肆談論DeFi。經營機構.

1900/1/1 0:00:00
Morgan Creek Digital聯合創始人:將在數字藝術領域進行大量投資_比特幣:NALS

9月22日,MorganCreekDigital聯合創始人AnthonyPompliano發文表示,他和JasonWilliams計劃在未來幾個月和幾年里在數字藝術領域進行大量投資.

1900/1/1 0:00:00
UNI令牌是否需要接受SEC的證券執法行動?_UNI:layer幣和uniswap的關系

Uniswap概述 Uniswap是按交易量計算的最大的去中心化交易所,并且是第一個真正在日交易量上真正與某些較大的數字資產交易所競爭的DEX.

1900/1/1 0:00:00
MKF/AUSD、TF/AUSD、LYG /AUSD 9月24日上線大幣網(Dcoin)公告_MKR:goldcoin

親愛的大幣網(Dcoin)用戶:MKF/AUSD、TF/AUSD、LYG/AUSD將于9月24日上線大幣網(Dcoin),具體時間安排如下.

1900/1/1 0:00:00
ads