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:
動態 | 獵豹移動已獲得38項區塊鏈專利:金色財經報道,11月13日,獵豹移動(代碼:CMCM)發布了2019年第三季度財報,在工具行業整體下滑及國內廣告行業疲軟的態勢下,獵豹移動實現總收入9.2億。在區塊鏈領域,截至目前獵豹移動已經獲得包括“一種區塊鏈助記詞保管的替代方法”、“一種區塊鏈私鑰安全保管方案”、“硬件錢包安全存儲方案”、“基于深度學習的話題相關情感分析”等38項區塊鏈專利。[2019/11/14]
謝謝大家,今天非常榮幸來參加這個會議,今天我所帶來演講主題就是我們一起來淺析一下當下智能合約自動化安全檢測的技術,今天我的演講可能分兩位個部分,首先第一部分我們會一起來看一下現在以太坊上智能合約發展的現狀,第二部分基于這個現狀了解,再詳細描述一下現在智能合約自動化涉及的一些方法。首先我們一起看一下現在智能合約發展的一個現狀,根據我們平臺,可以知道在過去一個月當中,智能合約的數量每天還在以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肯定要變,通過邏輯和數據這兩個維度,他們進行一些驗證,最終驗證模塊現在提供了大概六、七個智能合約漏洞驗證性的語言,這種語言都是以插件化來寫的,其他的安全開發者可以在不斷豐富漏洞的驗證語言。最終我們在對自動審計進行評估的時候,是從要自動化程度、漏報率、誤報率提供這件事情,我們現在知道數據就可以綁定出來,檢測出來數據還是需要人工進行二次確認,這個工作是十分繁瑣的,經過這種方法可以是誤報率會降低,這兩種符號執行和符號抽象的自動化審計方法。最后回顧一下,現在自動化審計方法分為三種,特征代碼匹配,形式化驗證以及符號執行、符號抽象。回顧整個淺析過程,我們可以清楚知道,現在自動化審計方法是在一個很不成熟的階段,主要面臨三大問題,第一個是誤報率高,并不能做到完全自動化,還需要人工參與。第二個是自動化程度比較低,還需要不斷去審計它,第三個審計時間比較長。最后就是回顧一下我們整個分析,首先我們明晰一下智能合約發展現狀,又檢測自動化審計方法,左右各有我們技術交流群,有感興趣小朋友歡迎加入,可以一起更加深入的討論,這就是我今天所分享的內容,謝謝。
聲音 | 獵豹區塊鏈研究中心楊文玉:智能合約自動化審計存在三大問題:據36kr報道,近日獵豹區塊鏈研究中心安全專家楊文玉在關于如何有效保障海量智能合約的安全的問題時表示,最好的方法是降低人工審計復雜度,采用智能合約自動化審計。即主要通過特征代碼匹配、基于形式化驗證的自動化審計方法、基于符號執行和符號抽象自動化審計這三類方法。此外,她也指出,現在自動化審計方法處于一個很不成熟的階段,主要面臨三大問題:誤報率高,自動化程度低、依賴人工二次審計,審計時間比較長。[2018/9/10]
動態 | 獵豹大數據:區塊鏈相關App流量與數字貨幣交易相關:據騰訊網報道,獵豹大數據顯示,數字貨幣交易是區塊鏈相關App的第一個爆發點。越接近交易的App,流量也越大,具體為:錢包/交易所>挖礦/行情>資訊。在過去半年中,區塊鏈相關App的滲透率基本隨比特幣價格波動而波動,同樣越接近交易的App,滲透率走勢也越貼近幣價。[2018/8/16]
獵豹移動正式發布區塊鏈音箱——小豹AI:3月21日晚間,獵豹移動在北京召開發布會,正式發布了自家的獵戶機器人平臺Orion OS以及多款機器人產品。在這些產品中,受關注程度最高的就是小豹AI音箱,這款音箱也是繼阿里、百度、小米等公司后,又一家國內知名互聯網公司推出的智能音箱。小豹AI音箱最大的亮點在于它是一款區塊鏈音箱。通過區塊鏈的技術,可以讓所有用戶幫助這款AI音箱成長,同時分享帶寬以及完成AI任務,就能獲得相應的AI積分獎勵,該獎勵可兌換獵豹生態鏈中的服務。[2018/3/22]
獵豹CEO傅盛:看好區塊鏈技術,工具角度看非常適合我們:獵豹CEO傅盛接受新浪科技采訪時,簡單談了談自己對區塊鏈技術的看法。傅盛表示:“區塊鏈是獵豹非常重要的一個戰略方向。不要光看幣圈的事,區塊鏈技術可以解決一部分需求,獵豹又是以安全為切入點。以前的應用以后可以用區塊鏈來寫。所以從工具角度來看,這個非常適合我們。”[2018/3/22]
如果說區塊鏈是一場革命,那么極客絕對是那群改變世界的先行者。9月5日,在由Odaily星球日報主辦、36Kr集團戰略協辦的P.O.D大會上,去中心化極客社區DoraHacks全球負責人宋婷分享了.
1900/1/1 0:00:00比特幣價格在不斷下跌,但是挖礦活動并沒有減少。比特幣價格的下跌與哈希率的上升,表明了加密貨幣挖礦經濟的復雜性。不斷上升的哈希率,對礦工來說意味著,挖礦仍然有利可圖,尚可不用退出.
1900/1/1 0:00:002017年四季度,越來越多利用程序非法挖礦的事件被曝出來。一個叫“網絡危機聯盟”的組織集合了一些網絡安全專家去監控這些違法行為,其中包括著名網絡安全軟件公司McAfee的專家.
1900/1/1 0:00:008月28日,百度圖騰官方微博發布消息稱,圖騰與熊掌號聯合發布熊掌號“原創保護計劃”,將基于區塊鏈、大數據和人工智能等技術,為熊掌號提供在線實時侵權監測、發起維權等系列服務.
1900/1/1 0:00:00編者按:本文來自哈希派,作者:不碎,星球日報經授權轉載。比特幣的開采和煤礦、金礦相同,都需要通過礦機進行挖掘,而不同之處在于,比特幣挖礦是通過礦機在網絡世界中不斷的數學運算進行的.
1900/1/1 0:00:009月5日,由Odaily星球日報主辦、36Kr集團戰略協辦的P.O.D大會在北京舉行。會上清華大學信息技術研究院副院長邢春曉進行了演講.
1900/1/1 0:00:00