自DeFi興起以來,在短短9個月時間內迅速風靡全球。BSC憑借低廉的gas和高速壯大的生態應用建立起了日漸完整的生態系統,成功成為了領先的公鏈平臺之一。
數據來源:https://bscscan.com/
如今每天,都有數百個項目在BSC上進行數千萬的交易。
圖片來自https://twitter.com/BinanceChain/status/1395060714390315008
但是鏈上交易的熱度將另外一個隱患帶到了我們面前——安全隱患。
目前可被黑客所利用的不同級別漏洞越來越多。
CertiK安全專家將這些漏洞分為四大類,下文將為各位讀者帶來DeFi相關安全風險講解。
智能合約中,某些功能受到函數修改器(modifier)的保護——只有特定的操作者才能調用特定的功能。
在大多數情況下,這些功能是用于修改合約配置或管理智能合約中持有的資金。因此如果攻擊者破壞了管理密鑰,他們可以完全控制智能合約,調用該功能從而竊取用戶資產。
?密鑰泄露的原因
第一種可能性是計算機木馬程序。?
攻擊者可以使用木馬程序來竊取存儲在計算機上的私鑰,或者進行網絡釣魚攻擊,以誘騙用戶將其私鑰發送給攻擊者。
借貸協議Euler Finance:團隊目前正在與安全專業人員和執法部門合作:3月13日消息,借貸協議Euler Finance發推表示:“我們的團隊目前正在與安全專業人員和執法部門合作。我們將在獲得進一步信息后立即發布。”
今日早些時候,借貸協議Euler Finance遭到攻擊,損失已達1.97億美元。[2023/3/13 13:00:53]
對DeFi合約來說,往往是幾個人共享一個管理密鑰。
這就意味著如果有內部人員心懷不軌,那么他可以調用管理功能將項目的代幣轉移到自己的錢包地址中。
這里有兩個案例:2021年3月5日,PAIDNetwork因其私鑰管理不當而遭受“鑄幣”攻擊,經推測攻擊者很可能是通過網絡釣魚攻擊從管理員的計算機中竊取了密鑰。
PAID代幣合約位于可升級代理服務器之后,這意味著代幣合約可以被代理服務器的所有者替換。
這類惡意代碼有鑄幣功能,攻擊者銷毀6000萬個PAID代幣,然后為自己鑄造了5900萬枚代幣。
當時2,501,203美元的PAID代幣在Uniswap上被出售,代幣價格也從2.8美元暴跌為0.3美元。
2021年4月19日,EasyFi創始人聲稱該黑客為獲取管理密鑰對管理員進行了針對性的攻擊。298萬個EASY代幣被從EasyFi官方錢包中轉移到了幾個未知錢包中。
比特幣安全專家:有人出價10 BTC讓我接受采訪,證明HEX不是騙局:比特幣安全專家Andreas Antonopoulos最近表示,有人出價10 BTC,讓他做一個關于HEX的采訪,以證明它不是一個騙局。
據此前報道,多家行業媒體及分析師已提醒投資者注意,HEX疑為欺詐項目。[2020/8/16]
因此安全存儲私鑰對于項目安全的重要性可見一斑,管理者切忌將未加密的管理員密鑰存儲在電腦設備上,或將其無防備的放置于Metamask熱錢包中。
CertiK安全專家建議管理者使用硬件錢包創建賬戶。
如果多人團隊的每位管理者均使用硬件錢包,一旦其中一位管理者試圖進行特權交易,也需獲取大部分成員的簽署同意,這樣可以防止攻擊者僅獲取一個密鑰訪問權時就可以調用所有特權功能。
代幣合約應盡可能避免鑄造新代幣的功能。如果需要鑄造新代幣,應使用DAO合約或時間鎖合約,而非EOA帳戶。
編碼錯誤
大家一提到DeFi漏洞,往往會認為漏洞必然是很復雜的,其實并非總是如此。
有時一個小小的編碼錯誤,就可以導致數百上千萬美元的資產一朝蒸發。
一些常見的編碼錯誤示例:
1.函數權限,修改器(modifier)缺失
聲音 | 比特幣安全專家:Libra肯定無法為沒有銀行賬戶的人提供銀行服務:雖然一些人仍對Libra的推出持積極態度,但許多人認為Libra不具備作為加密貨幣推出的條件。瑞士總統、瑞士聯邦委員會成員Ueli Maurer最近表示Libra“以目前的形式失敗了”,該項目必須重新修改才能獲得批準。 Ripple首席執行官Brad Garlinghouse也認為Libra不會在2023年前推出。《精通比特幣》作者、比特幣安全專家Andreas Antonopoulos持相同觀點,最近談到Libra的推出,并分享對Libra引入金融包容性和幫助無銀行賬戶的人的看法。“系統開放了嗎?它對訪問和參與開放嗎?它是無國界的嗎?它對來源-目的地的目的和金額是否中立?這是對審查制度的抵制嗎?它是不變的嗎?這是可以公開核實的嗎?”根據他的說法,Libra在所有這些特征上都沒有通過測試。一旦實行集中管理,Libra將不得不遵守規則,結果將無法完成其承諾的事——為沒有銀行賬戶的人提供銀行服務。如果成功的定義是為沒有銀行賬戶的人提供銀行服務并惠及每個人,那么Libra注定會失敗。Libra不能以白皮書中描述的形式推出,并且肯定不會在每個國家啟動。(AMBCrypto)[2020/2/24]
2.錯別字
3.數字位數不正確
4.變量值分配缺失/不正確
聲音 | 比特幣安全專家:加密市場的波動性源自小規模市場和有限流動性:據cointelegraph消息,比特幣安全專家Andreas Antonopoulos最近在接受采訪時表示,加密市場的波動性源于目前加密市場的小規模和有限的流動性。當它向下波動時,會產生恐慌的情緒和損失。當它呈現向上波動時,會導致FOMO(追漲)跡象。而投資者對技術層面內容知之甚少,不過也有一些投資者會在整個周期中嘗試更多地了解該技術,為下一周期的用戶打造更堅實的基礎。周期性的繁榮-蕭條模式是該技術行為的一部分,對于沒有經驗的投資者來說是危險的,但它也提供了開發基礎設施和技術的每個階段所需的資金。[2019/6/5]
有一個非常典型的例子就是UraniumFinance曾發生的受攻擊事件:黑客攻擊了UraniumFinance未受審計的合約,項目因此損失了5700萬美元。
管理員在交換前后比較池中兩個代幣余額的乘積時使用了不一致的乘數,這使得攻擊者可以僅用1Wei就從池中換出大量代幣。
Uraniumfinance的代碼:
正確的代碼:
另一個例子是ValueDeFi,被黑客攻擊導致損失了1000萬美元。
此次事件發生的原因在于ValueDeFi合約中的初始化函數缺少“initialized=true”,這意味著任何人都可以將資金池初始化并將自己設置為管理員。
聲音 | 比特幣安全專家:美財政部將數字貨幣錢包地址列入黑名單的做法是可笑的:據Bitcoin Exchange Guide消息,針對此前美國財政部將特定地址列入黑名單,比特幣安全專家Andreas Antonopoulos認為這一想法是可笑的。他表示,如果用戶認為有必要,完全可以生成新地址,計算機每秒能產生數百萬個地址。美國財政部外國資產控制辦公室(OFAC)的決定不會對BTC網絡產生任何影響。開始禁止并將特定地址列入黑名單的決定表明,美國希望將其權力強加于加密市場。當前政府制裁力度較小,但之后肯定會加大。因為這種打擊不可能通過技術手段取勝,因此政府將嘗試手段,對任何不敢執行黑名單的受監管實體施加壓力。
Antonopoulos強調,雖然未來可能不止兩個地址,而是20萬或上百萬的地址被阻止,但這一措施并不能實現其最終目標。政府和監管機構施加的這些規定并不會阻止恐怖主義融資或犯罪活動。事實上,這只會增加權力和對公民的權威,但卻無法保護他們。[2019/1/18]
2021年5月5日,攻擊者將資金池初始化,將自己設置為管理員,然后使用“governanceRecoverUnsupported()”函數耗盡了已抵押的代幣。
ValueDeFi中的易受攻擊的代碼:
解決方法:
只需通過適當的同行評審、單元測試和安全審計,這一類型的代碼錯誤往往極易避免。
閃電貸和價格操縱
閃電貸可以在無需提供任何抵押的情況下進行貸款,當然所有操作必須在一個交易區塊內完成。
開發人員可以從Aave或dYdX等協議中借貸,條件是在交易結束之前將流動資金返還到資金池中。
如果資金未能及時返回,則交易將被撤回,從而確保儲備池的安全。
閃電貸的一般運行步驟如下:
1.使用閃電貸借入大量代幣A
2.在DEX上將代幣A交換為代幣B
3.攻擊一個依賴A/B價格的DeFi項目
4.償還閃電貸
上周PancakeBunny遭受了閃電貸攻擊,攻擊者竊取了11.4萬BNB和69.7萬Bunny。
攻擊者利用閃電貸操縱PancakeSwapUSDT-BNBV1池的價格,導致大量的BNB流入BNB-Bunny池,這使得該合約能夠以虛高的BNB/Bunny的價格鑄造Bunny。
PancakeBunny使用了以下函數來計算Bunny的價格:
大量的BNB流入BNB-Bunny池造成變量“reserve0”變得更大,且價格計算公式存在缺陷,因此導致攻擊者非法獲取了69.7萬Bunny。
閃電貸攻擊的受害者很多,包括DeFi領域的一些知名項目:PancakeBunny,HarvestFinance,Yearn,ValueDeFi,AKROPOLIS,CheeseBank,XToken,bZx等等。
從這些實例中不難看出——項目方應著重預防價格被閃電貸惡意操縱。
為了防止這種情況的發生,CertiK安全專家建議①使用時間加權平均價格,因為攻擊者只能在一個區塊中操縱價格,因此平均價格并不會被影響,從而規避相關惡意操縱,②或使用可靠的鏈上價格預言系統,例如Chainlink。
用戶并不與其他第三方協議進行交互。
在PancakeSwap中,用戶可以通過提供流動性以獲得獎勵代幣或將一個代幣交換為另一個代幣。
但其他項目的運作方式并不同。
比如YearnFinance是收集用戶資金并將其放入第三方合約,通過投資用戶代幣以獲取收益的。
第三種情況則是一些項目會從其他項目“借用”代碼。
后兩種情況下,如果第三方代碼的來源安全風險較大,那么所有使用該代碼的項目也會受到攻擊。
假如項目的開發人員不熟悉他們使用的第三方代碼,一旦代碼存在漏洞,所導致的后果將是災難性的。
2021年5月8日,ValueDeFivSwapAMM的非50/50池被攻擊,損失總額約為1100萬美元。
為了實現非50/50池,ValueDeFi從屬于Bancor協議的“BancorFormula.sol”中復制了“power()”函數。
在power()函數的用法說明中,已寫明該函數并不支持“_baseN<_baseD”的情況。
但ValueDeFi并未注意到此注釋,因此攻擊者成功利用此漏洞,通過往函數中傳入特定的參數來用少量的代幣A交換代幣B。
ValueDeFi的代碼:
DeFi領域中還有許多其他類似的情況。
2021年5月8日,一名攻擊者通過利用集成在RariCapitalV2中的AlphaHomoraV1的ibETH池Bank合約的功能,從RariCapitalEthereumPool中消耗了大約2600個ETH。
BearnFinance使用BUSD的提款金額在其“BvaultsStrategy”合約中提取ibBUSD,從而讓攻擊者輕易轉移了池中10,859,319枚BUSD。
這類問題較難檢測,因此項目管理者應謹慎與任何第三方協議進行交互,更不應盲目地復制并部署開發人員不了解的代碼。
CertiK安全專家建議:
1.開發人員在集成第三方協議并將部署到生產運行過程中之前,應充分了解其及其分支項目的運行情況。
2.開發人員應在項目上線前,先將其部署在測試網上進行測試并及時檢查交易記錄中的異常情況。
總體而言,盡管項目難以保證100%的安全,但是以下幾點可以盡可能提高項目的安全性:
1.安全存儲管理員密鑰
2.避免簡單的編碼錯誤
3.參考可靠的鏈上價格
4.進行安全審計并做好審計前的準備
對于終端用戶來說,在使用個人資產與項目進行交互之前,有時很難找到有關項目的詳細信息。
為了方便用戶獲取項目的安全性信息,CertiK開發了全球首個公開透明展示區塊鏈項目安全數據的安全排行榜。
通過查看公開的安全數據,終端用戶可以實時了解項目安全情況。
https://www.certik.org
除以上防范方式以外,所有項目均應意識到安全審計的重要性。
那么審計前為了充分利用發揮安全審計的作用,應該如何準備資料和代碼?
以下有幾個小tips,詳情可以訪問:
1.定義審計的確切范圍并設定審計目標
2.制作全面的審計代碼文檔
3.確保良好的代碼質量
4.審計前測試代碼
5.凍結代碼并在審核之前指定代碼的commithash
本文主要內容來自幣安智能鏈聯合CertiK安全專家共同主持的視頻直播。
尊敬的用戶:????????????BKEXGlobal即將上線DOG,詳情如下:上線交易對:DOG/USDT?幣種類型:HECO充值功能開放時間:2021年5月29日14:00交易功能開放時間.
1900/1/1 0:00:001.觀點:以太坊超過比特幣是不可避免的雖然對于某些人來說,似乎不可能設想比特幣讓出寶座的情況,但事實是,在任何公鏈的三個最重要的基本鏈上指標上,已經可以說以太坊超越了比特幣.
1900/1/1 0:00:00原文標題:《詐騙、洗錢、價格操縱……虛擬貨幣怎么就成了“犯罪新寵”?》在“幣圈”,從“欣喜若狂”到“哀鴻遍野”可以是分分鐘的事.
1900/1/1 0:00:00為慶祝UnoRe(UNO)在庫幣上線,UnoRe團隊將聯合庫幣發放$50,000等值UNO豪華獎池.
1900/1/1 0:00:00鏈聞消息,以太坊智能合約自動執行工具GelatoNetwork宣布將自動化基礎設施引入基于DAG的智能合約平臺Fantom,為智能合約自動化提供開發人員可以信任和依賴的可靠記錄.
1900/1/1 0:00:00狂人本著負責,專注,誠懇的態度用心寫每一篇分析文章,特點鮮明,不做作,不浮夸!本內容中的信息及數據來源于公開可獲得資料,力求準確可靠,但對信息的準確性及完整性不做任何保證,本內容不構成投資建議.
1900/1/1 0:00:00