龐博文 - 智能合約攻擊方法(四)|暗網潛航
Previous Next
今期是最後一期介紹智能合約攻擊方法,希望可藉此加深讀者對智能合約的認識,時常謹記訊息安全的重要性。
第七種智能合約攻擊方法是「智能合約反編譯攻擊」(Smart contract decompilat
ion attack)。雖然普遍我們只能從智能合約得到一個ABI作為連結資料,但目前網絡上有很多不同Solidity反編譯工具,因此智能合約部署後,其內容被編譯及被公開基本上無法倖免,對智能合約是極大隱憂,這也是不法之徒利用Speed Trading大賺特賺的原因。所以我建議在編寫智能合約時,避免使用太複雜及太多功能邏輯,倘不能避免使用複雜邏輯,則應把它分為多個不同合約,以防因太多不同邏輯重複,導致灰色地帶和邏輯矛盾。
第八種手法是「無限鑄造攻擊」(Infinite Forging attack),這攻擊不時源於程序員編寫智能合約時的粗疏及大意。大多智能合約都會使用調用函數mint_approved,用於檢測用戶是否在白名單內及驗證鑄造網站的電子簽署,但當程序員忘記info.from == msg.sender進一步檢查認證時,攻擊者可不斷註冊不在白名單內的新錢包地址,用這些新地址無限鑄造代幣。所以智能合約裏每個調用和呼叫功能都要仔細進行簽名驗證,否則後果堪虞。
其實這些攻擊方法並不罕見,但區塊鏈行業欠缺信息安全相關知識和意識,如果不加以改善,將令投資者失去信心,希望程序員和工程師能多加留意。
TOZ聯合創辦人
龐博文
暗網潛航 - 龐博文 舊文
本文作轉載及備份之用 來源 source: http://hd.stheadline.com