SuperRare $730,000 漏洞事件可輕易避免 — 專家分析
NFT 交易平台 SuperRare 於週一遭遇了一宗 $730,000 的漏洞事件,原因是一個基本的智能合約錯誤,專家表示這個問題本可以通過標準測試流程輕易避免。
根據加密貨幣網絡安全公司 Cyvers 的報告,SuperRare 的質押合約被利用,約有 $731,000 的 RARE 代幣被盜取。這個漏洞源於一個功能,原本是用來限制只有特定地址才能修改 Merkle 根(這是一種關鍵的數據結構,用於確定用戶的質押餘額)。然而,邏輯錯誤使得任何地址都能與該功能互動。
Base 去中心化交易所的首席開發者 0xAw 指出,這個錯誤足夠明顯,甚至可以被 ChatGPT 識別。Cointelegraph 獨立驗證了 OpenAI 的 o3 模型在測試中成功識別了這個缺陷。
“ChatGPT 本來可以發現這個問題,任何一位合格的 Solidity 開發者也應該能發現。基本上,只要有人檢查,就能找到這個問題。”0xAw 在接受 Cointelegraph 訪問時表示。
SuperRare 的聯合創始人喬納森·帕金斯告訴 Cointelegraph,沒有核心協議資金損失,受影響的用戶將會得到賠償。他提到大約有 61 個錢包受到影響。“我們從中吸取了教訓,未來的變更將經過更嚴格的審查流程,”他說。
漏洞的成因
該智能合約在檢查是否允許更改 Merkle 根時,檢查的邏輯是如果互動地址不是特定地址或合約擁有者,則允許更改。這與原本預期的邏輯相反,導致任何人都可以從合約中提取質押的 RARE 代幣。
來自加密保險公司 Nexus Mutual 的一位高級工程師告訴 Cointelegraph:“單元測試本可以捕捉到這個錯誤。” AMLBot 的區塊鏈架構師兼首席技術官邁克·蒂烏廷表示:“這是開發者的一個愚蠢錯誤,沒有被測試覆蓋(這就是為什麼全面覆蓋很重要)。”
AMLBot 的首席執行官斯拉瓦·德姆丘克也同樣得出結論,指出“沒有進行廣泛的測試(或漏洞獎勵計劃)來在部署前發現這個問題。”他強調測試的重要性,並指出這是一個“經典例子,說明智能合約邏輯必須經過嚴格審計。”他補充道:“這提醒我們,在去中心化系統中,即使是一個字符的錯誤也可能帶來嚴重後果。”
雖然帕金斯堅持認為合約已經過審計並進行了單元測試,但他承認這個錯誤是在過程的後期引入的,並未涵蓋在最終的測試場景中:“這是一個痛苦的提醒,說明在複雜系統中,即使是微小的變更也可能帶來意想不到的後果。”
單元測試的重要性
單元測試是小型自動化測試,用來檢查程序的各個部分(通常是函數或方法)是否按預期工作。每個測試針對特定行為或輸出,根據給定的輸入,幫助及早捕捉錯誤。在這種情況下,驗證地址是否可以調用修改 Merkle 根的功能的測試本應失敗。
“由於疏忽或測試不足,結果是相同的:一個可避免的漏洞造成了巨大的損失,”德姆丘克告訴 Cointelegraph。
0xAw 也表示,“問題在於,顯然完全缺乏測試。”他補充道:“這段代碼在正常情況下根本無法正常運行,並且在正確的地方推進時會失敗。”
帕金斯告訴 Cointelegraph,未來 SuperRare 將引入新的工作流程,要求對任何後審計的變更進行重新審計,無論變更多麼微小。
大多數漏洞都是疏忽造成的
0xAw 表示,這個錯誤是“正常的人為錯誤”。他認為,真正的“重大錯誤”在於它“進入了生產環境並且保持不變。”
他強調,大多數嚴重漏洞源於“非常愚蠢且容易避免的錯誤。”不過,他也承認“這些錯誤通常比這個更難察覺。”
Hacken 的事件響應負責人耶霍爾·魯迪齊亞同意,徹底的測試覆蓋本可以捕捉到這個缺陷。“如果審查這個功能,這是一個相當明顯的錯誤,”他說。
這起事件再次提醒我們,無論技術多麼先進,基本的測試和審計仍然是保障系統安全的基石。對於區塊鏈和加密貨幣行業來說,這是一個需要深思的教訓。
以上文章由特價GPT API KEY所翻譯及撰寫。而圖片則由FLUX根據內容自動生成。