亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于結構特征的二進制代碼安全缺陷分析模型

        2017-11-10 08:02:44許團屈蕾蕾石文昌
        網(wǎng)絡與信息安全學報 2017年9期
        關鍵詞:分析模型二進制語句

        許團,屈蕾蕾,石文昌

        ?

        基于結構特征的二進制代碼安全缺陷分析模型

        許團,屈蕾蕾,石文昌

        (中國人民大學信息學院,北京 100872)

        針對現(xiàn)有方法檢測復雜結構二進制代碼安全缺陷的不足,提出新的分析模型,并給出其應用方法。首先以缺陷的源代碼元素集合生成特征元素集合,抽取代碼結構信息,構建分析模型。然后依據(jù)各類中間表示(IR, intermediate representation)語句的統(tǒng)計概率計算分析模型,查找滿足特征模型的IR代碼組,通過IR代碼與二進制代碼的轉(zhuǎn)換關系,實現(xiàn)對二進制程序中代碼安全缺陷的有效檢測。分析模型可應用于二進制單線程程序和并行程序。實驗結果表明,相對于現(xiàn)有方法,應用該分析模型能夠更全面深入地檢測出各類結構復雜的二進制代碼安全缺陷,且準確率更高。

        二進制分析;分析模型;軟件安全缺陷檢測;缺陷代碼識別

        1 引言

        二進制程序中的安全缺陷是危害軟件系統(tǒng)的安全性和可靠性的重要原因,目前二進制程序的安全性檢測成為研究熱點。根據(jù)有代表性的研究成果[1~3]可知,多數(shù)類型的軟件安全缺陷是在程序代碼的實現(xiàn)過程中產(chǎn)生。本文把程序代碼實現(xiàn)過程中產(chǎn)生的各種類型軟件安全缺陷稱為代碼安全缺陷,并把二進制程序中代碼安全缺陷稱為二進制代碼安全缺陷。

        近年來,各種結構復雜的二進制代碼安全缺陷日益繁多。例如,后門、競爭條件及鑒權繞過等邏輯錯誤類型的代碼安全缺陷。它們不僅存在于二進制單線程程序,而且分布于各種二進制并行程序。而符號執(zhí)行[4,5]、污點分析[6,7]及模糊測試[8,9]等現(xiàn)有方法難以發(fā)現(xiàn)結構復雜的代碼安全缺陷,也不能有效地應用于二進制并行程序,使軟件系統(tǒng)面臨安全性風險。分析現(xiàn)有方法的檢測過程可知,這些方法均未深入解析二進制代碼安全缺陷代碼結構,不能有效地識別其結構特征,從而產(chǎn)生上述不足。

        本文提出對二進制代碼安全缺陷的分析模型。應用該模型,可以有效地解決現(xiàn)有方法的不足。本文創(chuàng)新點如下。

        1) 給出對二進制代碼安全缺陷的分析原理,基于該分析原理提出二進制代碼安全缺陷分析模型的構建方法。該方法首先基于代碼安全缺陷的源代碼元素集合構建中間表示代碼元素集合,以校驗樣本測試IR代碼元素集合,獲取缺陷IR代碼的關鍵特征,建立特征元素集合。然后以IR語句的執(zhí)行關系劃分特征元素集合,并提取特征元素包含的結構信息生成分析模型。分析模型完整包含了代碼安全缺陷的結構特征信息,能夠為準確檢測二進制程序中各類代碼安全缺陷提供充分的支持及有效的判定標準。

        2) 給出對二進制代碼安全缺陷分析模型的應用原理,基于該應用原理提出分析模型的應用方法,依據(jù)分析模型中結構特征信息實施對二進制程序中代碼安全缺陷的有效檢測。首先基于IR語句的統(tǒng)計概率計算分析模型中各路徑單元的權重,利用工具VTS獲取二進制程序的IR執(zhí)行路徑集合。然后在IR執(zhí)行路徑中檢測滿足分析模型的IR代碼組,并通過IR語句與機器指令之間的對應信息,檢測出被測試二進制程序中代碼安全缺陷。該方法既能夠準確地查找出現(xiàn)有方法難以發(fā)現(xiàn)的各類結構復雜的二進制代碼安全缺陷,也可以有效地應用于現(xiàn)有方法難以檢測的二進制并行程序,并且其檢測過程無需觸發(fā)代碼安全缺陷,能夠有效地避免檢測結果的誤報和漏報。

        2 模型構建

        為了闡述二進制代碼安全缺陷分析模型的構建方法,有必要給出以下若干定義。

        定義1(程序執(zhí)行路徑)在二進制程序B的一次執(zhí)行過程中,每一個線程執(zhí)行的機器指令序列都稱為一條指令序列。對B執(zhí)行過程產(chǎn)生的任意一條指令序列,若移除其中不包含于B的機器指令,則得到的機器指令序列稱為B的一條指令執(zhí)行路徑。若程序分析工具把B的一條指令執(zhí)行路徑轉(zhuǎn)換為一條IR語句序列,則該IR語句序列稱為B的一條IR執(zhí)行路徑。IR執(zhí)行路徑與指令執(zhí)行路徑統(tǒng)稱為程序執(zhí)行路徑。

        定義2(代碼組)任意一個源程序P中語義相關的(≥1)個代碼段構成一個源代碼組。在P編譯為二進制程序B的過程中,若P中一個源代碼組編譯生成(≥1)個機器指令段,則該個機器指令段構成一個二進制代碼組,稱為的機器碼,稱為的源碼。當程序分析工具把B的指令執(zhí)行路徑轉(zhuǎn)換為IR執(zhí)行路徑時,若包含的機器指令被轉(zhuǎn)換為個IR語句段,則該個IR語句段構成一個IR代碼組,稱為和的IR碼,稱為的源碼,稱為的機器碼。源代碼組、二進制代碼組及IR代碼組統(tǒng)稱為代碼組。

        定義3(缺陷IR代碼)若類型軟件安全的缺陷是在程序代碼的實現(xiàn)過程中產(chǎn)生,則稱其為類型代碼安全缺陷。若源程序中一個類型代碼安全缺陷包含(≥1)個代碼段,則該個代碼段構成的一個源代碼組,稱為類型缺陷源代碼,并稱的機器碼及IR碼分別為類型缺陷二進制代碼及類型缺陷IR代碼。

        定義4(IR語句的匹配)設為一條程序語句,對中任意一項數(shù)據(jù),稱為的數(shù)據(jù),記為∈。設u、u為兩條IR語句,若它們之間滿足以下條件:①uu的語句類型相同;②對任意數(shù)據(jù)du,存在數(shù)據(jù)du,ud的位置與ud的位置相同,且dd具有相同的類型。則稱uu匹配,記為u?u

        基于上述概念可知,缺陷源代碼、缺陷二進制代碼及缺陷IR代碼都是代碼安全缺陷的具體存在形式,它們之間可以相互轉(zhuǎn)換,對它們的代碼結構進行有效的分析,是檢測代碼安全缺陷的基礎和前提。本文對二進制代碼安全缺陷的分析原理如圖1所示。

        首先把缺陷源代碼轉(zhuǎn)換為缺陷IR代碼,基于校驗樣本提取出其代碼特征。其次利用程序語句之間的執(zhí)行關系,劃分代碼特征的組成部分。然后對各組成部分進行形式化抽象,獲取其中代碼結構的完整信息。由于IR語句與機器指令之間一一對應,且語義相同,所以上述過程獲取的結構特征信息準確地描述了二進制代碼安全缺陷的具體存在形式,能夠作為檢測二進制程序中代碼安全缺陷的有效依據(jù)。

        根據(jù)上述原理,給出構建任意類型二進制代碼安全缺陷的分析模型的6個主要步驟。

        步驟2 把源程序P編譯為二進制程序B,應用工具VTS獲取B的IR執(zhí)行路徑。VTS是基于開源軟件Valgrind[10,11]和Taintgrind[12]實現(xiàn)的程序分析工具,能夠監(jiān)控B的動態(tài)執(zhí)行過程。當B的動態(tài)執(zhí)行過程結束,VTS不僅輸出B的IR執(zhí)行路徑,而且輸出IR語句、機器指令及源程序語句之間的對應信息,據(jù)此能夠定位每一條源程序語句所對應的機器指令組和IR語句組。圖2中示例為Linux C語句“if()”對應的機器指令組和IR語句組。

        圖1 二進制代碼安全缺陷分析原理

        圖2 if(t)對應的機器指令組及IR語句組

        步驟4 構建校驗樣本集合。首先收集候選校驗樣本,建立候選校驗樣本集合。對任意一個IR代碼組,若其滿足如下條件:①不是缺陷IR代碼;②中IR語句與中IR語句一一對應,且每一對對應的IR語句之間都具有匹配關系。則選擇作為候選校驗樣本,把放入候選校驗樣本集合。然后選擇的一個子集,使以下條件成立:①對任意IR代碼組λ,λ∈,λλ不匹配;②對任意IR代碼組λ∈,存在IR代碼組λ∈,滿足:λ?λ。稱為校驗樣本集合,其中IR代碼組稱為校驗樣本。

        步驟5 構建特征元素集合。以IR代碼元素集合和校驗樣本集合為輸入,執(zhí)行特征元素集合生成算法,得到集合,其中元素描述了缺陷IR代碼的關鍵特征,稱為特征元素。

        算法1 特征元素集合生成算法Characterisic- ElementSetGenerate

        輸入 IR代碼元素集合,校驗樣本集合

        輸出 特征元素集合

        1)←

        2) for each (u,,u)∈do

        3) if PreOpt ((u,,u),,)==False then

        4) RelationVectorOpt ((u,,u),,)

        5) for each (u,,u)∈do

        6) if FurOpt ((u,,u),,)==False then

        7) RelationVectorOpt ((u,,u),,)

        8) foreach (u,,u)∈do

        9) if ER ((u,,u),,)==False then

        10) RelationVectorOpt ((u,,u),,)

        11) return

        算法1中各函數(shù)分別執(zhí)行不同的檢測過程,下面分別闡述。

        1) 函數(shù)PreOpt((u,,u),,)檢測向量中語句關系。若包含數(shù)據(jù)共享關系,則返回True。否則,返回函數(shù)ElementRedundancy ((u,,u),,)。

        2) 函數(shù)FurOpt ((u,,u),,)在向量中查找數(shù)據(jù)依賴關系。若中包含數(shù)據(jù)依賴關系,則返回True。否則,返回函數(shù)ER ((u,,u),,)。

        3) 函數(shù)ER((u,,u),,)去除中(u,,u),并調(diào)用SampleMatching(,),若其返回True,則把(u,,u)加入集合,返回False。否則,返回True。

        4) 函數(shù)RelationVectorOpt((u,,u),,)檢測向量中冗余的語句關系,過程如下。

        ①查找中未檢測的語句關系。若中不存在未檢測的語句關系,則檢測過程結束。否則,從中去除任意一項未檢測的語句關系,設其為r。然后調(diào)用函數(shù)SampleMatching(,)。

        ②若函數(shù)SampleMatching返回True,則把r加入,并標記其為已檢測。執(zhí)行步驟①。

        5) 函數(shù)SampleMatching(,)基于中校驗樣本檢測集合。若存在校驗樣本∈,的語句與的語句之間具有一種一一對應關系,成立如下條件。

        ②對任意IR代碼元素(u,,u)∈,若其中uu分別與的語句uu對應,則uu之間具有向量中全部關系。

        則函數(shù)返回True。否則,函數(shù)返回False。

        步驟6 生成二進制代碼安全缺陷的分析模型。首先劃分集合中元素,主要過程為:①把集合中不包含于任意一條IR執(zhí)行路徑的元素放入集合1;②把集合中不包含于1的元素分別放入集合1~L,使L(1≤≤)中元素包含于同一條IR執(zhí)行路徑;③把集合1~L分別作為元素加入集合2,得到2={1,…,L}。1~L及1稱為的路徑子集。

        然后以集合序偶<1,2>為輸入,執(zhí)行分析模型生成算法,得到分析模型<1,2>,1中元素D(1≤≤)稱為路徑單元,2稱為組合單元,2和D中元素稱為模型元素。

        算法2 分析模型生成算法AnalysisModel- Generate

        輸入 集合序偶<1,2>

        輸出 分析模型<1,2>

        2) foreachL∈2do

        4) foreach ((u,,u)∈Ldo

        7)1←1∪{D}

        8) foreach (u,,u)∈1do

        11) return <1,2>

        算法2中,函數(shù)Transform(u,,u)以字符串標記IR語句u、u的關鍵信息,并把各字符串分別組成向量η=(o,a1,···,a)、η=(o,a1,···,a)。ηη稱為語句項,其中字符串o、o分別標記了u、u的語句類型,稱為語句類型字符串,字符串a(1≤≤)、a(1≤≤)分別標記了uu中單項數(shù)據(jù)的類型及位置等數(shù)據(jù)信息,稱為數(shù)據(jù)字符串。該函數(shù)返回以語句項η、η及關系向量構成的模型元素(η,,η)。

        若類型二進制代碼安全缺陷具有多種分析模型,則每一種分析模型的構建過程都需要經(jīng)過上述步驟。上述建模過程在兩個層次上對二進制代碼安全缺陷的結構進行分析:不僅在程序語句的層次把其結構分解為模型元素集合,而且在程序執(zhí)行路徑的層次把其結構分解為路徑單元和組合單元。這使分析模型完整包含了二進制代碼安全缺陷的結構特征信息,不僅其包含的(≥1)個路徑單元可以準確地描述二進制代碼安全缺陷的個不同組成部分,并且其包含的組合單元給出了該個組成部分應滿足的必要條件。因此,分析模型能夠為準確地檢測二進制程序中代碼安全缺陷提供充分支持及有效的判定標準。

        3 模型應用

        應用分析模型可以實現(xiàn)對二進制代碼安全缺陷的有效檢測,分析模型的應用原理如下。

        1) 依據(jù)分析模型中信息建立二進制代碼安全缺陷的判定標準。以分析模型包含的(≥1)個路徑單元分別作為二進制代碼安全缺陷中個不同組成部分的識別標準,并把分析模型中組合單元作為該個組成部分之間的匹配標準,由項識別標準與1項匹配標準共同構成二進制代碼安全缺陷的判定標準。

        2) 基于判定標準把檢測內(nèi)容劃分為項查找任務和1項組合任務。其中項查找任務分別在被測試程序代碼中查找滿足不同識別標準的代碼組,組合任務是在查找得到的代碼組中選出滿足匹配標準的×(≥1)個代碼組,并把它們組成個二進制代碼安全缺陷。

        3) 依據(jù)各路徑單元分別描述的結構特征確定檢測過程中各項任務的執(zhí)行次序,從而使檢測過程具有最高的效率。

        依據(jù)上述原理把分析模型應用于二進制代碼安全缺陷的檢測過程,得到分析模型的應用方法,其簡稱為模型應用方法。該方法依據(jù)分析模型中結構特征信息實施對二進制代碼安全缺陷的有效檢測。下面給出該方法的主要內(nèi)容?;诜治瞿P停x以下若干關系。

        定義6 (語句項與IR語句的匹配)設η、u分別為語句項及IR語句。對η中任意字符串a,記為aη。若u中數(shù)據(jù)的信息與字符串a標記的數(shù)據(jù)信息相一致,則稱符合a。若ηu之間成立以下條件:①η中字符串標記的語句類型和u的語句類型相同;②對于任意數(shù)據(jù)字符串aη,存在數(shù)據(jù)∈u,符合a。則稱uη的像,并稱ηu匹配,記為ηu。

        定義8(路徑單元相關)設<1,2>是代碼安全缺陷特征模型,DD是1中2個路徑單元。若成立如下任意一項條件:

        則稱路徑單元DD相關,記為DD。若條件①成立,則語句項η稱為DD的相關語句項。若條件②成立,則模型元素(η,,η)稱為DD的相關元素。

        定義9(路徑單元與IR代碼組的相關匹配)設DD,Dλ,Dλ,λλ為不同的IR代碼組。若成立以下條件:

        ①若DD具有相關語句項η,則存在λλ的共同語句u,滿足:η?u;

        則稱路徑單元DD與IR代碼組λλ相關匹配。

        基于上述關系,下面給出對任意類型二進制代碼安全缺陷的5個主要檢測步驟。

        步驟1 建立分析模型。全面選擇各種不同結構的類型缺陷源代碼,然后應用它們分別建立分析模型。設共得到(≥1)種類型二進制代碼安全缺陷的分析模型。

        步驟2 建立分析模型的權重集合。主要過程如下。

        ①度量各種類型IR語句的相對比率。首先,隨機選擇個具有類型代碼安全缺陷的有代表性的二進制程序,應用VTS獲取它們各自次不同執(zhí)行過程產(chǎn)生的IR執(zhí)行路徑:1,···,q。然后,分別統(tǒng)計1~q中不同類型IR語句所占的比率。該步驟中和的取值與特征模型的復雜度成正相關。

        步驟3 獲取被測試二進制程序的IR執(zhí)行路徑集合。首先根據(jù)被測試程序的類型和功能,生成測試數(shù)據(jù)集作為程序輸入。然后應用VTS監(jiān)控該二進制程序的不同動態(tài)執(zhí)行過程,獲得IR執(zhí)行路徑集合。

        步驟4 缺陷IR代碼檢測。分別輸入種分析模型,應用缺陷IR代碼檢測算法,在集合包含的IR執(zhí)行路徑中檢測類型缺陷IR代碼,如算法3所示。

        算法3 缺陷IR代碼檢測算法FlawIRCode- Detection

        輸入 分析模型<1,2>及其權重集合,IR執(zhí)行路徑集合

        輸出 缺陷IR代碼集合

        4)2

        5) for eachD∈1do

        9) return

        10)22∪{D}

        11)12-{D}

        12)12

        13) else

        15) return

        16) for each (η,,η)∈2do

        18) return

        算法3中應用了多個函數(shù),分別闡述各函數(shù)的功能如下。

        1) 函數(shù)CorrelationUnit(D,1,2)在集合1中查找與D相關的路徑單元,依據(jù)查找結果生成識別條件。該函數(shù)返回識別條件集合。

        2) 函數(shù)SI(,D,,,)遍歷集合中執(zhí)行路徑查找路徑單元D的像,以中識別條件對D的像進行有效性驗證,并根據(jù)有效的驗證結果更新集合和。對于查找得到的任意一個D的像λ,若λ滿足中所有識別條件,則把λ放入D的像集G∈,并把驗證過程得到的各條相關匹配信息加入集合。該函數(shù)最后返回G

        3) 函數(shù)MW(,1,,1,,)首先基于集合中權重信息選擇1中權重最大的路徑單元。設得到1中權重最大的路徑單元D。然后遍歷中IR執(zhí)行路徑查找D的像,把查找得到的各IR代碼組放入D的像集G。若檢測結束后G不為空集,則把D、G分別放入集合1、,并從1中去除D。該函數(shù)最后返回集合G。

        5) 函數(shù)GenerateInstance(,)基于集合中的信息,把中各集合包含的IR代碼組組合為缺陷IR代碼。若中集合不包含缺陷IR代碼,則該函數(shù)返回空集。否則,該函數(shù)返回集合={1,···,ξ},其中ξ(1≤≤)為檢測得到的一個類型缺陷IR代碼。

        步驟5 獲取類型缺陷二進制代碼?;诩现腥毕軮R代碼,應用VTS輸出的IR語句與機器指令之間的對應信息,查找出被測試二進制程序中個類型缺陷二進制代碼,它們構成了該程序中個類型代碼安全缺陷。

        基于以上檢測過程可知,上述模型應用方法具有如下功能和優(yōu)點:①對任意類型代碼安全缺陷的檢測功能;②對結構復雜的代碼安全缺陷的檢測功能;③能夠準確地識別代碼安全缺陷,從而有效地避免檢測結果的誤報和漏報;④檢測過程無需觸發(fā)二進制代碼安全缺陷。

        4 實驗驗證

        實驗目的為驗證二進制代碼安全缺陷分析模型的實用性和有效性。為此,實驗中對模型應用方法進行驗證,實驗內(nèi)容包括:①方法的功能和優(yōu)點驗證;②方法的有效性驗證。根據(jù)該方法實施的檢測過程可知,上述實驗內(nèi)容能夠準確地驗證分析模型的實用性和有效性。

        實驗中被測試代碼安全缺陷的選擇標準如下:①其類型具有代表性,該類型的代碼安全缺陷廣泛存在于各類軟件系統(tǒng)及二進制程序,且目前對其尚無有效的檢測方法;②具有復雜的結構;③具有較大的識別難度;④具有較大的檢測難度;⑤包含于結構較復雜的二進制程序。

        基于以上選擇標準,實驗中選擇二進制多線程程序中競爭條件(race condition)類型代碼安全缺陷作為檢測對象?;鶞蕼y試程序如表1所示,B1~B3分別以算法1~3作為線程同步算法,其中算法1、2能夠產(chǎn)生競爭條件。算法1~3是語義較復雜、有代表性的同步算法。Holzmann在其被引用4 680多次的論文“The Model Checker SPIN”[13]中給出算法1、2,其中算法2是對算法1的修正算法。Bang等在論文“Comments on ‘The Model Checker SPIN’”[14]中以實時進程代數(shù)ACSR[15]檢測出算法2并未消除競爭條件,于是給出算法1的正確修正算法——算法3。

        表1 基準測試程序

        通過對B1~B3的測試,不僅可以有效地驗證模型應用方法的功能和優(yōu)點,而且能夠準確地驗證該方法的有效性,依據(jù)如下:①算法1~3是語義較復雜的同步算法,使B1~B3的二進制代碼結構較復雜,具有較大的檢測難度;②B1、B2中競爭條件類型代碼安全缺陷包含復雜的代碼結構,使它們具有較大的識別難度和檢測難度;③B1~B3的代碼結構相似,使B3中存在多個二進制代碼組與B1、B2中缺陷二進制代碼具有相似的代碼結構,所以B3中這些代碼組能夠有效地檢驗模型應用方法對代碼安全缺陷識別能力,從而驗證該方法是否能夠有效地避免檢測結果的誤報和漏報;④B1~B3的動態(tài)執(zhí)行過程被實時監(jiān)控,若產(chǎn)生競爭條件可以被及時發(fā)現(xiàn)和記錄。

        實驗中,計算機硬件配置為Intel Core 2 Duo (CPU 2.4 GHz)、2 GB內(nèi)存及4 MB二級緩存,操作系統(tǒng)為Ubuntu Linux 14.04 (4.4 HWE kernel),處理器架構為 X86/Linux。程序分析工具VTS中Valgrind版本為3.12.0。Linux C源代碼應用GCC 5.3編譯為二進制程序。

        4.1 方法功能和優(yōu)點驗證

        首先以模型應用方法測試B1~B3中競爭條件類型代碼安全缺陷。測試結果如下:B1和B2中分別存在競爭條件類型代碼安全缺陷1、2,如表2、表3所示。根據(jù)B1~B3的動態(tài)執(zhí)行過程可知,該測試過程沒有使B1~B3中線程之間產(chǎn)生競爭條件。

        表2 χ1中機器指令

        表3 χ2中機器指令

        然后以文獻[13,14]中的正確結論與上述測試結果進行對比分析,得到模型應用方法的測試結果完全正確,不存在誤報和漏報。因此,該方法的功能和優(yōu)點得到全面驗證。

        4.2 方法有效性驗證

        Helgrind[16]和DRD[17]是兩款檢測線程同步錯誤的成熟工具,能夠有效地檢測出多種類型的線程同步錯誤。由于Helgrind和DRD分別應用了國際上現(xiàn)有的多種實用檢測方法,所以根據(jù)它們對B1~B3的檢測結果可以準確地評估模型應用方法的有效性。

        實驗中以2017年6月最新發(fā)布的Helgrind和DRD對B1~B3檢測,它們在完成檢測后分別給出對多個數(shù)據(jù)變量的警告。其中Helgrind對B1中r_want的警告如圖3所示,DRD對B3中state(0x0804a048)的警告如圖4所示。經(jīng)過檢驗,Helgrind和DRD的檢測結果均漏報了B1和B2中競爭條件類型代碼安全缺陷,且它們給出的各條警告均為誤報。根據(jù)Helgrind和DRD的檢測結果可以得到評估結論:相比較國際上現(xiàn)有檢測方法,模型應用方法可以有效地應用于二進制并行程序,能夠檢測出現(xiàn)有方法難以發(fā)現(xiàn)的結構復雜的代碼安全缺陷,具有更加全面和深入的檢測能力,并且其檢測結果具有更高的準確率。由此模型應用方法的有效性得到驗證。

        圖3 Helgrind對B1中“r_want”的警告

        圖4 DRD對B3中“state”的警告

        基于以上兩項實驗內(nèi)容的結論可知,分析模型可以應用于任意類型二進制程序的代碼安全缺陷檢測過程,其包含的信息可以為識別與檢測二進制代碼安全缺陷提供充分的支持及有效的判定標準,使任意類型結構復雜的二進制代碼安全缺陷能夠被準確和高效地檢測出來。所以二進制代碼安全缺陷分析模型的實用性和有效性得到驗證。

        5 結束語

        為實現(xiàn)對結構復雜的二進制代碼安全缺陷的有效檢測,本文給出對二進制代碼安全缺陷的分析原理,提出二進制代碼安全缺陷的分析模型,并依據(jù)分析模型的應用原理,給出分析模型的應用方法。首先提取缺陷IR代碼的關鍵特征,抽象其中結構信息,生成二進制代碼安全缺陷的分析模型。然后用工具VTS獲取二進制程序的IR執(zhí)行路徑集合,基于各類語句的統(tǒng)計概率計算路徑單元的權重,依據(jù)缺陷IR代碼檢測算法遍歷IR執(zhí)行路徑,查找滿足特征模型的IR代碼組,并通過IR代碼與二進制代碼的轉(zhuǎn)換信息,檢測出二進制程序中代碼安全缺陷。

        實驗結果表明,分析模型兼具實用性和有效性,應用分析模型可以檢測出現(xiàn)有方法難以發(fā)現(xiàn)的各類結構復雜的二進制代碼安全缺陷,分析模型的應用方法無需源代碼,能夠直接檢測二進制應用程序,極大提高了檢測結果準確率,具有簡單、方便的優(yōu)點。分析模型可以應用于軟件開發(fā)維護、漏洞挖掘與利用及程序分析與測試等多種領域。同時,分析模型能夠有效地應用于現(xiàn)有方法難以檢測的二進制并行程序,所以隨著網(wǎng)絡和并行系統(tǒng)的發(fā)展,其具有廣泛的應用前景。

        [1] LANDWEHR C E, BULL A R, MCDERMOTT J P, et al. A taxonomy of computer program security flaws[J]. Computing Surveys , 1994, 26(3): 211-254.

        [2] WEBER S, KARGER P A, PARADKAR A. A software flaw taxonomy: aiming tools at security[C]//The Workshop on Software Engineering for Secure Systems—Building Trustworthy Applications. 2005: 1-7.

        [3] HUI Z, HUANG S, REN Z, et al. Review of software security defects taxonomy[C]//The 5th International Conference on Rough Set and Knowledge Technology, Lecture Notes in Computer Science. 2010: 310-321.

        [4] ZHANG B, FENG C, WU B, et al. Detecting integer overflow in windows binary executables based on symbolic execution[C]//The 17th IEEE/ACIS International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing. 2016:385-390.

        [5] SIDIROGLOU-DOUSKOS S, LAHTINEN ERIC, RITTENHOUSE N, et al. Targeted automatic integer overflow discovery using goal-directed conditional branch enforcement[C]//The Twentieth International Conference on Architectural Support for Programming Languages and Operating Systems.2015: 473-486.

        [6] YADEGARI B, STEPHENS J, DEBRAY S. Analysis of exception-based control transfers[C]//The Seventh ACM on Conference on Data and Application Security and Privacy.2017: 205-216.

        [7] MING J, WU D, WANG J, et al. StraightTaint: decoupled offline symbolic taint analysis[C]//The 31st IEEE/ACM International Conference on Automated Software Engineering.2016: 308-319.

        [8] CHA S K, WOO M, BRUMLEY D. Program-adaptive mutational fuzzing[C]//The IEEE Symposium on Security and Privacy.2015: 725-741.

        [9] PHAM V, B?HME M, ROYCHOUDHURY A. Model-based whitebox fuzzing for program binaries[C]//The 31st IEEE/ACM International Conference on Automated Software Engineering. 2016: 543-553.

        [10] The valgrind developers[EB/OL]. http://valgrind.org.

        [11] NETHERCOTE N, SEWARD J. Valgrind: a framework for heavyweight dynamic binary instrumentation[J]. ACM SIGPLAN Notices, 2007, 42(6):89-100.

        [12] [EB/OL]. https://github.com/wmkhoo/taintgrind.

        [13] HOLZMANN G J. The model checker SPIN[J]. IEEE Transactions on Software Engineering, 1997, 23(5): 279-295.

        [14] BANG K, CHOI J, YOO C. Comments on “the model checker SPIN”[J]. IEEE Transactions on Software Engineering, 2001,27(6): 573-576.

        [15] BRéMOND-GRéGOIRE P, CHOI J, LEE I. A complete axiomatization of finite-state ACSR processes[J]. Information and Computation, 1997,138 (2): 124-159.

        [16] The valgrind developers.[EB/OL]. http://valgrind.org/docs/manual/ hg-manual.html.

        [17] The valgrind developers[EB/OL]. http://valgrind.org/docs/manual/ drd-manual.html.

        Analysis model of binary code security flaws based on structure characteristics

        XU Tuan, QU Lei-lei, SHI Wen-chang

        (School of Information, Renmin University of China, Beijing 100872, China)

        Aiming at the shortcomings of the existing methods to detect the security flaws that have complex structures, a new analysis model and its application method was proposed. First, analysis models based on key information of code structures extracted from path subsets of characteristic element sets that are generated by source code element sets of code security flaws were constructed. Then the analysis model according to the statistical probability of each kind of IR statement was calculated, and the IR code group which matched the feature model was found. Finally, through the translating relation between binary codes and IR codes, various code security flaws of binary program were found out. The analysis models can be applied to both common single-process binary programs and binary parallel programs. Experimental results show that compared with the existing methods, the application of the analysis model can be more comprehensive and in-depth in detecting various types of complex binary code security flaws with higher accuracy.

        binary analysis, analysis model, software security detection, flaw code recognition

        TP309.5

        A

        10.11959/j.issn.2096-109x.2017.00200

        2017-07-24;

        2017-08-13。

        屈蕾蕾,daisyqvruc@163.com

        國家自然科學基金資助項目(No.61472429);北京市自然科學基金資助項目(No.4122041)

        The National Natural Science Foundation of China (No.61472429), The Natural Science Foundation of Beijing (No.4122041)

        許團(1973-),男,黑龍江鶴崗人,中國人民大學博士生,主要研究方向為信息安全。

        屈蕾蕾(1995-),女,新疆烏魯木齊人,中國人民大學博士生,主要研究方向為可信計算、云安全。

        石文昌(1964-),男,廣西浦北人,中國人民大學教授、博士生導師,主要研究方向為系統(tǒng)安全、可信計算與數(shù)字取證。

        猜你喜歡
        分析模型二進制語句
        基于BERT-VGG16的多模態(tài)情感分析模型
        用二進制解一道高中數(shù)學聯(lián)賽數(shù)論題
        重點:語句銜接
        有趣的進度
        二進制在競賽題中的應用
        精彩語句
        層次分析模型在結核疾病預防控制系統(tǒng)中的應用
        全啟發(fā)式語言分析模型
        如何搞定語句銜接題
        語文知識(2014年4期)2014-02-28 21:59:52
        IFC4結構分析模型應用技術
        中文字幕av无码免费一区| 国产精品黄色片在线观看| 一区二区av日韩免费| 亚洲av熟女传媒国产一区二区| 国语自产精品视频在线看| 女人被狂躁c到高潮视频 | 天堂av无码大芭蕉伊人av孕妇黑人| 日本精品中文字幕人妻| 天天做天天添av国产亚洲| 无码精品国产va在线观看| 女人的天堂av免费看| 深夜日韩在线观看视频| 精品综合久久久久久888蜜芽| 色综合久久久久久久久久| 欧美国产精品久久久乱码| 午夜a福利| 在线观看国产激情免费视频| 日本精品免费看99久久| 寂寞少妇做spa按摩无码| 精品乱码一区二区三区四区| 伊人不卡中文字幕在线一区二区| 日本高清一区二区三区在线观看 | 18禁高潮出水呻吟娇喘蜜芽| 日韩欧美专区| 亚洲一区二区三区久久久| 蜜桃视频第一区免费观看| 绝顶潮喷绝叫在线观看| 手机看片久久国产免费| 人片在线观看无码| 少妇被爽到高潮喷水免费福利| 亚洲无码在线播放| 无码人妻精品一区二区三区不卡| 中文字幕久久久久久精| 亚洲中文字幕第一页免费| 又湿又紧又大又爽a视频国产| 国产精品亚洲综合一区在线观看| 日本肥老熟妇在线观看| 国产熟女自拍av网站| 欧美噜噜久久久xxx| 国产精品视频一区二区噜噜| 久久一区av蜜桃人妻|