一、背景
上篇我們介紹了幾個智能合約的主要缺失,本篇要來延續智能合約審計此一主題分享一些其他類型的缺失。對於部分困擾我們生活的蚊蟲,可能曾經聽過可以使用塑膠瓶加上蜂蜜自製捕蚊器抓捕之。在資訊工程的領域中,對於層出不窮的駭客攻擊,可以設計用以偵測、抵禦資安攻擊的陷阱,其原理類似於前述的誘捕昆蟲方法,俗稱為蜜罐(Honeypot)。在智能合約中,要如何進行結合?智能合約蜜罐(Smart Contract Honeypot)又是甚麼呢?智能合約審計還有哪些其他重要的議題?
二、焦點檢視
蜜罐並未提供有價值的服務,有些蜜罐甚至有監控系統,用以監視駭客入侵後做了哪些事,另有些蜜罐能拖延駭客攻擊的速度,故有些駭客一旦發現有蜜罐後會選擇退出。更有些防毒軟體公司藉由此法監視或是獲取網際網絡上的各種病毒樣本,進行研究或破解後找到防範病毒之辦法。蜜罐通常擁有發現駭客攻擊、產生警告訊息、記錄過程、協助調查等功能。
一般智能合約審計涵蓋範圍有溢出審計、條件競爭審計、權限控制審計(又分為權限漏洞審計與權限過大審計)、安全設計審計、拒絕服務審計、Gas優化審計、設計邏輯審計、假充值漏洞審計等。其中以安全設計審計為例,又有模組使用安全審計、編譯器版本安全審計、編碼地址安全審計、函數使用安全審計、函數返回值安全審計、調用安全審計等。本文延續前文,再舉礦工特權隱患漏洞為例。此漏洞主要是跟時間戳有關,由於時間戳代表交易的時間,應用上可以影響基於時間會變更狀態的程式碼,也可鎖定資金。假設我們用以太坊(Ethereum)為例,新區塊(Block)的時間戳比上一個區塊(Block)的時間戳大,且相差小於900秒,則新區塊的時間戳即是被承認的。所以如果礦工調整時間戳,並在智能合約中錯誤的使用,將造成礦工特權漏洞。曾經有個智能合約遊戲,其規定會在每一輪遊戲內向最後一位加入遊戲的玩家(需加入至少一分鐘)支付若干的虛擬通貨。然若礦工(也可能是玩家)可以調整時間戳(將遊戲裡的時間調整成已經過去一分鐘,但現實上並沒有)則稱之。
三、結論與展望
蜜罐的設計就是要吸引駭客入侵,並藉以蒐集駭客攻擊的證據與資訊,進一步分析並進行後續的訴訟與反擊。簡言之,智能合約蜜罐在於創造一些看似有利可圖的誤區,吸引駭客嘗試進行攻擊,始之反而中招。另外常見的漏洞包含編譯器的漏洞、Solidity語法或細節的誤判造成之安全漏洞等。期盼透過本篇的介紹可以讓大家對智能合約審計有更多的認識,對於審計從業人員在將來實務工作進行時能有幫助。
延伸閱讀
- 金融科技技術概覽(1)——以分散式帳本區塊鏈技術為例
- 金融科技技術概覽(2)——智能合約簡述
- 金融科技技術概覽(3)——虛擬貨幣與數位經濟
- 金融科技技術概覽(4)——虛擬通貨(數位資產)與錢包
- 金融科技技術概覽(5)——人工智慧技術與2019金融科技趨勢
- 金融科技技術概覽(6)——運用在財會金融中的人工智慧技術與智能語音裝置
- 金融科技技術概覽(7)——數位資產、分散式帳本與密碼學技術
- 金融科技技術概覽(8)——應用金融科技、區塊鏈技術於會計師日常業務
- 金融科技技術概覽(9)——台灣虛擬通貨相關管理規劃
- 金融科技技術概覽(10)——區塊鏈技術之政府監理與業者應對
- 金融科技技術概覽(11)—— 智能合約中之重要類型比較分析
- 金融科技技術概覽(12)——共識機制之工作量證明介紹
- 金融科技技術概覽(13)——智能合約審計(上)
- 金融科技技術概覽(14)——智能合約審計(下)
- 金融科技技術概覽(15)——智能合約與數位收藏品