以太坊智能合約中發現47個0 day漏洞
研究人員在以太坊智能合約中發現47個0 day漏洞。
智能合約是保存在區塊鏈上的程序,在滿足預定義的條件后會自動執行。可以實現匿名方在沒有中心化的可信機構的情況下實現可信的交易和協議的執行。因為智能合約的升級比較困難,因此智能合約在部署之前進行源碼審計,確保部署時沒有安全漏洞是非常重要的。
加利福尼亞大學圣塔芭芭拉分校的研究人員研發了一套智能合約一致性漏洞檢測工具——SAILFISH。SAILFISH的工作流程如下所示:
給定智能合約,Sailfish可以將合約轉化為一個依賴圖,獲取智能合約存儲變量和狀態變化指令的控制流和數據流關系,然后使用依賴圖來識別潛在的安全漏洞。通過圖查詢的方式來確定2個執行路徑之間是否是在同一個存儲變量上的。
SAILFISH可以在智能合約中發現狀態一致性漏洞、重入(Reentrancy)和交易順序依賴漏洞。攻擊者利用該漏洞可以修改交易的執行順序或在一個交易內接管控制流。研究人員利用該工具在以太坊智能合約中發現了47個0 day漏洞。
通過對以太坊平臺Etherscan中獲得的89853個智能合約進行測試,Sailfish成功識別出了47個0 day漏洞,部分漏洞利用后甚至可以破壞應用特定的元數據。Sailfish工具的性能和準確率比SECURITY、MYTHRIL、OYENTE、SEREUM 、VANDAL等智能合約分析工具都高。

相關研究成果將在2022年5月舉行的網絡安全頂會IEEE Symposium on Security and Privacy (S&P)上報告展示。論文參見:https://arxiv.org/pdf/2104.08638.pdf
本文翻譯自:https://thehackernews.com/2022/01/sailfish-system-to-find-state.html如若轉載,請注明原文地址。