• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      面向Libra區(qū)塊鏈基礎(chǔ)設(shè)施的安全分析與測(cè)試技術(shù)研究

      2021-06-10 12:23:34茍俊卿朱宇坤王崇宇屈宏剛陳瑞東
      無(wú)線電通信技術(shù) 2021年3期
      關(guān)鍵詞:合約漏洞共識(shí)

      茍俊卿,朱宇坤,王崇宇,屈宏剛 ,陳瑞東

      (電子科技大學(xué),四川 成都 611731)

      0 引言

      區(qū)塊鏈技術(shù),由于其去中心化、P2P網(wǎng)絡(luò)結(jié)構(gòu)、共識(shí)機(jī)制等,可以實(shí)現(xiàn)節(jié)點(diǎn)的自我管理、驗(yàn)證以及傳遞等,解決由傳統(tǒng)中心化架構(gòu)導(dǎo)致網(wǎng)絡(luò)抗毀性提升不高的問(wèn)題,同時(shí)還能實(shí)現(xiàn)數(shù)據(jù)的可靠傳輸和共享。區(qū)塊鏈的概念由中本聰在2007年提出,并在2009年產(chǎn)生了最早的應(yīng)用——比特幣。最早支撐比特幣體系的技術(shù)主要包括分布式網(wǎng)絡(luò)、賬本、區(qū)塊、對(duì)稱和非對(duì)稱加密以及工作量證明,這些技術(shù)構(gòu)成了區(qū)塊鏈的最初版本,隨著時(shí)間推移,區(qū)塊鏈徹底進(jìn)入了全球視野[1]。在2020年市場(chǎng)區(qū)域穩(wěn)定,相關(guān)區(qū)塊鏈的項(xiàng)目也開(kāi)始逐漸落地經(jīng)受時(shí)間考驗(yàn)。在近十幾年中,區(qū)塊鏈在比特幣的帶動(dòng)下飛速發(fā)展,市場(chǎng)開(kāi)始挖掘區(qū)塊鏈的潛在價(jià)值,逐步為項(xiàng)目賦能。由此區(qū)塊鏈在金融網(wǎng)、電子商務(wù)、醫(yī)療網(wǎng)絡(luò)、農(nóng)業(yè)、IOT、教育網(wǎng)以及軍用網(wǎng)等多種場(chǎng)景下進(jìn)行了若干實(shí)際應(yīng)用。

      區(qū)塊鏈安全性能的分析和檢測(cè)是系統(tǒng)性的,不單單只有傳統(tǒng)的安全工作,如云主機(jī)防護(hù)、通信安全以及手機(jī)安全等,還有很多獨(dú)有的安全方面環(huán)節(jié),包括智能合約的安全、礦池的風(fēng)控問(wèn)題以及交易方面的安全堤防。為此,我們通常將區(qū)塊鏈安全劃分成兩大類:一類是區(qū)塊鏈自身的安全問(wèn)題,其中又分為區(qū)塊鏈的底層安全和區(qū)塊鏈的上層智能合約安全;另一類是區(qū)塊鏈配套設(shè)施的安全問(wèn)題,包括錢(qián)包、交易所和礦池。Libra作為Facebook公司首推的區(qū)塊鏈項(xiàng)目,一經(jīng)發(fā)布就引起業(yè)界高度關(guān)注,旨在通過(guò)地理、治理和資產(chǎn)配置的空間去中心化,規(guī)避單點(diǎn)風(fēng)險(xiǎn),但同樣由于設(shè)計(jì)機(jī)制不嚴(yán)謹(jǐn),加密算法強(qiáng)度不達(dá)標(biāo)等原因,致使Libra區(qū)塊鏈安全性受到威脅[2]。

      1 Libra區(qū)塊鏈安全性分析

      區(qū)塊鏈作為一種融合了多種技術(shù)機(jī)制的新型分布式安全技術(shù),不僅面臨愈發(fā)嚴(yán)峻的傳統(tǒng)機(jī)制安全風(fēng)險(xiǎn),同時(shí)還面臨因其特有核心機(jī)制帶來(lái)的新型安全風(fēng)險(xiǎn)。一方面,傳統(tǒng)的區(qū)塊鏈機(jī)制中依然存在安全風(fēng)險(xiǎn),比如區(qū)塊鏈系統(tǒng)中出現(xiàn)的網(wǎng)絡(luò)威脅,以及代碼實(shí)現(xiàn)過(guò)程中的漏洞威脅,還有各種情況下出現(xiàn)的安全隱患等問(wèn)題;另一方面,傳統(tǒng)的區(qū)塊鏈機(jī)制正面臨來(lái)自分布式、抗篡改等特性改變的影響,使得安全風(fēng)險(xiǎn)越來(lái)越大,例如P2P組網(wǎng)形式,讓惡意代碼和漏洞的擴(kuò)散更為廣泛,又如開(kāi)放式區(qū)塊鏈網(wǎng)絡(luò)(以比特幣為例)的匿名性增加,讓溯源難度大大增加。同時(shí),區(qū)塊鏈的特有性質(zhì)也帶來(lái)了新的安全危險(xiǎn)。

      1.1 分布式網(wǎng)絡(luò)安全風(fēng)險(xiǎn)

      2015年,攻擊者提出了日蝕攻擊,標(biāo)志著區(qū)塊鏈網(wǎng)絡(luò)協(xié)議開(kāi)始出現(xiàn)了新的攻擊方式。日蝕攻擊者一般會(huì)切斷與目標(biāo)節(jié)點(diǎn)有關(guān)的所有途徑,用來(lái)隔離目標(biāo)節(jié)點(diǎn)與誠(chéng)實(shí)節(jié)點(diǎn)之間的網(wǎng)絡(luò)連接。這樣一來(lái)目標(biāo)節(jié)點(diǎn)就只能收到攻擊者的信息,攻擊者就可趁機(jī)利用來(lái)部署惡意的區(qū)塊算力、侵占共識(shí)資源,同時(shí)目標(biāo)節(jié)點(diǎn)也沒(méi)有精力去挖掘新的區(qū)塊。

      1.2 共識(shí)機(jī)制安全風(fēng)險(xiǎn)

      Libra區(qū)塊鏈的內(nèi)、外部攻擊者會(huì)對(duì)區(qū)塊鏈共識(shí)機(jī)制中的設(shè)計(jì)環(huán)節(jié)漏洞、關(guān)鍵節(jié)點(diǎn)失效、鏈路斷裂以及可能存在的虛假身份等問(wèn)題進(jìn)行攻擊。據(jù)CAP標(biāo)準(zhǔn)表示,一個(gè)分布式體系只能保證一致性、可用性或者分區(qū)容錯(cuò)性中的亮點(diǎn),無(wú)法保證全部。同時(shí),區(qū)塊鏈分布式網(wǎng)絡(luò)難以避免因內(nèi)外部非惡意因素或惡意攻擊導(dǎo)致的節(jié)點(diǎn)失效、網(wǎng)絡(luò)斷連乃至網(wǎng)絡(luò)分區(qū)現(xiàn)象。因此PoW、PBFT等共識(shí)機(jī)制需要面臨的是選擇可用性還是一致性。一方面,當(dāng)節(jié)點(diǎn)或網(wǎng)絡(luò)連接失效時(shí),共識(shí)機(jī)制可能會(huì)無(wú)法收斂或者收斂時(shí)間較長(zhǎng),導(dǎo)致超出可用范圍或產(chǎn)生記錄分叉不一致等;另一方面,基于算力或者投票等因素的設(shè)計(jì),決定了共識(shí)機(jī)制具有特定的攻擊容忍性,當(dāng)攻擊者算力或比例達(dá)到一定值,惡意節(jié)點(diǎn)將對(duì)共識(shí)過(guò)程實(shí)現(xiàn)可控性[3]。

      區(qū)塊鏈的內(nèi)、外部攻擊者一般會(huì)利用區(qū)塊鏈自身共識(shí)機(jī)制設(shè)計(jì)的漏洞以及節(jié)點(diǎn)的失效、鏈路斷裂等因素,對(duì)區(qū)塊鏈共識(shí)機(jī)制發(fā)起攻擊。

      1.3 密碼協(xié)議機(jī)制安全風(fēng)險(xiǎn)

      作為保障區(qū)塊鏈安全的基礎(chǔ)性機(jī)制,密碼機(jī)制存在的安全風(fēng)險(xiǎn)依然是區(qū)塊鏈安全系統(tǒng)中較為重要的一部分。不僅危及整個(gè)區(qū)塊鏈的基礎(chǔ)設(shè)施安全,對(duì)各種應(yīng)用的安全也造成了一定的威脅。一方面,攻擊者可通過(guò)傳統(tǒng)網(wǎng)絡(luò)攻擊或者物理節(jié)點(diǎn)獲取這些手法來(lái)盜用賬戶的私鑰(這部分私鑰是由區(qū)塊鏈中的用戶自動(dòng)生成,一旦丟失無(wú)法找回);另一方面,一些加密算法的設(shè)計(jì)本身就有安全漏洞或者算法后門(mén)等問(wèn)題,例如常見(jiàn)的ECC、RSA算法,都可以通過(guò)RSA-1024滑動(dòng)窗口機(jī)制中泄露的信息來(lái)恢復(fù)。再者,隨著量子計(jì)算技術(shù)的飛速發(fā)展,密碼機(jī)制安全問(wèn)題也越發(fā)嚴(yán)重,例如常見(jiàn)的非對(duì)稱算法中大數(shù)因子的分解問(wèn)題將在幾秒內(nèi)被破解,這些都將嚴(yán)重威脅密碼機(jī)制的安全。

      1.4 智能合約安全風(fēng)險(xiǎn)

      智能合約的安全問(wèn)題主要來(lái)自于智能合約運(yùn)行過(guò)程中環(huán)境漏洞與其本身代碼邏輯漏洞,攻擊者還可以挖掘、利用合約中的漏洞實(shí)施不符合約定的操作。區(qū)塊鏈的透明性和不可逆性,使得對(duì)智能合約中的漏洞修補(bǔ)必須要達(dá)到全網(wǎng)的共識(shí)后才可以完成發(fā)布,區(qū)塊鏈的不易篡改性也決定了關(guān)于智能合約漏洞導(dǎo)致的錯(cuò)誤操作和記錄修補(bǔ)工作非常困難[4]。

      2 Libra區(qū)塊鏈安全研究基礎(chǔ)

      2.1 Libra密碼算法與安全協(xié)議

      區(qū)塊鏈Libra中使用了大量的密碼算法、安全協(xié)議等設(shè)計(jì)來(lái)實(shí)現(xiàn)對(duì)區(qū)塊鏈安全的保障,但密碼算法的實(shí)現(xiàn)、安全協(xié)議設(shè)計(jì)與實(shí)現(xiàn)過(guò)程中存在大量的盲區(qū)與設(shè)計(jì)空白,導(dǎo)致了眾多的安全問(wèn)題。Libra區(qū)塊鏈的實(shí)現(xiàn)過(guò)程除了借鑒傳統(tǒng)的設(shè)計(jì),同時(shí)也引入了新的實(shí)現(xiàn)思路。

      對(duì)Libra區(qū)塊鏈采用的密碼算法和協(xié)議來(lái)說(shuō),需要從算法、協(xié)議設(shè)計(jì)以及程序?qū)崿F(xiàn)上分析其安全性。因此,安全性檢測(cè)由密碼算法安全性檢測(cè)技術(shù)、密碼算法代碼審計(jì)技術(shù)以及數(shù)據(jù)加密功能安全性檢測(cè)技術(shù)三部分構(gòu)成:① 測(cè)試Libra系統(tǒng)應(yīng)用的密碼算法(如非對(duì)稱加密算法和哈希算法)的安全性,檢測(cè)其是否符合密碼安全標(biāo)準(zhǔn)規(guī)范,并計(jì)算密碼破解與簽名偽造幾率;② 審計(jì)密碼算法模塊的源代碼,檢測(cè)其中是否有漏洞或者錯(cuò)誤;③ 數(shù)據(jù)加密過(guò)程中,需檢測(cè)其存儲(chǔ)傳輸?shù)裙ぷ鱗5-6]。

      2.2 Libra共識(shí)算法與網(wǎng)絡(luò)安全

      針對(duì)Libra共識(shí)算法和網(wǎng)絡(luò)安全,本文提出了基于共識(shí)算法的區(qū)塊鏈安全研究理論。使用基于模型、定理驗(yàn)證等多種方法,來(lái)實(shí)現(xiàn)對(duì)共識(shí)算法與網(wǎng)絡(luò)安全的安全性分析。針對(duì)Libra的網(wǎng)絡(luò)安全性分析,使用了模糊測(cè)試方式的網(wǎng)絡(luò)安全性分析方法[7]。

      2.3 Libra智能合約與應(yīng)用存儲(chǔ)

      智能合約、數(shù)字錢(qián)包等基于區(qū)塊鏈的應(yīng)用程序帶來(lái)的安全問(wèn)題,主要風(fēng)險(xiǎn)來(lái)自于程序代碼漏洞,攻擊者可以利用這些漏洞攻擊區(qū)塊鏈系統(tǒng)。當(dāng)前,很多區(qū)塊鏈會(huì)自己設(shè)計(jì)并使用自主研發(fā)的虛擬機(jī)環(huán)境(例如以太坊的EVM),當(dāng)出現(xiàn)系統(tǒng)運(yùn)行環(huán)境有虛擬機(jī)自帶的安全漏洞、控制問(wèn)題等情況時(shí),攻擊者就會(huì)用惡意智能合約來(lái)打亂秩序。攻擊者也會(huì)占用系統(tǒng)的安全網(wǎng)絡(luò)存儲(chǔ)空間、盜取計(jì)算資源。因此需要研究Libra區(qū)塊鏈的智能合約語(yǔ)言安全性、智能合約運(yùn)行環(huán)境安全性、智能合約代碼審計(jì)以及智能合約漏洞挖掘等四方面的技術(shù)方法。通過(guò)分析智能合約編程的底層語(yǔ)言,實(shí)現(xiàn)對(duì)編譯原理的復(fù)現(xiàn),分析智能合約語(yǔ)言的安全性;通過(guò)研究虛擬執(zhí)行環(huán)境及其相關(guān)方面,實(shí)現(xiàn)對(duì)智能合約運(yùn)行環(huán)境安全性分析;通過(guò)污點(diǎn)分析、符號(hào)執(zhí)行等方式研究智能合約代碼審計(jì)能力建設(shè),研究智能合約的代碼安全性;通過(guò)對(duì)漏洞挖掘技術(shù)的研究,實(shí)現(xiàn)智能合約漏洞挖掘與利用技術(shù)的提取。

      3 Libra區(qū)塊鏈安全檢測(cè)技術(shù)

      面向全球支付系統(tǒng)興起的Libra開(kāi)展代碼審計(jì)與脆弱性分析等研究工作,重點(diǎn)瞄準(zhǔn)Libra的數(shù)據(jù)結(jié)構(gòu)、密碼算法、安全協(xié)議、共識(shí)機(jī)制、智能合約、賬本以及編程語(yǔ)言等方面的安全性分析,進(jìn)而研究與實(shí)驗(yàn)Libra存在的漏洞與利用代碼,實(shí)現(xiàn)Libra區(qū)塊鏈的安全性測(cè)評(píng)與攻擊,同時(shí)通過(guò)賬本爬取和態(tài)勢(shì)分析,研究其他主流區(qū)塊鏈平臺(tái)與Libra之間的區(qū)別與聯(lián)系。在已有研究的基礎(chǔ)上,本文以Libra為研究目標(biāo),深入研究其組成與結(jié)構(gòu)、原理與實(shí)現(xiàn)。通過(guò)研究共識(shí)機(jī)制與分布式網(wǎng)絡(luò),實(shí)現(xiàn)對(duì)Libra的網(wǎng)絡(luò)安全方面的研究。

      3.1 Libra源代碼審計(jì)技術(shù)

      本文主要從Libra區(qū)塊鏈底層源碼、智能合約源碼以及數(shù)字錢(qián)包源碼三方面進(jìn)行源碼審計(jì)。

      3.1.1 Libra區(qū)塊鏈底層源碼安全性審計(jì)

      區(qū)塊鏈底層源碼是整個(gè)區(qū)塊鏈系統(tǒng)的基石,本文首先對(duì)區(qū)塊鏈的底層代碼進(jìn)行安全性審計(jì)。針對(duì)區(qū)塊鏈系統(tǒng)的安全性,在進(jìn)行全局代碼審計(jì)之后,再按照區(qū)塊鏈系統(tǒng)的功能點(diǎn)逐個(gè)進(jìn)行審計(jì)。首先直接掃描源代碼,提取源代碼中的關(guān)鍵信息,并運(yùn)用靜態(tài)檢測(cè)技術(shù)將源代碼轉(zhuǎn)化成中間代碼;然后利用各種技術(shù)對(duì)中間代碼進(jìn)行處理,生成對(duì)應(yīng)的檢測(cè)模型;最后根據(jù)安全規(guī)則進(jìn)行模型分析,查找程序源代碼中隱藏的安全漏洞,在自動(dòng)審計(jì)完成之后,對(duì)檢測(cè)到的漏洞再進(jìn)行人工復(fù)核。在此之后,再使用污點(diǎn)分析和符號(hào)執(zhí)行技術(shù)對(duì)區(qū)塊鏈的功能模塊進(jìn)行單獨(dú)審計(jì),分別對(duì)密碼算法、安全協(xié)議、共識(shí)算法以及Libra區(qū)塊鏈的安全性進(jìn)行審計(jì)。

      3.1.2 智能合約源碼安全性審計(jì)

      由于Libra智能合約使用的是新設(shè)計(jì)的Move語(yǔ)言,所以針對(duì)智能合約的代碼,審計(jì)時(shí)可以借鑒Oyente開(kāi)源的智能合約代碼審計(jì)工具,對(duì)智能合約進(jìn)行代碼審計(jì),找出其中的安全性漏洞,為之后的漏洞深入挖掘以及利用提供支持。智能合約的代碼審計(jì)主要基于原始代碼的靜態(tài)分析和代碼運(yùn)行時(shí)的動(dòng)態(tài)分析。

      ① 靜態(tài)分析:檢查系統(tǒng)源代碼在正確安全控制的關(guān)鍵位置是否安全,以達(dá)到可遵守的安全技術(shù)開(kāi)發(fā)標(biāo)準(zhǔn)。一般來(lái)說(shuō),在完成一次完整的源代碼審計(jì)后,審計(jì)的目標(biāo)都可以避免應(yīng)用程序中出現(xiàn)大面積源代碼漏洞問(wèn)題。靜態(tài)分析一般會(huì)用到數(shù)據(jù)流、控制流、詞法與語(yǔ)法分析,基于抽象語(yǔ)法樹(shù)的語(yǔ)義和規(guī)則檢查等分析技術(shù)。

      ② 動(dòng)態(tài)分析:分析調(diào)試工具加載程序并運(yùn)行,程序運(yùn)行過(guò)程中,調(diào)試器可以在任意時(shí)刻終止目標(biāo)的指令流程,以便于觀察設(shè)備的狀態(tài)和計(jì)算機(jī)的檢測(cè)結(jié)果。動(dòng)態(tài)分析可以觀測(cè)到惡意代碼的真實(shí)功能,是一種識(shí)別惡意代碼功能的有效方法,一般會(huì)在靜態(tài)分析基礎(chǔ)技術(shù)之后進(jìn)行。

      3.1.3 數(shù)字錢(qián)包安全性審計(jì)

      數(shù)字錢(qián)包的安全性審計(jì)分為兩方面進(jìn)行:軟件源碼層安全審計(jì)、數(shù)字錢(qián)包業(yè)務(wù)邏輯層面安全性審計(jì)。由于數(shù)字錢(qián)包大多數(shù)是電腦客戶端、手機(jī)App或者是基于Web的在線錢(qián)包,所以對(duì)于源碼的安全性審計(jì),存在許多自動(dòng)化工具,而且效果很好。

      3.2 密碼算法與協(xié)議安全分析技術(shù)

      在Libra區(qū)塊鏈中,加密算法常用的有非對(duì)稱加密算法和哈希算法。非對(duì)稱加密算法主要用于數(shù)據(jù)安全加密通信和加密存儲(chǔ),部分用于用戶身份認(rèn)證;哈希算法主要用于生成區(qū)塊頭哈希和交易哈希,是區(qū)塊鏈不可篡改性質(zhì)的保障。

      為了檢測(cè)Libra系統(tǒng)的密碼算法安全性,需要檢測(cè)所有應(yīng)用的密碼算法本身的安全性,降低加密數(shù)據(jù)被破解或者簽名被偽造的概率。一般來(lái)說(shuō),采用的密碼算法應(yīng)該是當(dāng)前經(jīng)過(guò)安全驗(yàn)證的公認(rèn)的安全密碼算法,并且可以檢測(cè)該算法是否支持國(guó)密算法。檢測(cè)密碼算法代碼實(shí)現(xiàn)過(guò)程中是否存在漏洞,需要配合密碼算法代碼審計(jì)技術(shù),檢查相關(guān)代碼字段的安全性和可靠性。在密碼算法應(yīng)用階段,測(cè)試該算法的加密功能與簽名功能是否安全可靠,通過(guò)密碼破解技術(shù)檢測(cè)信息泄露、被竊取及數(shù)據(jù)偽造的風(fēng)險(xiǎn)。

      在Libra系統(tǒng)中,P2P網(wǎng)絡(luò)協(xié)議屬于網(wǎng)絡(luò)層,主要功能是保證節(jié)點(diǎn)間的安全可靠通信,采用P2P網(wǎng)絡(luò)機(jī)制安全測(cè)試技術(shù)檢測(cè)其安全性。通常,P2P網(wǎng)絡(luò)可能面對(duì)DDoS攻擊、女巫攻擊、日蝕攻擊以及路由攻擊等攻擊手段,一方面,測(cè)試P2P網(wǎng)絡(luò)協(xié)議的抵御能力,可以通過(guò)攻擊測(cè)試驗(yàn)證來(lái)檢驗(yàn);另一方面,可以采用協(xié)議安全分析方式,檢測(cè)P2P網(wǎng)絡(luò)協(xié)議的安全性[8-9],技術(shù)方案如圖1所示。

      圖1 密碼算法與協(xié)議安全性分析Fig.1 Code algorithm and protocol security analysis

      密碼算法隨機(jī)性檢測(cè)的方式只考慮算法的輸入輸出,而不關(guān)注密碼算法的內(nèi)部結(jié)構(gòu)。隨機(jī)性檢測(cè)對(duì)象是密碼算法輸出的序列、分組密碼的密文以及序列密碼的密鑰。對(duì)于不同的算法,使用隨機(jī)性檢測(cè)方法也不完全相同,需要根據(jù)密碼算法的特性選擇,使用的隨機(jī)性檢測(cè)方法有頻數(shù)檢驗(yàn)、游程檢驗(yàn)以及自相關(guān)檢驗(yàn)等。不過(guò),對(duì)于非對(duì)稱密碼算法來(lái)說(shuō),其安全性是基于數(shù)學(xué)難題的,不需要通過(guò)測(cè)試序列的隨機(jī)性來(lái)證明其安全性,因此不做隨機(jī)性檢測(cè)[10]。密碼算法關(guān)鍵組件安全性檢測(cè)作為隨機(jī)性檢測(cè)的補(bǔ)充,從密碼算法的各組件著手,檢測(cè)算法局部安全性,例如分組密碼算法的S盒和P盒的安全性、RSA算法的密鑰安全性、安全橢圓曲線的參數(shù)安全性。

      本文提出基于BAN邏輯技術(shù)的安全協(xié)議形式化分析技術(shù)。在形式化驗(yàn)證的早期,BAN邏輯技術(shù)被廣泛應(yīng)用,它能夠清楚地找出協(xié)議中的漏洞,在檢測(cè)協(xié)議是否有漏洞的過(guò)程中,也可以證明過(guò)程設(shè)想的正確性,分析協(xié)議執(zhí)行是否冗余[11]。

      結(jié)合定理證明和協(xié)議,提出了串空間。目前,串空間方法已經(jīng)為大量安全協(xié)議進(jìn)行了驗(yàn)證,用串空間圖的形式來(lái)描述協(xié)議的功能及行為,借助圖論的理論及方法分析并驗(yàn)證安全協(xié)議模型的成立。但由于串空間主要還是被用于驗(yàn)證協(xié)議的正確性,所以有一定的局限性。因此同時(shí)采用了通信順序進(jìn)程(CSP)方法對(duì)非線性模型進(jìn)行檢測(cè)和安全協(xié)議建模。

      本文利用遷移系統(tǒng)建立了基于可用自由交互協(xié)議的抽象模型和攻擊者模型,提出了基于模型檢測(cè)的安全協(xié)議驗(yàn)證技術(shù)。模型檢測(cè)工具對(duì)其進(jìn)行狀態(tài)搜索,檢測(cè)交互過(guò)程中是否令協(xié)議進(jìn)入不安全狀態(tài)。對(duì)于Libra來(lái)說(shuō),需要根據(jù)協(xié)議內(nèi)容,建立符合的協(xié)議模型與攻擊者模型,然后利用模型檢測(cè)工具檢驗(yàn)協(xié)議安全性。

      3.3 共識(shí)算法與網(wǎng)絡(luò)安全分析技術(shù)

      對(duì)于區(qū)塊鏈共識(shí)協(xié)議,共識(shí)層的功能是實(shí)現(xiàn)節(jié)點(diǎn)間數(shù)據(jù)的一致性和正確性,使得分布式環(huán)境下的節(jié)點(diǎn)能夠?qū)灰走_(dá)成一致,并生成區(qū)塊。Libra區(qū)塊鏈系統(tǒng)采用的共識(shí)協(xié)議以PBFT為基礎(chǔ),選取了若干個(gè)機(jī)構(gòu)節(jié)點(diǎn)作為驗(yàn)證節(jié)點(diǎn),普通節(jié)點(diǎn)將交易發(fā)送給驗(yàn)證節(jié)點(diǎn),驗(yàn)證節(jié)點(diǎn)間共享交易池,保證區(qū)塊中交易內(nèi)容與順序一致。同樣,需要檢測(cè)共識(shí)協(xié)議攻擊抵御能力,測(cè)試Libra系統(tǒng)對(duì)雙花攻擊、重放攻擊、分叉攻擊、女巫攻擊、賄賂攻擊、預(yù)計(jì)算攻擊與自私挖礦等手段的抵御程度和能力[12]。另外,也需要對(duì)共識(shí)協(xié)議進(jìn)行相關(guān),來(lái)確保其是否安全。

      針對(duì)Libra共識(shí)算法的安全問(wèn)題,首先通過(guò)LibraBFT形式化驗(yàn)證方法檢測(cè)算法設(shè)計(jì)是否安全,然后通過(guò)LibraBFT共識(shí)算法關(guān)鍵組件安全檢測(cè)技術(shù)檢測(cè)各部分組件是否安全可靠,最后使用基于動(dòng)態(tài)測(cè)試用例生成的網(wǎng)絡(luò)協(xié)議測(cè)試方法測(cè)試網(wǎng)絡(luò)通信協(xié)議的安全性[10]。技術(shù)方案如圖2所示。

      圖2 共識(shí)算法與網(wǎng)絡(luò)安全性分析Fig.2 Consensus algorithm and network security analysis

      LibraBFT共識(shí)算法的形式化驗(yàn)證采用模型檢測(cè)的方式進(jìn)行。

      第一步:建立模型。分析LibraBFT的狀態(tài)特征,選擇一種合適的歸約方式建立LibraBFT模型,同時(shí)給出算法性質(zhì)的形式化描述。

      第二步:遍歷狀態(tài)空間。在第一步中建立了一個(gè)LibraBFT性質(zhì)與模型構(gòu)成的有限狀態(tài)空間,遍歷所有狀態(tài),逐個(gè)判斷其是否安全。

      LibraBFT共識(shí)算法關(guān)鍵組件安全性檢測(cè)技術(shù)的關(guān)注點(diǎn)在共識(shí)相關(guān)的功能組件上,例如接收交易、共享交易池和發(fā)起共識(shí)等,任何一部分如果存在漏洞都是共識(shí)算法的安全隱患。因此,通過(guò)代碼審計(jì),以各個(gè)組件的源代碼為基礎(chǔ),測(cè)試組件的安全性和可靠性。

      基于動(dòng)態(tài)測(cè)試用例生成的網(wǎng)絡(luò)協(xié)議測(cè)試方法,相對(duì)于基于模糊測(cè)試的網(wǎng)絡(luò)協(xié)議測(cè)試方法,區(qū)別在于測(cè)試用例的產(chǎn)生和選擇方面。首先,在進(jìn)行測(cè)試之前,需要分析該網(wǎng)絡(luò)協(xié)議,結(jié)合已知報(bào)文信息推斷測(cè)試用例格式和規(guī)范,然后根據(jù)推斷的關(guān)鍵信息構(gòu)造動(dòng)態(tài)測(cè)試用例,驅(qū)動(dòng)網(wǎng)絡(luò)協(xié)議進(jìn)入特定狀態(tài),驗(yàn)證其安全性。

      3.4 智能合約與應(yīng)用程序安全性分析

      本文主要包含2個(gè)重要研究模塊:智能合約語(yǔ)言安全性分析和數(shù)字錢(qián)包業(yè)務(wù)安全性分析,技術(shù)方案如圖3所示。

      圖3 智能合約與應(yīng)用程序安全性分析Fig.3 Smart contract and application security analysis

      智能合約語(yǔ)言的安全性檢測(cè)技術(shù)包括運(yùn)行環(huán)境的安全檢測(cè)、智能合約代碼的審計(jì)以及漏洞挖掘,通過(guò)形式化的驗(yàn)證方式,對(duì)智能合約的文檔及代碼用邏輯語(yǔ)言進(jìn)行建模。這種嚴(yán)密的數(shù)學(xué)邏輯克服了傳統(tǒng)測(cè)試的缺點(diǎn)——需要窮舉所有可能輸入,保證了在一定范圍內(nèi)的絕對(duì)正確性,使得合約審計(jì)工作覆蓋范圍更廣。而對(duì)于規(guī)模較小但是功能設(shè)計(jì)復(fù)雜的智能合約來(lái)說(shuō),形式化驗(yàn)證也是非常有效的方式之一,因此被大量初步應(yīng)用在高鐵、航天、核電等國(guó)家重要安全領(lǐng)域[13]。

      在進(jìn)行對(duì)智能合約的模糊測(cè)試時(shí),使用由隨機(jī)引擎生成的大量數(shù)據(jù),組成可實(shí)施的交易,再把測(cè)試結(jié)果反饋到隨機(jī)引擎中,從而調(diào)整引擎動(dòng)態(tài)生成適合的數(shù)據(jù),來(lái)探索大規(guī)模智能合約狀態(tài)空間。基于測(cè)試的有限狀態(tài)機(jī)結(jié)果分析交易的狀態(tài),判斷交易是否存在威脅。

      借助符號(hào)法來(lái)實(shí)現(xiàn)檢測(cè)智能合約漏洞的一般過(guò)程為:① 按照需要將智能合約中不確定的變量進(jìn)行符號(hào)化;② 對(duì)執(zhí)行過(guò)程中的程序指令進(jìn)行逐一解釋,解釋過(guò)程中同時(shí)執(zhí)行新的狀態(tài),其中包括所約束的路徑。在分支點(diǎn)處進(jìn)行fork操作,遍歷程序中所有可執(zhí)行路徑,以發(fā)現(xiàn)其中是否涉及安全問(wèn)題;③ 對(duì)符號(hào)執(zhí)行中搜集到的路徑進(jìn)行約束求解,判斷路徑是否可以達(dá)到,并在特定的程序點(diǎn)上檢測(cè)變量的取值是否符合程序的安全規(guī)定,是否存在出現(xiàn)漏洞的可能,并及時(shí)避免[13]。

      對(duì)污點(diǎn)分析的使用首先要識(shí)別信息在智能合約中可能產(chǎn)生的位置,并做好標(biāo)注;再根據(jù)實(shí)際情況和污點(diǎn)中傳播規(guī)則來(lái)進(jìn)行前后向的數(shù)據(jù)依賴分析;對(duì)比得到的污點(diǎn),集合其數(shù)據(jù)依賴和被依賴關(guān)系;最終確認(rèn)污點(diǎn)信息是否會(huì)對(duì)關(guān)鍵程序點(diǎn)的檢查操作造成影響[14]。

      4 Libra區(qū)塊鏈安全態(tài)勢(shì)感知平臺(tái)

      針對(duì)區(qū)塊鏈安全防護(hù)與監(jiān)管問(wèn)題,主流區(qū)塊鏈態(tài)勢(shì)感知平臺(tái)利用態(tài)勢(shì)感知技術(shù),實(shí)現(xiàn)了對(duì)區(qū)塊鏈內(nèi)部異常行為及異常合約執(zhí)行行為的監(jiān)控和預(yù)警。首先,該平臺(tái)以區(qū)塊鏈鏈上數(shù)據(jù)為數(shù)據(jù)源,通過(guò)安全分析與檢測(cè)技術(shù)提取態(tài)勢(shì)要素;然后進(jìn)行異常行為特征挖掘,建立異常行為模型或知識(shí)庫(kù);最后,根據(jù)異常行為模型建立區(qū)塊鏈安全保護(hù)與異常行為預(yù)警機(jī)制,找出當(dāng)前可能異常的行為,其技術(shù)方案如圖4所示。

      圖4 區(qū)塊鏈安全態(tài)勢(shì)感知Fig.4 Blockchain security situation awareness

      區(qū)塊鏈上的數(shù)據(jù)以區(qū)塊為基本單元,存儲(chǔ)形式呈鏈狀,區(qū)塊內(nèi)部的交易數(shù)據(jù)則以Merkle樹(shù)結(jié)構(gòu)存儲(chǔ)。在整個(gè)數(shù)據(jù)存儲(chǔ)過(guò)程中,需保證數(shù)據(jù)的正確性及完整性。

      面向區(qū)塊鏈鏈上數(shù)據(jù)的態(tài)勢(shì)要素提取技術(shù)的目標(biāo)是從爬取的大量交易信息及區(qū)塊信息中,提取關(guān)鍵數(shù)據(jù)字段作為態(tài)勢(shì)要素。需要注意的是,對(duì)于來(lái)源、結(jié)構(gòu)不同的數(shù)據(jù)會(huì)采用融合技術(shù),將其轉(zhuǎn)換為標(biāo)準(zhǔn)格式。基于態(tài)勢(shì)理解的異常行為特征挖掘技術(shù)是對(duì)提取出的安全態(tài)勢(shì)要素進(jìn)行態(tài)勢(shì)理解,可分為:① 從眾多態(tài)勢(shì)要素中篩選出真實(shí)有效的數(shù)據(jù);② 對(duì)真實(shí)的異常行為信息進(jìn)行預(yù)處理,提取其中異常行為特征;③ 使用關(guān)聯(lián)分析算法,對(duì)異常行為關(guān)聯(lián)規(guī)則進(jìn)行挖掘,得到異常行為模型。區(qū)塊鏈安全保護(hù)與異常行為預(yù)警機(jī)制檢測(cè)區(qū)塊鏈系統(tǒng)當(dāng)前活動(dòng),如節(jié)點(diǎn)交易、區(qū)塊共識(shí)、智能合約部署與執(zhí)行等,采用態(tài)勢(shì)預(yù)測(cè)技術(shù),以異常行為模型為參考,判斷當(dāng)前行為是否異常[15]。

      5 結(jié)束語(yǔ)

      Libra區(qū)塊鏈基礎(chǔ)設(shè)施尤為重要,他們?yōu)閰^(qū)塊鏈應(yīng)用能夠最終實(shí)現(xiàn)提供了必要服務(wù),包括開(kāi)發(fā)、運(yùn)行、測(cè)試以及資源等。區(qū)塊鏈基礎(chǔ)設(shè)施面臨來(lái)自傳統(tǒng)網(wǎng)絡(luò)固有的隱患問(wèn)題,內(nèi)部的區(qū)塊鏈特有機(jī)制也具有一定的安全風(fēng)險(xiǎn)。為了確保上層負(fù)責(zé)應(yīng)用、區(qū)塊鏈業(yè)務(wù)及數(shù)據(jù)安全等問(wèn)題,本文對(duì)區(qū)塊鏈的基礎(chǔ)設(shè)施進(jìn)行了一系列安全分析和檢測(cè)。對(duì)于區(qū)塊鏈基礎(chǔ)部分安全性的分析和防護(hù)研究,為區(qū)塊鏈基礎(chǔ)設(shè)施的建設(shè)提供了新思路,有助于推動(dòng)基于Libra區(qū)塊鏈基礎(chǔ)設(shè)施的安全平穩(wěn)發(fā)展。下一步研究工作主要為分析智能合約的傳輸層和數(shù)據(jù)層,綜合考慮一個(gè)合約從產(chǎn)生到用戶實(shí)際使用中,各個(gè)區(qū)塊的變化以及在上述多層次的分析中,研究合約可能出現(xiàn)的漏洞并完善解決方法,進(jìn)一步深入研究Libra漏洞挖掘與利用技術(shù),開(kāi)發(fā)漏洞利用工具。

      猜你喜歡
      合約漏洞共識(shí)
      漏洞
      共識(shí) 共進(jìn) 共情 共學(xué):讓“溝通之花”綻放
      論思想共識(shí)凝聚的文化向度
      商量出共識(shí)
      三明:“兩票制”堵住加價(jià)漏洞
      漏洞在哪兒
      高鐵急救應(yīng)補(bǔ)齊三漏洞
      別讓“PX共識(shí)”在爆炸中瓦解
      合約必守,誰(shuí)能例外!——對(duì)“情勢(shì)變更”制度不可寄于過(guò)高期望
      崇信县| 浪卡子县| 葵青区| 南靖县| 万载县| 靖州| 双辽市| 明水县| 张家界市| 白玉县| 牙克石市| 阳谷县| 都匀市| 安泽县| 嘉兴市| 周宁县| 云浮市| 沙坪坝区| 南江县| 电白县| 金堂县| 宁陵县| 神农架林区| 保亭| 略阳县| 绵竹市| 浦北县| 冷水江市| 抚宁县| 和静县| 营山县| 台前县| 桦南县| 兴化市| 隆化县| 旬阳县| 长岛县| 怀柔区| 渝中区| 铅山县| 蒙自县|