網頁

建議加入我們的Facebook, 如果遇到特別情況,我們可以有一個平台通知大家。
文章漏咗/建議:按此通知

2022年5月16日 星期一

暗網潛航 - 龐博文 2022年5月16日

暗網潛航 - 龐博文 2022年5月16日


龐博文 - 智能合約攻擊方法(二)|暗網潛航
Previous Next

市場上愈來愈多NFT項目,有部份智能合約在編寫時因缺乏信息安全意識,令攻擊者有機可乘。作為信息安全專家,今期繼續分享智能合約攻擊方法,與大家集思廣益。

「以太坊短地址攻擊」(Ethereum Sho

rt Address attack) 是一直以來存在於「以太坊虛擬機」(EVM)內的弱點。智能合約使用ABI 定義發出或接收代幣地址時,可以使用短地址代替原本贅長的地址,但這功能省略的地址編碼,在EVM處理地址時會自動拋入「00」作為補充,並不再就地址進行校驗。如果攻擊者使用類似SQL Injection的攻擊方法,便可自行注入編碼構成「上下溢」攻擊,導致錢包接收小量代幣時,地址不斷被改動數值回傳,令錢包所有代幣被強制提取,所以編寫時應避免使用短地址。

「Delegatecall attack, Default Visibilities attack」是另一種攻擊方法。編寫智能合約時,程序員常用到call、delegatecall和callcode三種函數簇,進行跨合約的函數調用功能。然而程序員往往忘記限制跨合約的數值變量,因此當攻擊者將合約調用Delegation,強制變換pwn數值時,便會觸發Delegation的Fallback功能。

最後攻擊者可以利用被調用的合約,覆寫其他合約的儲存變量值,達至在合約群內執行任意代碼寫入任何功能。所以限制跨合約的函數數值變量,才可避免自己的合約變成襲擊其他合約的幫兇。如果攻擊者在其中一張合約裏執行suicide或self-destruct操作,更有可能強制凍結其他合約的轉帳功能(Freezing ether attack)。

TOZ聯合創辦人
龐博文
暗網潛航 - 龐博文 舊文
本文作轉載及備份之用 來源 source: http://hd.stheadline.com