瘋狂“出圈”和刷屏之後Web3.0熱潮下的NFT安全如何保證?

最近一段時間,Web3.0不斷“刷屏”,NFT瘋狂“出圈”,有人擼空投,有人搞收藏,有人說,NFT的爆炸性增長正在推動Web 3.0的發展。

Web1.0 到Web2.0 實現了內容的消費者向內容生產者的轉變,其本質是進行了一次從物理世界向網絡世界的平行時空的大遷徙,當我們暢談Web3.0 的發展時,不得不進一步提到關於區塊鏈,因為區塊鏈的去中心化、去信任和防篡改的特性很好的對標了Web3.0 的目標——創造新一代互聯網,讓每個用戶掌握自己的數據、身份和命運。

Web3.0基於區塊鏈而存在,承諾將隱私和數字身份還給用戶,同時由於NFT等的應用,實現了新的互動水平。但我們更需要的是Web3.0熱潮下NFT的諸多“危險”與“隱患”,最近NFT領域隨處可見的“黑客事件”也證明了我們需要將“安全”放在第一位。

近期發生了哪些NFT合約安全事件?

4月21日,NBA的NFT項目合約遭受攻擊,攻擊者利用了簽名未驗證,在合約代碼中,vData memory參數info在傳入函數中未進行驗證導致簽名可複用,攻擊者可以通過使用其他人的簽名來進行Mint,導致項目方被瘋狂“薅羊毛”。

而在4月23日,NFT項目Akutar惊現低級漏洞,它的AkuAuction合約由於智能合約本身漏洞,導致11539ETH(價值約3400萬美元)被鎖死在合約中。經成都鏈安技術團隊分析,發現Akutar項目的智能合約包含2個漏洞:

第一個合約漏洞在processRefunds中,設計者根據refundProgress計數器進行循環退款,而如果有攻擊者此時在fallback中進行revert則會導致後面的人都無法進行退款,這個漏洞被人在鏈上證明但沒有進行攻擊利用。

第二個漏洞在claimProjectFunds中,require語句(refundProgress > = totalBids)的totalBids變量應該是bidIndex,這個漏洞使得該判斷條件永遠失敗,導致無法執行後續的提款操作。最終,導致項目方11539ETH(價值約3400萬美元)被鎖定無法提取。

可見關注NFT合約風險,變得越來越緊迫。

NFT合約問題包括哪些?

根據NFTSCAN數據顯示,目前全球NFT項目已接近七萬個,而且數據還在持續增長中。

數據來源:NFTSCAN(統計時間:2022.4.25 18:00)

NFT作為Web3.0的底座,它的安全問題對行業發展同樣重要,為了護航Web3.0的安全生態,成都鏈安通過智能合約形式化驗證工具鏈必驗對上千個NFT項目進行漏洞掃描,發現NFT常見的合約問題還包括以下幾類:

業務邏輯相關問題:

此類問題可能直接導致合約的業務邏輯出錯。

漏洞描述:chapterAuctionMinted的值永遠為初始值,但是在此處使用的判斷條件中,使用了該值進行條件檢查。如果在開發期間使用【鏈必驗】掃描後,開發者可根據掃描結果判斷是否是相關邏輯缺失(可能導致NFT超量發放等業務邏輯安全問題),亦或是冗餘代碼。

漏洞描述:未檢測返回值。在NFT項目中,經常存在有償鑄幣的功能,調用者需要將作為鑄幣手續費的ERC20代幣發送到NFT鑄幣合約中,然後NFT鑄幣合約為其鑄造對應數量的NFT代幣。但是部分ERC20合約存在假充值的問題,即轉賬失敗不拋出異常而是返回false,這樣就會導致一個問題,攻擊者可以利用這點,在未支付手續費的情況下,鑄造任意數量的NFT。開發者應根據VaaS掃描結果的建議,檢查transferFrom操作的返回值或者使用safeTransferFrom函數進行ERC20代幣轉賬。

代碼規範相關問題

此類問題可能不會直接造成業務邏輯出錯,但是會影響代碼的可讀性,造成合約調用時有多餘的gas消耗等。同時不規範的代碼也容易導致編寫時邏輯混亂,有隱藏的邏輯錯誤的概率更高。

漏洞描述:此處循環的結束條件為curr>=0,而curr為uint導致curr>=0恆滿足。此處會導致循環無法正常結束。 【鏈必驗】在掃描中會對這類結果為定值的條件進行告警,用戶可以通過提示確認此處邏輯,對條件進行刪除或修改。

漏洞描述:此處event中將string類型的數據標記了indexed,該寫法會導致在事件結果中無法直接獲得對應的string結果。建議用戶參考【鏈必驗】的提示,僅使用indexed修飾固定長度的變量。

研究發現,大多數的NFT合約都沒有進行過專業的安全審計,這就存在很大的安全隱患,容易導致攻擊事件的發生,造成資產的損失。所以NFT智能合約開發者應具備基本的安全開發意識,了解智能合約開發應注意的安全問題;此外,在合約設計和實現時,注意代碼實現的正確性。我們建議開發完成後,可使用【鏈必驗】對項目進行安全檢測。項目上線前,可選擇安全審計,規避安全風險。

安全,是區塊鏈技術能夠得以長足發展的重要保證,守護Web3.0的安全也變得愈發重要。今天我們所講的業務邏輯相關問題和代碼規範性相關問題,也是智能合約裡面常見的問題類型 ,後續我們將繼續推出NFT相關安全文章,請大家持續關注我們

Total
0
Shares
Related Posts