9月5日,在由Odaily星球日報主辦、36Kr集團戰略協辦的P.O.D大會安全論壇上,獵豹區塊鏈研究中心安全專家楊文玉發表題為《智能合約自動化審計技術》的演講。楊文玉開場介紹了智能合約發展的現狀。大部分人認為區塊鏈現在是一個寒冬時期,但是據獵豹區塊鏈研究中心統計,過去一個月中,智能合約每日新增數量為1317個。研究中心收錄的項目中,區塊鏈基礎設施占9.38%,游戲和VR4.44%,商業和零售3.6%,社交媒體與通訊3.4%。在數量穩定增長的同時,智能合約還面臨著安全問題。從2017年到2018年6月,智能合約漏洞頻繁爆發,帶來大量資金損失,也使得區塊鏈甚至智能合約的一些開發者或者用戶對智能合約的安全性產生質疑,也阻礙了以太坊之后的發展。除此之外,Fomo3D在興起的時候,僅僅在第二天就出現了大量的山寨合約。山寨Fomo3D游戲開發者更改了積極分配的邏輯,導致投入的資金大部分都流向山寨合約開發者,也對DApp發展造成阻礙。在這樣的背景下,如何有效保障海量智能合約的安全?楊文玉認為,最好的方法是降低人工審計復雜度,采用智能合約自動化審計。具體來講,自動化審計方法主要分為三類:第一種是特征代碼匹配,就是對惡意代碼進行提取、抽象,形成匹配模塊對待檢測源碼進行檢測。優點是速度快、迅速響應新漏洞,缺點則是使用范圍有限、漏報率高。第二種是基于形式化驗證的自動化審計方法。最早是在2016年由Hirai提供,Grishchenko和Hildenbrandt之后進行了改進,采用F*framework和Kframework,將EVM轉化為一個Formalmodel。Formal是航空航天領域常見的形式化驗證框架,而Kframework則是一個語義的轉化框架。最后一種是現在最常用的方法,基于符號執行和符號抽象自動化審計。分析智能合約時,通過編譯源碼,可以形成EVMOPCODE,然后輸入到自動化分析引擎,轉化成CFG,再利用這兩種方法進行分析。比較典型的是Oyente和Securify系統,可以降低誤報率和漏報率,但是分析方法繁瑣并且耗時。不過,楊文玉也指出,現在自動化審計方法處于一個很不成熟的階段,主要面臨三大問題:誤報率高,自動化程度低、依賴人工二次審計,審計時間比較長。以下為楊文玉演講全文,enjoy:
動態 | 獵豹大數據:區塊鏈相關App流量與數字貨幣交易相關:據騰訊網報道,獵豹大數據顯示,數字貨幣交易是區塊鏈相關App的第一個爆發點。越接近交易的App,流量也越大,具體為:錢包/交易所>挖礦/行情>資訊。在過去半年中,區塊鏈相關App的滲透率基本隨比特幣價格波動而波動,同樣越接近交易的App,滲透率走勢也越貼近幣價。[2018/8/16]
謝謝大家,今天非常榮幸來參加這個會議,今天我所帶來演講主題就是我們一起來淺析一下當下智能合約自動化安全檢測的技術,今天我的演講可能分兩位個部分,首先第一部分我們會一起來看一下現在以太坊上智能合約發展的現狀,第二部分基于這個現狀了解,再詳細描述一下現在智能合約自動化涉及的一些方法。首先我們一起看一下現在智能合約發展的一個現狀,根據我們平臺,可以知道在過去一個月當中,智能合約的數量每天還在以1317個的平均增長率高度穩定地增長著,可能和我們所理解的區塊鏈現在是一個寒冬時期,所不太一樣這種增長率還比較穩定的。其次我們通過一些NLT方法,把智能合約領域劃分出來,除了一些敏感領域,現在智能合約比較多的應用在一些基礎設施,商業零售,游戲以及社交媒體和通訊。這是一個智能合約大的現狀,智能合約現在面臨一個安全現狀是什么樣的,可能剛才兩位嘉賓已經都進行了非常詳細的描述,從2017到2018年6月,這種智能合約漏洞頻繁爆發,每次都帶來大量資金損失,也使得區塊鏈甚至智能合約的一些開發者或者一些用戶對智能合約這種安全性產生一些高度的質疑,也阻礙了以太坊之后的發展。除此之外,我們還可以看到像剛才嘉賓講到Fomo3D這件事情,除了基本智能合約安全,現在安全受到極大的關注,之前Fomo3D在興起的時候,僅僅在第二天就出現了大量的山寨合約,山寨的Fomo3D,在這種游戲當中,其實開發者更改了積極分配的邏輯,使得其實玩那個蜂窩游戲過程當中,投入的資金大部分都是流向山寨合約開發者,也對DApp發展造成阻礙。現在面臨一個問題是如何有效保障海量智能合約的安全,也是我們今天要討論的問題,也是第二部分想跟大家分享一個現在智能合約自動化審計技術的發展。再回顧一下,現在智能合約截止到昨天中午12點,以太坊總共有193萬個合約,日增長率穩定增長,現在審計方法有人工審計,以及自動化審計。在海量智能合約當中,我們最好的方法就是降低人工審計復雜度,從而讓更多通過自動化審計進行。我們把自動化審計分為三個部分。首先第一種是特征代碼匹配,第二類是基于形勢化驗證的子都化審計方法,最后一種是基于符號執行和符號抽象自動化審計。首先看特征代碼匹配,從名字可以很清晰理解到,就是對惡意代碼進行提取抽象,我們是一種語義匹配,匹配靜態原代碼,審計的方法優點是很顯而易見的,比如說速度很快,因為對源碼進行一個字符串匹配,第二個可以迅速進行新的漏洞,他審計出現一個新的漏洞,我們就可以快速提交一些新的匹配模式。他缺點在哪里,再來看一下,我們所理解的現在區塊鏈都上應該是公開透明的,但實際情況并不是這樣,我們大概做了一個統計,目前代碼的開原率僅僅只占48.62%,就是說在以太坊上,其實有超過一半合約是不開源的,只暴露code,剛剛那個嘉賓也說,他們也費了十分大的力氣去立項這個code這種限制就導致這種方法使用范圍有限,傳統的靜態審計方法比如說App檢測,會調用一個庫里面確定唯一一些函數,對他進行審計,智能合約里面一些函數一些特征變化性比較多的,所以說漏洞率比較高。第二個方法,我們就來探討一下現在比較火的,基于形式化驗證的自動化審計,形式化驗證審計智能合約安全,最早是在2016年由Hirai提供的,他提出了一點,他當時拿出邏輯交互證明器,通過IsabeldeLem-Language->Formal-model,通過形式化model驗證,來判斷代碼邏輯是否存在問題,這項工作最后的兩個把形式化方面進行進一步改造,他們放棄Lem-language也是比較低效的轉化方式,他們采用了F*framework和Kframework,將EVM轉化為一個Formalmodel,而Formal可能就是經常在航空航天領域當中做一些形式化驗證的框架,而Kframework則是一個語義的轉化框架,這兩個比較有代表性的技術研究,如果想更加深入了解可以參考下列的一些論文。第三點就是今天想要著重跟大家交流,以及現在最常用的一些方法,就是基于符號執行和符號抽象的自動化審計,這種自動化審計現在看一下,我們在分析一個智能合約的時候,首先要明確分析對象是什么,像我們剛才在解釋特征匹配代碼當中,我們知道現在EVM上智能合約代碼大部分是不公開的,我們現在分析對象就確認應該是EVMOPCODE,在通過一些源碼,我們通過編譯,可以形成EVMOPCODE,輸入到自動化分析引擎。在這種基于符號執行和符號抽象化自動化審計框架里面,有些共有的特性,OPCODE在輸入這個引擎當中,都會轉化成一個CFG,就是一個一個控制流程圖,通過這個CFG,可以簡單了解一下這個CFG是什么意思,CFG就是把合約代碼里面邏輯包裝成哪個快,在里面邏輯分叉的時候,左邊那個合約形成一個十分龐大完善的CFD,讓程序員更好了解能夠執行一些邏輯。在有CFG生成之后,現在就出現兩種分析方法,第一類就是基于符號執行的驗證,這類比較有代表性,大家都比較熟知像Mythril、Oyente、Maian,還有一種就是上個月剛剛公開的一個符號抽象分析的方法,就是Securify,今天主要跟大家講一下Oyente跟Securify這兩種系統具體的架構以及實現方法,首先我們來看Oyente,Oyente的邏輯我們可以從左邊看到,在CFG申請之后,首先是一個explorer,會把代碼當中每一個流程驗證一邊,進行一個形式化驗證,就像這個我們驗證是我們是否有一個X,使得X不僅滿足C1、C2、C3條件,這時候可以判斷狀態是no還是yes,以此驗證整個邏輯的流程。第二個coreanalysis這一部分其實是Oyente最為核心的一個部分,將剛剛輸出的explorer這種路徑,把它轉化,只進行一些漏洞驗證,目前只提供包括TOD和Timestampdependence和Mishandledexceptions,這三種驗證,最后這個系統又能保證誤報率和漏報率,他采用微軟的開源的驗證器,進行整體的架構封裝,在剛剛我們講述過程中,大家也應該了解到,在CFG轉explorer驗證的時候,我們是需要對他的循環,每次都是一個驗證,所以這種分析方法特別耗時,并且不一定成功。這就是Oyente目前存在一個巨大問題。在這個問題基礎上,像Securify,他們就提供了另外一種方法,他們認為現在合約的代碼其實是特別容易解耦合的,不像傳統代碼,耦合性特別高,像合約代碼這個一些比較固定形式化的解耦合模塊,我們并不是需要對整個合約邏輯進行一個交驗,我們對合約解耦各個模塊進行分析,以此提高自動化程度,左邊這個圖是整個驗證流程,把contractbytecode通過定義域語言之后有一個驗證模塊,特別像之前說的模式匹配,把一些漏洞轉化成驗證語言模式匹配框架,驗證這個語義是否磨合這個。最后也給出一個report,通過這個自動化審計方法,最終可以輸出錢包的管理者是可以被修改的。再具體一點是怎么做語義分析,其實分析這種explorer代碼是從兩個維度,第一個是邏輯,第二個是數據,邏輯方式定義兩種邏輯,第一個叫做MayFollow,第二個叫做MustFollow,MayFollow的意思就是說,L2必須是有一條路徑跟在L1后面,而MustFollow是說L2每一條路徑都跟在L1后面,這兩種區別定義了整個邏輯的框架。第二個是數據,怎么定義合約里面數據變化用了三種,第一個MayDepOn,就是兩個因素,一個叫做Y,一個叫T,T變,Y可能變也可能不變。第二個是Eq,就是Y是由T決定的。第三個是DetBy,Y和T是一一對應的,只要T變Y肯定要變了,這里面用更加形象的方法來想象一下,其實Maydepon就像我們的T變量是time,在一段時間中,Y可能是一個值,T變,Y可能不變,第三個就是說一對一關系,就像我們算哈希,只要你T變,Y肯定要變,通過邏輯和數據這兩個維度,他們進行一些驗證,最終驗證模塊現在提供了大概六、七個智能合約漏洞驗證性的語言,這種語言都是以插件化來寫的,其他的安全開發者可以在不斷豐富漏洞的驗證語言。最終我們在對自動審計進行評估的時候,是從要自動化程度、漏報率、誤報率提供這件事情,我們現在知道數據就可以綁定出來,檢測出來數據還是需要人工進行二次確認,這個工作是十分繁瑣的,經過這種方法可以是誤報率會降低,這兩種符號執行和符號抽象的自動化審計方法。最后回顧一下,現在自動化審計方法分為三種,特征代碼匹配,形式化驗證以及符號執行、符號抽象。回顧整個淺析過程,我們可以清楚知道,現在自動化審計方法是在一個很不成熟的階段,主要面臨三大問題,第一個是誤報率高,并不能做到完全自動化,還需要人工參與。第二個是自動化程度比較低,還需要不斷去審計它,第三個審計時間比較長。最后就是回顧一下我們整個分析,首先我們明晰一下智能合約發展現狀,又檢測自動化審計方法,左右各有我們技術交流群,有感興趣小朋友歡迎加入,可以一起更加深入的討論,這就是我今天所分享的內容,謝謝。
獵豹移動首席執行官傅盛:有區塊鏈計劃,需要時間:3月25日,獵豹移動首席執行官傅盛在深圳IT領袖峰會上表示,有區塊鏈的計劃,需要一些時間。另外,中國的互聯網的應用從今年開始都會全球化,國內企業是具備競爭優勢的。比如移動游戲、直播類應用在美國排名都靠前。[2018/3/25]
獵豹移動:3月21日推出區塊鏈智能音箱產品——小豹AI音箱:近日獵豹移動公布了的2017財年第四季度及全年財報。獵豹移動已經開始將區塊鏈技術應用在獵豹的業務中。該公司將于3月21日推出一款智能音箱產品——小豹AI音箱,并鼓勵音箱用戶完成一些任務,從而賺取積分,用戶可以使用這些積分購買平臺上的增值服務,包括付費內容和云存儲服務。[2018/3/20]
獵豹移動發布報告:Bitcoin Wallet和Jaxx錢包存在安全漏洞:獵豹移動近日發布報告《2018全球加密數字貨幣錢包安全白皮書》,其中對市面上的數字錢包產品在私鑰存儲問題上進行了安全分析,發現Bitcoin Wallet 和Jaxx Blockchain Wallet 兩款產品在私鑰存儲中存在巨大的安全漏洞。Bitcoin Wallet的助記詞是以明文方式存放在系統文件中,意味著其將資產安全性完全交給了系統來維護,只要一個漏洞就可以獲得助記詞和私鑰;而Jaxx相比Bitcoin Wallet更嚴重,存儲在Jaxx中的私鑰被黑客竊取,只需很少的努力。[2018/2/27]
獵豹CEO傅盛:將從安全領域切入區塊鏈,因為對CES新奇感已過:獵豹的CEO傅盛第三次來到CES時表示他對CES的新奇感正在減弱,準備將要從最擅長的安全切入區塊鏈,不涉及到交易,幫助用戶保護數字資產。[2018/1/11]
Tags:區塊鏈ODECFGAPP區塊鏈證據保全怎么操作的gode幣價格今日行情wCFG價格抹茶交易所app下載安卓官網
編者按:本文來自鏈塔智庫(ID:liantazhiku),作者:鏈塔分析師團隊,星球日報經授權發布。前言出行領域是最為活躍的領域之一.
1900/1/1 0:00:00本文來自BFTF技術社區聯盟,作者:BFTF技術社區聯盟,編譯:方圓,星球日報經授權發布。導讀:閃電網絡是用來解決比特幣網絡擁塞問題而提出的比特幣網絡改進方案.
1900/1/1 0:00:009月27日,區塊鏈公司Ripple宣布開展社會影響計劃“RippleforGood”,該計劃將聚焦于與教育和普惠金融相關的項目,在最近捐款總額超過8000萬美元的勢頭的基礎上.
1900/1/1 0:00:00編者按:本文來自哈希派,作者:哈希派,星球日報經授權轉發。哈希派上周末曾報道,近段時間與網絡黑市“絲綢之路”有關的比特幣錢包地址活動頻繁——于2014年由1933phfhK3ZgFQNLGSDX.
1900/1/1 0:00:00編者按:本文來自哈希派,作者:不碎,星球日報經授權轉載。數字貨幣的“挖礦”實際上是一個增加貨幣供應量的過程.
1900/1/1 0:00:00加密貨幣一直受投資者關注,這一比股市還“驚心動魄”的市場,吸引著人們的目光。最近,美國、英國和中國的調查公司進行了一系列針對人們投資意向和情況的調查.
1900/1/1 0:00:00