999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于機器學(xué)習(xí)的二進(jìn)制代碼相似性分析技術(shù)綜述*

2022-10-16 08:39:28韓燁孫治趙童王炳文
通信技術(shù) 2022年9期
關(guān)鍵詞:利用特征模型

韓燁,孫治,趙童,王炳文

(1.中電科網(wǎng)絡(luò)空間安全研究院有限公司,河北 保定 071800;2.中國電子科技網(wǎng)絡(luò)信息安全有限公司,四川 成都 610041;3.中國電子科技集團(tuán)公司第三十研究所,四川 成都 610041)

0 引言

在軟件開發(fā)的過程中,開發(fā)人員為節(jié)省時間和精力,常會從開源社區(qū)中搜索符合要求的開源代碼進(jìn)行重用。這種做法雖然能夠大大縮短軟件的開發(fā)周期,卻會造成極大的安全隱患。一旦被重用的代碼中包含某個安全漏洞,該漏洞就會在復(fù)用這段代碼的項目之間廣泛傳播,產(chǎn)生巨大的安全危害。

利用代碼相似性分析技術(shù),安全人員能夠?qū)④浖械拇a與已知缺陷代碼進(jìn)行比對,從而及早發(fā)現(xiàn)已知的安全漏洞。軟件代碼通常可以分為源代碼與二進(jìn)制代碼兩種。由于軟件知識產(chǎn)權(quán)保護(hù)等原因,軟件的源代碼通常難以獲得,因此針對二進(jìn)制代碼的相似性分析技術(shù)的應(yīng)用更加廣泛[1]。然而,二進(jìn)制代碼的相似性檢測與源代碼相比更加困難,因為大量程序中的語義信息會在編譯過程中消失,包括函數(shù)名、變量名、注釋信息以及數(shù)據(jù)結(jié)構(gòu)的定義等。即使是在源代碼相同的情況下,編譯時如果采用不同的編譯器與編譯優(yōu)化配置,或存在跨指令架構(gòu)的情況,也會使生成的二進(jìn)制代碼存在差別。此外,代碼混淆技術(shù)也可以應(yīng)用于二進(jìn)制代碼,用于隱藏原始的代碼,使其變得更加難以識別[2]。如何解決跨編譯器、跨優(yōu)化、跨架構(gòu)、抗混淆等問題,一直是二進(jìn)制代碼的相似性分析技術(shù)的研究熱點與難點。

傳統(tǒng)的二進(jìn)制代碼相似性分析技術(shù)通常基于序列匹配或圖匹配的方法。基于序列匹配的方法首先對二進(jìn)制代碼進(jìn)行反匯編,利用匯編指令的操作碼與操作數(shù)生成標(biāo)識符序列,其次通過子序列匹配的方法判斷標(biāo)識符序列的相似性。這類方法局限在代碼的文本特征,幾乎不涉及代碼語義與內(nèi)在的邏輯關(guān)系,因此分析結(jié)果極易受到程序細(xì)微差別的干擾,難以實現(xiàn)跨編譯器、跨優(yōu)化、跨架構(gòu)、抗混淆的代碼相似性分析。基于圖匹配的二進(jìn)制代碼相似性分析方法首先將二進(jìn)制代碼表示為程序控制流圖(Control Flow Graph,CFG)等中間表示,其次利用圖匹配的方法判斷上述圖形中間表示的相似性。這類方法雖然分析準(zhǔn)確度較高,且可以根據(jù)不同任務(wù)采用不同的匹配算法與策略,但計算量龐大,難以同時兼顧準(zhǔn)確度和速度。此外,由于圖匹配算法多為兩兩匹配算法,在面對大規(guī)模查詢?nèi)蝿?wù)時,計算量會隨代碼庫規(guī)模成幾何倍數(shù)增長,因此難以適應(yīng)大規(guī)模的查詢?nèi)蝿?wù)。

另一些方法根據(jù)二進(jìn)代碼運行時的行為對其相似性進(jìn)行分析,但這類方法首先需要運行二進(jìn)制程序,由于程序的運行條件并非總是具備,因此這類方法的應(yīng)用場景相對有限,很多時候不能滿足人們的需要。

隨著機器學(xué)習(xí)與深度學(xué)習(xí)技術(shù)在計算機視覺、自然語言處理、數(shù)據(jù)挖掘、推薦系統(tǒng)等領(lǐng)域的成功應(yīng)用,研究人員開始嘗試將機器學(xué)習(xí)方法應(yīng)用于二進(jìn)制代碼相似性分析。基于機器學(xué)習(xí)的二進(jìn)制代碼相似性分析方法能夠?qū)Υa的語義與邏輯信息進(jìn)行抽象表示,因此具有較高的分析準(zhǔn)確性。此外,基于機器學(xué)習(xí)的二進(jìn)制代碼相似性分析方法還具有以下優(yōu)點:

(1)計算高效。運行時間與需要處理的代碼規(guī)模呈線性關(guān)系,適用于大規(guī)模數(shù)據(jù)集。

(2)遷移性好。可以利用不同的數(shù)據(jù)對模型進(jìn)行訓(xùn)練,以適應(yīng)不同的應(yīng)用場景或任務(wù)。

(3)泛化性強。能夠在一定程度上消除代碼編譯過程引入的差異以及代碼混淆帶來的影響。

本文針對基于機器學(xué)習(xí)的二進(jìn)制代碼相似性分析方法展開綜述。第1節(jié)簡要介紹了基于機器學(xué)習(xí)的二進(jìn)制代碼相似性分析流程;第2節(jié)與第3節(jié)分別從特征與模型兩個方面對現(xiàn)有方法進(jìn)行總結(jié);第4節(jié)針對軟件供應(yīng)鏈安全審查問題探討該技術(shù)領(lǐng)域未來的發(fā)展趨勢;最后對全文進(jìn)行總結(jié)。

1 基于機器學(xué)習(xí)的二進(jìn)制代碼相似性檢測流程

基于機器學(xué)習(xí)的二進(jìn)制代碼相似性分析流程如圖1 所示。

圖1 基于機器學(xué)習(xí)的二進(jìn)制代碼相似性分析流程

在對二進(jìn)制代碼進(jìn)行相似性分析時,首先需要利用反編譯軟件對二進(jìn)制代碼進(jìn)行解析,生成二進(jìn)制代碼的中間表示,常用的二進(jìn)制代碼中間表示包括代碼字符串或序列、代碼圖形結(jié)構(gòu)以及抽象語法樹等。在生成中間表示的過程中,需要確定二進(jìn)制代碼相似性度量的最小單元,本文涉及的方法大多將函數(shù)作為相似性比較的最小單元,這是由于函數(shù)通常是程序中最小的功能實現(xiàn)單元。生成二進(jìn)制代碼的中間表示之后,便可以從代碼的中間表示中提取代碼特征。雖然代碼的特征類型紛繁復(fù)雜,但總的來說只有兩種提取方式:一種是以人工的方式選擇或構(gòu)造代碼的特征量,再利用特征工程技術(shù)對特征量進(jìn)行篩選;另一種是利用深度學(xué)習(xí)方法對代碼特征進(jìn)行自動抽取。前者需要研究者具備豐富的領(lǐng)域知識,后者需要大量的模型訓(xùn)練樣本。在完成二進(jìn)制代碼的特征提取后,即可將特征輸入機器學(xué)習(xí)模型,利用機器學(xué)習(xí)模型對代碼特征進(jìn)行融合,進(jìn)而進(jìn)行代碼的相似性度量,最后將二進(jìn)制代碼的相似性分析結(jié)果輸出。二進(jìn)制代碼的相似性分析結(jié)果通常用于不同二進(jìn)制代碼的相似性判別與相似代碼的檢索。

在基于機器學(xué)習(xí)的二進(jìn)制代碼相似性檢測流程中,代碼特征提取與機器學(xué)習(xí)模型訓(xùn)練是兩個最重要的步驟。基于機器學(xué)習(xí)的二進(jìn)制代碼相似性分析方法的準(zhǔn)確性很大程度上取決于代碼特征的選取與機器學(xué)習(xí)模型的設(shè)計,因此本文從這兩個方面分別展開論述,對現(xiàn)有基于機器學(xué)習(xí)的二進(jìn)制代碼相似性分析方法進(jìn)行總結(jié)。

2 面向相似性檢測的二進(jìn)制代碼特征選取

利用機器學(xué)習(xí)技術(shù)實現(xiàn)二進(jìn)制代碼的相似性分析,首先需要將二進(jìn)制代碼表示為數(shù)值化的特征向量。利用不同的特征向量生成方法可以對代碼不同維度的信息進(jìn)行提取。為全面系統(tǒng)地梳理基于機器學(xué)習(xí)的二進(jìn)制代碼相似性分析技術(shù)的各分支,本文根據(jù)生成特征向量時是否需要提取二進(jìn)制代碼的圖形結(jié)構(gòu),將其劃分為代碼序列特征與代碼圖特征兩類。

2.1 代碼序列特征

代碼序列特征可以分為直接從原始字節(jié)數(shù)據(jù)中提取的特征與利用反匯編代碼生成的特征兩種。直接從原始字節(jié)數(shù)據(jù)中提取特征向量的方法雖然簡單直接,但穩(wěn)定性差,細(xì)微地代碼修改即可對相似性分析結(jié)果造成較大影響。目前,這類方法主要應(yīng)用于跨版本的二進(jìn)制程序相似性分析與惡意程序檢測,鮮少涉及跨平臺與跨編譯選項的應(yīng)用場景。

文獻(xiàn)[3]將二進(jìn)制程序中各函數(shù)的原始字節(jié)數(shù)據(jù)轉(zhuǎn)化為特征向量與特征信號,并利用特征向量的相似系數(shù)與特征信號的相關(guān)系數(shù)在二進(jìn)制程序的不同版本中查找對應(yīng)的函數(shù)。文獻(xiàn)[4]首先對惡意軟件樣本的原始字節(jié)進(jìn)行特征提取,其次利用特征哈希的方法降低特征空間的維度,研究惡意軟件樣本之間的相似性。此外,卷積神經(jīng)網(wǎng)絡(luò)等深度學(xué)習(xí)技術(shù),也可用于為原始字節(jié)數(shù)據(jù)生成特征向量[5],實現(xiàn)二進(jìn)制代碼的相似性分析。

與直接從原始字節(jié)數(shù)據(jù)中生成代碼特征向量的方法相比,利用反匯編代碼生成代碼特征向量的方法在二進(jìn)制代碼相似性分析中的應(yīng)用更加普遍。

一些研究者從函數(shù)的匯編指令中提取統(tǒng)計特征作為函數(shù)的特征表示,包括函數(shù)中常量與被調(diào)用函數(shù)的數(shù)量等。文獻(xiàn)[6]、文獻(xiàn)[7]首先根據(jù)匯編指令的功能對其進(jìn)行分類,例如是否處理字符串,是否處理堆內(nèi)存等;其次統(tǒng)計程序函數(shù)中每個類別的匯編指令的數(shù)量,作為函數(shù)特征輸入機器學(xué)習(xí)模型。另一些研究者從函數(shù)的匯編指令中提取代碼的特征屬性作為函數(shù)的特征描述,包括函數(shù)的局部變量與形參的大小、函數(shù)返回值的類型、程序中引入的外部函數(shù)名與外部函數(shù)的輸入等[8-10]。這類特征在輸入機器學(xué)習(xí)模型之前,通常首先需要進(jìn)行標(biāo)準(zhǔn)化與歸一化。

近年來,一些研究者仿照自然語言的處理方法為函數(shù)與基本塊的匯編指令序列生成嵌入向量,利用這些嵌入向量在數(shù)據(jù)集中實現(xiàn)相似代碼的檢索[11-13]。這類方法成功的原因在于利用深度學(xué)習(xí)模型提取了二進(jìn)制代碼的深層語義特征,從而使相似函數(shù)的判定更加可靠。

值得注意的是,一些二進(jìn)制代碼相似性分析方法在利用代碼序列特征進(jìn)行分析的同時,融合了代碼圖特征[6,8-9],這種方法能夠突破單純使用代碼序列特征的局限性,進(jìn)一步改善分析效果。

2.2 代碼圖特征

與代碼序列特征相比,代碼的圖特征顯得更加常用,這是因為這一類特征在表達(dá)代碼語義信息的同時,可以在一定程度上反映代碼的結(jié)構(gòu)信息。程序控制流圖是代碼圖特征最主要的來源。

一些研究者從程序控制流圖中提取統(tǒng)計特征作為函數(shù)特征,例如控制流圖中節(jié)點與邊的數(shù)量等[8-9]。文獻(xiàn)[14]中提出了三維控制流圖(Threedimensional Control Flow Graph,3D-CFG)的概念,將CFG 中的每個節(jié)點表示為一個三維的向量,將兩個3D-CFG 質(zhì)心之間的距離作為兩個函數(shù)之間的相似性度量。文獻(xiàn)[6]與文獻(xiàn)[15]從CFG 中提取圖的能量、偏度以及圈復(fù)雜度等作為函數(shù)特征。文獻(xiàn)[16]通過計算循環(huán)頭與循環(huán)尾的數(shù)量以及代表向前與向后傳遞的控制流的邊的數(shù)量,從CFG 的環(huán)路中提取函數(shù)特征,對代碼結(jié)構(gòu)進(jìn)行描述。

文獻(xiàn)[6]、文獻(xiàn)[16]與文獻(xiàn)[17]同時利用程序控制流圖和函數(shù)調(diào)用圖對二進(jìn)制程序進(jìn)行特征提取。利用函數(shù)調(diào)用圖進(jìn)行特征提取通常基于對程序中主調(diào)函數(shù)與被調(diào)函數(shù)數(shù)量的統(tǒng)計,計算函數(shù)調(diào)用圖中對應(yīng)內(nèi)部函數(shù)調(diào)用與外部庫函數(shù)調(diào)用的節(jié)點的入度與出度,從而實現(xiàn)與程序控制流圖的有效互補。

文獻(xiàn)[18]與文獻(xiàn)[19]將數(shù)據(jù)流圖與控制流圖相結(jié)合,形成一種新的語義流圖作為代碼的中間表示。這種新的語義流圖能夠同時表示程序的數(shù)據(jù)流和控制流信息,因此對輕混淆和重構(gòu)具有較強的抵抗性。文獻(xiàn)[18]從語義流圖中提取自反、對稱、反對稱及傳遞等關(guān)系,構(gòu)建代碼的特征向量表示。文獻(xiàn)[19]從基本塊中提取不同類別匯編指令的數(shù)量作為基本塊的數(shù)值特征,進(jìn)而利用深度學(xué)習(xí)模型將語義流圖轉(zhuǎn)化為向量,并將其作為語義流圖的特征表示。

一些方法對圖特征進(jìn)行哈希,實現(xiàn)相似函數(shù)的快速匹配。文獻(xiàn)[20]利用局部敏感哈希算法為函數(shù)的屬性控制流圖(Attributed Control Flow Graph,ACFG)構(gòu)建相似特征索引。與控制流圖一樣,屬性控制流圖的節(jié)點與程序中的基本塊對應(yīng),基本塊的語法特征則以節(jié)點屬性的形式包含在節(jié)點中。文獻(xiàn)[21]提出的面向CFG 的拓?fù)涓兄#═opology-Aware Hashing,TAH)方法首先從CFG 中提取n元混合圖形特征,其次在此基礎(chǔ)上利用模糊哈希算法將其轉(zhuǎn)化為哈希指紋,實現(xiàn)二進(jìn)制函數(shù)的相似性分析。與其他基于CFG 的相似性分析方法相比,這類方法顯得更加高效,可以用于大規(guī)模的數(shù)據(jù)集。

近年來,隨著圖神經(jīng)網(wǎng)絡(luò)的發(fā)展,一些研究者利用圖神經(jīng)網(wǎng)絡(luò)技術(shù)生成控制流圖的嵌入向量,并利用這些嵌入向量實現(xiàn)相似代碼的檢索,帶來了新的技術(shù)突破[22-24]。這類方法可以同時對二進(jìn)制代碼的語義特征和結(jié)構(gòu)特征進(jìn)行深度抽取,全面表達(dá)其邏輯特性,對提高二進(jìn)制代碼相似性分析的準(zhǔn)確性具有重要的意義,目前正在成為二進(jìn)制代碼相似性分析領(lǐng)域的研究熱點。

3 二進(jìn)制代碼相似性分析模型構(gòu)建

在對二進(jìn)制代碼進(jìn)行特征提取后,需要進(jìn)一步構(gòu)建機器學(xué)習(xí)模型,利用提取到的代碼特征向量實現(xiàn)相似性分析。一些對算力要求不高的傳統(tǒng)機器學(xué)習(xí)模型已在輕量級二進(jìn)制代碼相似性檢測工具中得到了成功的應(yīng)用。近年來,隨著深度學(xué)習(xí)技術(shù)的發(fā)展,許多研究者致力于利用深度學(xué)習(xí)模型使二進(jìn)制代碼的相似性分析結(jié)果更加魯棒、分析過程更加智能。

3.1 傳統(tǒng)機器學(xué)習(xí)模型

文獻(xiàn)[25]提出的discovRE 工具采用控制流圖圖匹配的方法計算函數(shù)之間的相似度。為縮減圖匹配過程中產(chǎn)生的巨量計算成本,該方法首先利用K鄰近算法(K-Nearest Neighbor,KNN)作為預(yù)過濾器,快速識別少量候選函數(shù)。這種方法能在大型代碼庫中實現(xiàn)相似函數(shù)的高效搜索,但可靠性仍有待提高。

文獻(xiàn)[20]提出的Genius 方法將屬性控制流圖作為函數(shù)的原始特征,通過譜聚類(Spectral Clustering)的方法對屬性控制流圖進(jìn)行無監(jiān)督聚類,生成屬性控制流圖碼本;進(jìn)而將作為原始特征的屬性控制流圖映射為高維數(shù)值向量,向量的每一維表示該屬性控制流圖到碼本中每一個聚類類別的距離。盡管屬性控制流圖碼本在使用過程中只需生成一次,但在生成過程中依然需要進(jìn)行大量的圖匹配,且在計算屬性控制流圖到碼本中每一個聚類類別的距離時也要用到圖匹配;因此,利用Genius 進(jìn)行代碼相似性分析時,計算量有時仍然很大。

文獻(xiàn)[26]提出了一種基于支持向量機(Support Vector Machine,SVM)和屬性控制流圖的二進(jìn)制代碼相似性分析方法,該方法能夠在函數(shù)級別上實現(xiàn)跨架構(gòu)的已知二進(jìn)制漏洞搜索。該方法首先提取程序的函數(shù)級特征輸入支持向量機模型,篩選出少量可疑函數(shù);其次基于可疑函數(shù)的屬性控制流圖計算漏洞函數(shù)與可疑函數(shù)之間的圖相似度。實驗表明,該方法可以在實際場景中取得良好的應(yīng)用效果。

為進(jìn)一步提高跨架構(gòu)的已知二進(jìn)制漏洞搜索效率,文獻(xiàn)[27]在函數(shù)級別上提出了一種基于支持向量機、K鄰近算法與屬性控制流圖的分階段漏洞搜索方法。該方法首先利用K鄰近算法對待測函數(shù)集進(jìn)行修剪,其次利用支持向量機模型在函數(shù)預(yù)過濾階段進(jìn)行優(yōu)化。盡管同時使用K鄰近算法與支持向量機模型時搜索的準(zhǔn)確性比僅使用支持向量機時稍低,但效率得到了顯著的提高。

3.2 深度學(xué)習(xí)模型

與傳統(tǒng)機器學(xué)習(xí)模型相比,以深度神經(jīng)網(wǎng)絡(luò)為基礎(chǔ)的深度學(xué)習(xí)模型能夠?qū)崿F(xiàn)從原始特征到輸出結(jié)果的端到端訓(xùn)練,對專業(yè)知識依賴較少。此外,深度學(xué)習(xí)模型能夠在原始特征的基礎(chǔ)上學(xué)習(xí)二進(jìn)制代碼的深度語義特征,有利于實現(xiàn)跨編譯器、跨架構(gòu)、抗混淆的二進(jìn)制代碼相似性分析。

在現(xiàn)有的研究工作中,應(yīng)用于二進(jìn)制代碼相似性分析的深度學(xué)習(xí)模型主要可以分為時序模型與圖模型兩類,前者將代碼表示為特征序列作為模型輸入,后者將代碼表示為圖數(shù)據(jù)結(jié)構(gòu)作為模型輸入。

文獻(xiàn)[5]提出的αDiff 模型直接將程序的二進(jìn)制字節(jié)作為卷積神經(jīng)網(wǎng)絡(luò)的輸入,生成二進(jìn)制字節(jié)數(shù)據(jù)的嵌入向量,進(jìn)而結(jié)合函數(shù)的出入度和函數(shù)調(diào)用表分析程序的相似性。文獻(xiàn)[11]、文獻(xiàn)[12]、文獻(xiàn)[13]將程序控制流圖分解為多個匯編指令序列,每個指令序列對應(yīng)程序的一條執(zhí)行路徑。文獻(xiàn)[11]在構(gòu)建復(fù)雜的深度神經(jīng)網(wǎng)絡(luò)的同時,對詞匯間的語義關(guān)系和函數(shù)的整體特征進(jìn)行學(xué)習(xí),并通過將二者進(jìn)行融合生成函數(shù)的特征向量,用于相似函數(shù)的搜索。文獻(xiàn)[12]首先利用Word2vec 對每一條匯編指令進(jìn)行嵌入,其次利用孿生的循環(huán)神經(jīng)網(wǎng)絡(luò)生成函數(shù)的嵌入向量,最后利用對比損失函數(shù)(Contrastive Loss Function)使語義相似的函數(shù)在特征空間中余弦距離較小。文獻(xiàn)[13]首先利用基于負(fù)采樣的skip-gram 模型將匯編指令表示為數(shù)值向量,其次仿照自然語言處理中的機器翻譯技術(shù),利用兩個長短期記憶網(wǎng)絡(luò)(Long Short Term Memory Network,LSTM)在不同架構(gòu)下語義相同的指令序列之間建立對應(yīng)關(guān)系,從而解決跨指令集的相似函數(shù)搜索問題。

與時序模型相比,圖模型能夠?qū)瘮?shù)各基本塊之間的連接關(guān)系進(jìn)行編碼,從而更好地利用函數(shù)的結(jié)構(gòu)信息。文獻(xiàn)[28]提出的Gemini 模型在Genius[20]的基礎(chǔ)上,利用深度神經(jīng)網(wǎng)絡(luò)實現(xiàn)從屬性控制流圖到高維向量空間的圖嵌入,并利用圖嵌入之間的余弦距離實現(xiàn)函數(shù)之間的相似性比較,在提高檢測效率的同時,大大提高了檢測的準(zhǔn)確性。文獻(xiàn)[19]利用語義感知的深度神經(jīng)網(wǎng)絡(luò)對程序語義流圖(由數(shù)據(jù)流圖和控制流圖共同生成)中每個基本塊進(jìn)行特征編碼,然后將每個基本塊的特征向量相加作為整個函數(shù)的特征向量,利用特征向量之間的余弦距離作為函數(shù)的相似性度量。文獻(xiàn)[24]構(gòu)建了一個融合控制流圖節(jié)點語義信息、節(jié)點結(jié)構(gòu)信息以及節(jié)點順序信息的復(fù)雜神經(jīng)網(wǎng)絡(luò),并在此基礎(chǔ)上討論了三類信息對二進(jìn)制代碼相似性識別的不同貢獻(xiàn)。文獻(xiàn)[29]利用圖神經(jīng)網(wǎng)絡(luò),結(jié)合自頂向下與自底向上兩種相似度表征模式,對二進(jìn)制函數(shù)之間的圖編輯距離進(jìn)行預(yù)測。文獻(xiàn)[22]利用Word2Vec 與隨機游走的方法在進(jìn)程間控制流圖上學(xué)習(xí)基本塊的特征表示,利用k-hop 貪婪匹配算法實現(xiàn)二進(jìn)制程序的相似性檢測。文獻(xiàn)[30]利用三元損失函數(shù)對以屬性控制流圖為輸入的圖神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,實現(xiàn)基于屬性控制流圖的函數(shù)相似度排序。

4 未來展望

近年來,軟件供應(yīng)鏈的安全問題日益凸顯,一個軟件模塊的漏洞在該軟件被引入其下游軟件的開發(fā)流程后,所能造成的影響和潛在破壞力非常大。在無法獲得軟件源代碼的情況下,針對軟件二進(jìn)制代碼的相似性分析是對軟件供應(yīng)關(guān)系進(jìn)行細(xì)粒度審查的重要手段。

在對軟件供應(yīng)關(guān)系進(jìn)行安全審查時,為實現(xiàn)對軟件開發(fā)過程中有重用價值的代碼片段的全方位覆蓋,需要在龐大的二進(jìn)制代碼庫中對同源代碼進(jìn)行檢索。

基于機器學(xué)習(xí)的二進(jìn)制代碼相似性分析方法首先將海量代碼庫中的二進(jìn)制代碼根據(jù)其語義與邏輯特征映射到高維特征空間;其次將特征向量預(yù)先存儲在大規(guī)模數(shù)據(jù)庫中;最后在進(jìn)行重用代碼審查時,只需將被檢測的二進(jìn)制代碼映射到相同的特征空間,并在數(shù)據(jù)庫中檢索與之距離最近者,審查效率較高。因此基于機器學(xué)習(xí)的二進(jìn)制代碼相似性分析技術(shù)很可能在該領(lǐng)域得到大規(guī)模的應(yīng)用,成為該領(lǐng)域的主流技術(shù)路線。如何構(gòu)建能夠正確反映二進(jìn)制代碼同源性特征的特征空間將成為該領(lǐng)域核心的技術(shù)難題。隨著深度學(xué)習(xí)技術(shù)的不斷發(fā)展,進(jìn)一步改進(jìn)模型的結(jié)構(gòu)與訓(xùn)練方法也許會成為解決這一關(guān)鍵技術(shù)難題的鑰匙。

此外,在對海量數(shù)據(jù)庫中的重用代碼進(jìn)行檢索時,將代碼序列特征與代碼圖特征相結(jié)合,提取代碼不同層面的特征,包括但不限于文本、結(jié)構(gòu)、數(shù)據(jù)和控制依賴、語義等。對于每種特征采用不同的檢索策略進(jìn)行檢索,并對檢索結(jié)果進(jìn)行融合,實現(xiàn)相似代碼的綜合排序,也是提高二進(jìn)制代碼同源性審查準(zhǔn)確性的有效方法。這種方法理論上可以大大增加機器學(xué)習(xí)算法在海量二進(jìn)制代碼檢索問題中的實用性,將檢測效率和準(zhǔn)確性同時提升到滿足批量化的軟件供應(yīng)鏈安全審查的范圍。

5 結(jié)語

近年來,基于機器學(xué)習(xí)的二進(jìn)制代碼相似性分析技術(shù)日益受到學(xué)術(shù)界與工業(yè)界的青睞。本文從代碼特征的選取與機器學(xué)習(xí)模型的設(shè)計兩個方面對現(xiàn)有的基于機器學(xué)習(xí)的二進(jìn)制代碼相似性分析技術(shù)進(jìn)行了梳理,總結(jié)了該技術(shù)領(lǐng)域的發(fā)展脈絡(luò)。在此基礎(chǔ)上,對如何將基于機器學(xué)習(xí)的二進(jìn)制代碼相似性分析技術(shù)應(yīng)用于海量代碼庫中的同源代碼快速檢索進(jìn)行了探討。隨著軟件供應(yīng)鏈安全問題的日益凸顯,該方向在未來將具有更加重要的研究價值。

猜你喜歡
利用特征模型
一半模型
利用min{a,b}的積分表示解決一類絕對值不等式
重要模型『一線三等角』
利用一半進(jìn)行移多補少
重尾非線性自回歸模型自加權(quán)M-估計的漸近分布
如何表達(dá)“特征”
不忠誠的四個特征
利用數(shù)的分解來思考
Roommate is necessary when far away from home
抓住特征巧觀察
主站蜘蛛池模板: 亚洲欧美日韩色图| 欧美日韩理论| 乱人伦99久久| 国产欧美在线观看一区| 国产精品99一区不卡| 老司国产精品视频91| 中文字幕人妻av一区二区| aaa国产一级毛片| 精品99在线观看| 22sihu国产精品视频影视资讯| 91视频免费观看网站| 91精品久久久久久无码人妻| 久久精品只有这里有| 国产精品第页| 好紧太爽了视频免费无码| 久久久久国产精品嫩草影院| 91精品啪在线观看国产| 色AV色 综合网站| 91精品综合| 欧美日韩精品一区二区在线线| 欧美国产成人在线| 亚洲精品无码AⅤ片青青在线观看| 青青青视频免费一区二区| 久久精品无码中文字幕| 黑色丝袜高跟国产在线91| 亚洲资源站av无码网址| 最新国语自产精品视频在| 国产啪在线91| 亚洲国产第一区二区香蕉| 成人福利在线免费观看| 国产大片黄在线观看| 波多野结衣亚洲一区| 国产欧美日韩综合一区在线播放| 欧洲成人免费视频| 国产女主播一区| 9久久伊人精品综合| 一本大道无码日韩精品影视| 国产丝袜第一页| 欧美日韩理论| 亚洲婷婷在线视频| 国产综合在线观看视频| 国产人在线成免费视频| 久久毛片网| 国产第一页免费浮力影院| 免费不卡在线观看av| 九九热这里只有国产精品| 亚洲第一区精品日韩在线播放| 好紧太爽了视频免费无码| 久久国语对白| 青青草原国产一区二区| 永久成人无码激情视频免费| 99热这里只有精品在线观看| 国产成人综合网| 无码一区二区波多野结衣播放搜索| 天堂成人av| 大学生久久香蕉国产线观看| 久草热视频在线| 曰韩人妻一区二区三区| 日韩小视频在线播放| 国产综合网站| 免费国产好深啊好涨好硬视频| 亚洲欧美不卡视频| 伊人久久久大香线蕉综合直播| 日韩欧美高清视频| 日韩第九页| 成人一级免费视频| 超碰免费91| 欧美 亚洲 日韩 国产| 丁香婷婷在线视频| 婷婷色婷婷| 国产门事件在线| 人妻丰满熟妇αv无码| 欧美成人综合在线| 国产成人免费手机在线观看视频| 亚洲热线99精品视频| 国产在线视频导航| 欧美日韩国产在线观看一区二区三区 | 四虎国产在线观看| 人人91人人澡人人妻人人爽| 国产成人区在线观看视频| 污网站免费在线观看| 欧美三级视频网站|