国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于模糊層次分析法的軟件保護(hù)有效性評(píng)價(jià)

2018-04-13 01:07李士群王崑聲經(jīng)小川王瀟茵梁光成
關(guān)鍵詞:逆向矩陣程序

李士群,王崑聲,經(jīng)小川,王瀟茵,巴 峰,梁光成

(中國(guó)航天系統(tǒng)科學(xué)與工程研究院,北京 100000)

0 引 言

為應(yīng)對(duì)軟件逆向、破解等攻擊而造成的安全威脅,各種保護(hù)技術(shù)成了研究熱點(diǎn)。然而,如何對(duì)軟件保護(hù)的有效性進(jìn)行綜合評(píng)價(jià),是研究者和軟件開(kāi)發(fā)方在設(shè)計(jì)和選擇保護(hù)方案時(shí)十分關(guān)心的??茖W(xué)客觀的評(píng)價(jià)結(jié)果能夠指導(dǎo)設(shè)計(jì)更為完善的保護(hù)方案,為保護(hù)方案的選擇提供決策支持。

現(xiàn)有的評(píng)價(jià)方法多是從一個(gè)角度進(jìn)行有效性評(píng)價(jià),然而,科學(xué)的評(píng)價(jià)模型應(yīng)該對(duì)軟件保護(hù)和逆向進(jìn)行綜合考量。另外,保護(hù)方案往往會(huì)綜合使用多種保護(hù)技術(shù),單純對(duì)某一種保護(hù)技術(shù)進(jìn)行評(píng)價(jià)分析也是當(dāng)前評(píng)價(jià)方法的局限之處。

文中對(duì)多保護(hù)技術(shù)綜合使用的保護(hù)方案進(jìn)行評(píng)價(jià)研究,在對(duì)軟件逆向和保護(hù)深入研究的基礎(chǔ)上建立了軟件保護(hù)有效性評(píng)價(jià)的綜合評(píng)價(jià)體系,選用模糊層次分析法建立了綜合評(píng)價(jià)模型,并結(jié)合實(shí)際案例對(duì)模型的實(shí)際效果進(jìn)行了驗(yàn)證。

1 相關(guān)現(xiàn)狀

1.1 軟件攻防現(xiàn)狀

1.1.1 軟件攻擊現(xiàn)狀

當(dāng)前,軟件攻擊的目的通常是對(duì)程序逆向分析,進(jìn)而破除軟件的權(quán)限限制、竊取軟件思想或者在其中嵌入惡意代碼[1]。逆向分析是指從可執(zhí)行程序出發(fā),推導(dǎo)出軟件產(chǎn)品設(shè)計(jì)原理的過(guò)程[2]。逆向分析可以分為文件獲取、反匯編、動(dòng)靜態(tài)分析、軟件篡改五個(gè)子行為序列[3]。逆向分析模型如圖1所示。

圖1 軟件逆向過(guò)程

(1)文件獲取:為實(shí)現(xiàn)攻擊目的,攻擊者首先需要獲得攻擊的目標(biāo)程序。通常獲取的是二進(jìn)制可執(zhí)行文件。

(2)反匯編:獲取的二進(jìn)制可執(zhí)行文件難以分析,需要反匯編成相對(duì)容易理解的匯編程序,以便于后續(xù)分析。

(3)靜態(tài)分析:靜態(tài)分析是在程序不執(zhí)行的狀態(tài)下進(jìn)行逆向分析的分析技術(shù)。通過(guò)控制流分析、數(shù)據(jù)流分析等技術(shù)對(duì)軟件進(jìn)行分析,對(duì)程序代碼進(jìn)行結(jié)構(gòu)框架上的分析認(rèn)識(shí)。

(4)動(dòng)態(tài)分析:動(dòng)態(tài)分析是指通過(guò)動(dòng)態(tài)調(diào)試對(duì)目標(biāo)程序進(jìn)行分析的技術(shù)。與靜態(tài)分析不同,動(dòng)態(tài)分析是對(duì)目標(biāo)程序的執(zhí)行流程、執(zhí)行結(jié)果實(shí)時(shí)跟蹤,可以收集到更為詳盡和真實(shí)的信息。

(5)軟件篡改:在對(duì)目標(biāo)程序分析完成之后,攻擊者會(huì)將程序中的關(guān)鍵算法進(jìn)行篡改,實(shí)現(xiàn)權(quán)限破解或?yàn)榧核玫饶康摹?/p>

1.1.2 軟件保護(hù)現(xiàn)狀

為應(yīng)對(duì)逆向分析造成的安全威脅,一系列的保護(hù)技術(shù)先后被提出并得到發(fā)展。目前,主流的保護(hù)技術(shù)有軟件加密、軟件混淆、反調(diào)試和防篡改等。

(1)軟件加密是指將目標(biāo)程序加密,在運(yùn)行之前再解密還原的技術(shù)。軟件加密能夠使得目標(biāo)程序不能直接反匯編,提高攻擊者反匯編的難度。

(2)軟件混淆即通過(guò)對(duì)目標(biāo)程序進(jìn)行重新組織,使得處理后的程序與原來(lái)相比在功能上變化不大,但在語(yǔ)義上更難理解,對(duì)應(yīng)對(duì)動(dòng)靜態(tài)分析都有很好的效果。

(3)反調(diào)試是應(yīng)對(duì)逆向分析進(jìn)行動(dòng)態(tài)調(diào)試的技術(shù),現(xiàn)普遍基于“檢測(cè)—響應(yīng)”機(jī)制。即檢測(cè)程序是否處于被調(diào)試狀態(tài),然后做出相應(yīng)的響應(yīng)[4]。

(4)防篡改是防止攻擊者在破解程序關(guān)鍵思想之后對(duì)程序進(jìn)行惡意篡改的技術(shù)。防篡改也是基于“檢測(cè)—響應(yīng)”的機(jī)制[5]。

另外,綜合分析文獻(xiàn)[6-8]可以看出,在設(shè)計(jì)保護(hù)方案時(shí),往往會(huì)將上述技術(shù)綜合使用以實(shí)現(xiàn)各項(xiàng)技術(shù)優(yōu)勢(shì)互補(bǔ),進(jìn)一步提高保護(hù)效果。

1.2 軟件保護(hù)有效性評(píng)價(jià)現(xiàn)狀

軟件保護(hù)有效性評(píng)價(jià)即度量目標(biāo)軟件在施加保護(hù)措施后其所能應(yīng)對(duì)逆向分析的能力?,F(xiàn)有的評(píng)價(jià)方法主要分為兩類:一是基于程序?qū)傩远攘康脑u(píng)價(jià);二是基于逆向分析角度的評(píng)價(jià)。

1.2.1 基于程序?qū)傩远攘康脑u(píng)價(jià)

基于程序?qū)傩远攘康脑u(píng)價(jià)是指提取目標(biāo)程序的關(guān)鍵屬性為指標(biāo),通過(guò)分析保護(hù)前后指標(biāo)的變化來(lái)度量保護(hù)方案的有效性。

Collberg等提出了強(qiáng)度、彈性、開(kāi)銷和隱蔽性4項(xiàng)針對(duì)軟件混淆有效性的評(píng)價(jià)指標(biāo)[9]。Collberg的成果為代碼混淆有效性評(píng)價(jià)研究奠定了基礎(chǔ),但沒(méi)有給出這些指標(biāo)具體的度量方法。

M.Dalla將語(yǔ)義變化和保護(hù)有效性聯(lián)系起來(lái),提出比較混淆前后程序分析結(jié)果的不等性來(lái)描述軟件混淆的有效性[10]。但M.Dalla沒(méi)能指明語(yǔ)義的哪種變化對(duì)程序的理解難度有提高效果,因此這種評(píng)價(jià)方法尚不成熟。

趙玉潔等將逆向分析分為反匯編、控制流分析和數(shù)據(jù)流分析三個(gè)關(guān)鍵環(huán)節(jié);提取表征程序?qū)傩缘闹笜?biāo):指令執(zhí)行率、控制流循環(huán)復(fù)雜度、扇入/扇出復(fù)雜度,通過(guò)保護(hù)前后指標(biāo)的變化評(píng)價(jià)軟件混淆的有效性[11]。該方法為軟件混淆有效性評(píng)價(jià)提供了進(jìn)步性思路,但局限于單一技術(shù)是該方法的不足之處。

1.2.2 基于逆向角度的評(píng)價(jià)

基于逆向角度的評(píng)價(jià)是指從逆向分析出發(fā),根據(jù)逆向的成本或難度來(lái)度量保護(hù)方案的有效性。

M.Ceccato等通過(guò)對(duì)混淆后的程序進(jìn)行手動(dòng)逆向?qū)嶒?yàn),從實(shí)際逆向體驗(yàn)上驗(yàn)證混淆技術(shù)的有效性[12]。該研究分析了影響逆向分析的關(guān)鍵因素,對(duì)評(píng)價(jià)思路轉(zhuǎn)移到逆向角度具有很好的啟發(fā)意義。

Collberg等提出從攻擊建模角度對(duì)軟件保護(hù)方案進(jìn)行有效性評(píng)價(jià)的思路[13]。通過(guò)對(duì)逆向攻擊建立攻擊模型,提取逆向過(guò)程中的指標(biāo)來(lái)評(píng)價(jià)軟件保護(hù)的有效性,給有效性評(píng)價(jià)研究指引了新的方向。

王妮在Collberg的基礎(chǔ)上,建立了攻擊模型,并提出了攻擊成本的評(píng)價(jià)指標(biāo)[14]。建立的關(guān)鍵算法的逆向攻擊模型能夠描述整個(gè)逆向的先后過(guò)程、逆向狀態(tài)信息及狀態(tài)間轉(zhuǎn)換的條件要素。在評(píng)價(jià)指標(biāo)方面,將各逆向技術(shù)的攻擊成本進(jìn)行分級(jí),并給每一等級(jí)賦予單位開(kāi)銷值;通過(guò)逆向所需使用的技術(shù)來(lái)量化攻擊成本,繼而反映出保護(hù)有效性。該方法思路新穎,但逆向過(guò)程具有很高的靈活性,且逆向技術(shù)成本包括攻擊者的體智耗費(fèi)、機(jī)器損耗等難以量化的因素,因此,該方法的說(shuō)服力還有待提高。

綜合上述評(píng)價(jià)研究,當(dāng)前軟件保護(hù)有效性評(píng)價(jià)思路主要存在以下兩方面的問(wèn)題:

(1)現(xiàn)有評(píng)價(jià)方法多是針對(duì)軟件混淆技術(shù)的有效性進(jìn)行研究,其他如軟件加密、反調(diào)試、防篡改等主流保護(hù)技術(shù)的有效性評(píng)價(jià)研究很少。

(2)針對(duì)單一保護(hù)技術(shù)有效性進(jìn)行評(píng)價(jià)研究難以適用于當(dāng)前綜合多技術(shù)的保護(hù)方案,因此,現(xiàn)有評(píng)價(jià)研究的實(shí)用意義存在很大局限。

2 軟件保護(hù)有效性綜合評(píng)價(jià)指標(biāo)體系

軟件保護(hù)技術(shù)致力于提高逆向分析的難度。其中,軟件加密提高反匯編的難度;軟件混淆提高動(dòng)靜態(tài)分析的難度;反調(diào)試提高動(dòng)態(tài)調(diào)試的難度;防篡改提高在理解程序思想后進(jìn)行篡改的難度。因此,面向綜合多技術(shù)保護(hù)方案的有效性評(píng)價(jià)可以從保護(hù)方案的防反匯編能力、語(yǔ)義混淆能力、反調(diào)試能力和防篡改能力4個(gè)方面進(jìn)行研究?;诖?,提取如下指標(biāo)來(lái)度量多技術(shù)保護(hù)方案的保護(hù)有效性:

1.防反匯編能力。

(1)加密算法強(qiáng)度:是指加密后,密文數(shù)據(jù)本身的信息特征十分微弱,單純從密文出發(fā)解密出明文難以實(shí)現(xiàn)。

(2)加密算法多樣性:是指采用的加密算法種類是否多樣。多樣的加密算法能夠提高攻擊者逆向分析的知識(shí)需求量和工作量,從而增強(qiáng)保護(hù)的效果。

(3)密鑰隱蔽性:密鑰存放的越隱蔽越能提高攻擊者解密的難度,可從密鑰的存儲(chǔ)方式來(lái)評(píng)價(jià)密鑰的隱蔽性。

(4)密鑰強(qiáng)度:是指密鑰難以被破譯的程度,攻擊者可能使用窮舉法對(duì)密鑰進(jìn)行爆破,因此可以采用密鑰的長(zhǎng)度來(lái)評(píng)價(jià)密鑰的強(qiáng)度。

(5)解密程序隱蔽性:目標(biāo)程序運(yùn)行之前需要解密,攻擊者往往會(huì)跟蹤分析解密程序來(lái)獲取目標(biāo)程序的明文,因此解密程序需要具有一定的隱蔽性。

(6)目標(biāo)程序隱蔽性:是指目標(biāo)程序加密之后是否能夠與其他數(shù)據(jù)混合并以分布的形式存儲(chǔ),使得目標(biāo)程序具有一定的隱蔽性。

2.語(yǔ)義混淆能力。

(1)控制流循環(huán)復(fù)雜度:用控制流圖描述程序的控制流程,然后采用圖論的知識(shí)和計(jì)算方法來(lái)評(píng)估程序的執(zhí)行復(fù)雜度[15]。控制流圖中節(jié)點(diǎn)代表程序中的基本塊,邊代表程序中基本塊之間的跳轉(zhuǎn)??刂屏餮h(huán)復(fù)雜度記為V(G),其計(jì)算公式如下:

V(G)=e-n+2

(1)

其中,e表示邊的數(shù)量;n表示節(jié)點(diǎn)的數(shù)量。

(2)數(shù)據(jù)流復(fù)雜度:數(shù)據(jù)流程越復(fù)雜,攻擊者逆向分析的難度越大,也即保護(hù)效果越好。Henry提出數(shù)據(jù)流復(fù)雜度度量方法,數(shù)據(jù)流復(fù)雜度記為DC,計(jì)算公式如下:

DC=(fan-in×fan-out)2

(2)

其中,fan-in為一個(gè)模塊輸入的數(shù)據(jù)流之和;fan-out為一個(gè)模塊輸出的數(shù)據(jù)流之和。

(3)數(shù)據(jù)結(jié)構(gòu)復(fù)雜度:程序中有大量的數(shù)據(jù)結(jié)構(gòu)用來(lái)保存重要的數(shù)據(jù)信息,是逆向分析過(guò)程中理解程序中關(guān)鍵數(shù)據(jù)的重點(diǎn)。數(shù)據(jù)結(jié)構(gòu)復(fù)雜度記為SC,計(jì)算公式如下:

SC=IN×D

(3)

其中,IN為數(shù)據(jù)結(jié)構(gòu)中的條目數(shù);D為數(shù)據(jù)結(jié)構(gòu)深度。

(4)指令執(zhí)行率:程序中的假指令會(huì)對(duì)靜態(tài)分析造成干擾,從而提高靜態(tài)分析的難度。指令執(zhí)行率記為IE,計(jì)算公式如下:

IE=Id/Is

(4)

其中,Is為反匯編生成的指令條數(shù);Id為實(shí)際執(zhí)行的指令條數(shù)。

3.反調(diào)試能力。

(1)技術(shù)豐富度:是指目標(biāo)程序中嵌入的檢測(cè)和響應(yīng)模塊所采用技術(shù)的多樣性。技術(shù)豐富度越高,就需要攻擊者有更多的反調(diào)試知識(shí)和經(jīng)驗(yàn)。

(2)模塊數(shù)量:是指檢測(cè)和響應(yīng)模塊的數(shù)量。數(shù)量越多,攻擊者去除反調(diào)試機(jī)制的工作量就會(huì)越大,逆向分析的成本也就越高。

(3)響應(yīng)強(qiáng)度:是指當(dāng)檢測(cè)到程序被調(diào)試之后響應(yīng)方式的強(qiáng)度,即程序強(qiáng)制退出、程序自毀和執(zhí)行假分支等方式所能起到的保護(hù)效果。

(4)模塊隱蔽性:是指檢測(cè)和響應(yīng)模塊與程序中其他模塊具有相似性,難以被攻擊者定位和識(shí)別。

(5)彈性:是指檢測(cè)模塊之間和響應(yīng)模塊之間的關(guān)聯(lián)度,即其中的部分模塊被發(fā)現(xiàn)并破壞后,整個(gè)反調(diào)試機(jī)制正常運(yùn)行所受影響的程度。

4.防篡改能力。

(1)技術(shù)豐富度:是指檢測(cè)和響應(yīng)模塊所采用技術(shù)的多樣性。技術(shù)豐富度越高,就需要攻擊者有更多的反防篡改技術(shù)的知識(shí)和經(jīng)驗(yàn)。

(2)模塊數(shù)量:是指檢測(cè)和響應(yīng)模塊的數(shù)量。數(shù)量越多,攻擊者去除防篡改機(jī)制的工作量就越大,逆向分析的成本也就越高。

(3)響應(yīng)機(jī)制強(qiáng)度:是指當(dāng)檢測(cè)到程序被篡改之后響應(yīng)方式的強(qiáng)度,即程序自修復(fù)、程序自毀等方式所能起到的保護(hù)效果。

(4)模塊隱蔽性:是指檢測(cè)和響應(yīng)模塊與程序中其他模塊具有相似性,難以被攻擊者定位和識(shí)別。

(5)彈性:是指檢測(cè)模塊之間和響應(yīng)模塊之間的關(guān)聯(lián)度,即其中的部分模塊被發(fā)現(xiàn)并破壞后,整個(gè)防篡改機(jī)制正常運(yùn)行所受影響的程度。

由于同是基于“檢測(cè)—響應(yīng)”機(jī)制,反調(diào)試和防篡改能力的評(píng)價(jià)指標(biāo)在名稱上相同,但評(píng)價(jià)內(nèi)容不同,因此不會(huì)造成評(píng)價(jià)指標(biāo)的冗余。

3 軟件保護(hù)有效性綜合評(píng)價(jià)模型

軟件保護(hù)有效性評(píng)價(jià)的指標(biāo)體系呈現(xiàn)出多層次、定性定量指標(biāo)共存,并且指標(biāo)具有模糊性的特點(diǎn);文中采用模糊層次分析法對(duì)保護(hù)有效性進(jìn)行評(píng)價(jià)研究。采用層次分析法建立指標(biāo)體系的層次結(jié)構(gòu),判斷矩陣法確定指標(biāo)的權(quán)重;采用模糊綜合評(píng)價(jià)法建立評(píng)語(yǔ)集,確定隸屬度、構(gòu)造評(píng)價(jià)矩陣和模糊綜合評(píng)價(jià)。軟件保護(hù)有效性綜合評(píng)價(jià)模型如圖2所示。

圖2 綜合評(píng)價(jià)模型

3.1 保護(hù)有效性綜合評(píng)價(jià)指標(biāo)體系權(quán)重

相對(duì)于有效性評(píng)價(jià)目標(biāo),需要給各指標(biāo)分配不同的權(quán)重。確定指標(biāo)體系權(quán)重的步驟如下:

(1)建立指標(biāo)體系的層次結(jié)構(gòu)。

軟件保護(hù)有效性綜合評(píng)價(jià)指標(biāo)體系分為目標(biāo)層、準(zhǔn)則層和指標(biāo)層,層次結(jié)構(gòu)如圖3所示。

(2)構(gòu)建比較判斷矩陣。

通過(guò)調(diào)查問(wèn)卷的方式,由專家對(duì)同一目標(biāo)或準(zhǔn)則下的評(píng)價(jià)指標(biāo)進(jìn)行兩兩重要性比較評(píng)判,并采用1~9分制標(biāo)示重要度,從而構(gòu)建判斷矩陣。

對(duì)目標(biāo)A下準(zhǔn)則層的元素B1,B2,B3,B4,專家進(jìn)行兩兩重要性比較評(píng)判,構(gòu)造出判斷矩陣B:

(5)

同理,即可構(gòu)造出準(zhǔn)則B1,B2,B3,B4下指標(biāo)層的判斷矩陣C1,C2,C3,C4。

圖3 指標(biāo)體系層次結(jié)構(gòu)

(3)求解單層指標(biāo)權(quán)重。

在目標(biāo)層A下,計(jì)算判斷矩陣B的最大特征根λmax和對(duì)應(yīng)的特征向量ω,特征向量ω的元素即為指標(biāo)B1,B2,B3,B4的權(quán)重。計(jì)算公式如下:

Bω=λmaxω

(6)

同理可得準(zhǔn)則B1,B2,B3,B4下各指標(biāo)的權(quán)重。

(4)一致性檢驗(yàn)。

判斷矩陣來(lái)源于專家的主觀評(píng)判,判斷結(jié)果難免有所差異。因此,需要對(duì)判斷矩陣進(jìn)行一致性檢驗(yàn)。一致性檢驗(yàn)方法如下:

一致性指標(biāo):

(7)

其中,CI為一致性指標(biāo);λmax為判斷矩陣的最大特征根;n為判斷矩陣階數(shù)。

一致性比率:

(8)

其中,CR為一致性比率,CR<0.10時(shí),判斷矩陣具有滿意的一致性;RI為平均隨機(jī)一致性指標(biāo)。

3.2 保護(hù)有效性綜合評(píng)價(jià)

3.2.1 確定因素集和評(píng)語(yǔ)集

(1)因素集。

U={U1,U2,U3,U4}={防反匯編能力,語(yǔ)義混淆能力,反調(diào)試能力,防篡改能力};

U1={U11,U12,…,U16}={加密算法強(qiáng)度,密鑰隱蔽性,密鑰強(qiáng)度,加密算法多樣性,解密程序隱蔽性,目標(biāo)程序隱蔽性};

U2={U21,U22,U23,U24} ={控制流循環(huán)復(fù)雜度,數(shù)據(jù)流復(fù)雜度,數(shù)據(jù)結(jié)構(gòu)復(fù)雜度,指令執(zhí)行率};

U3={U31,U32,…,U35}={技術(shù)豐富度,模塊數(shù)量,響應(yīng)機(jī)制強(qiáng)度,模塊隱蔽性,彈性};

U4={U41,U42,…,U45}={技術(shù)豐富度,模塊數(shù)量,響應(yīng)機(jī)制強(qiáng)度,模塊隱蔽性,彈性}。

(2)評(píng)語(yǔ)集。

采用五級(jí)評(píng)價(jià)等級(jí),評(píng)語(yǔ)集V={V1,V2,V3,V4,V5}={高,較高,一般,較低,低},各等級(jí)對(duì)應(yīng)分值區(qū)間為[80,100),[60,80),[40,60),[20,40), [0,20)。

3.2.2 確定隸屬度和評(píng)價(jià)矩陣

采用調(diào)查問(wèn)卷的方式,由專家對(duì)指標(biāo)體系中的各指標(biāo)進(jìn)行等級(jí)評(píng)判。然后,對(duì)各指標(biāo)隸屬于各評(píng)價(jià)等級(jí)的頻次進(jìn)行統(tǒng)計(jì),隸屬度為:

(9)

其中,n為評(píng)定指標(biāo)為Vi的頻次;m為專家總數(shù)。

根據(jù)各指標(biāo)的隸屬度構(gòu)造指標(biāo)層的評(píng)價(jià)矩陣:

(10)

3.2.3 模糊綜合評(píng)價(jià)

(1)一級(jí)模糊運(yùn)算。

通過(guò)各指標(biāo)層的模糊評(píng)價(jià)矩陣右乘權(quán)重向量對(duì)其進(jìn)行模糊綜合計(jì)算,一級(jí)模糊綜合評(píng)價(jià)集為:

(bi1bi2…bi5)

(11)

其中,i為準(zhǔn)則層指標(biāo)的序號(hào);n為準(zhǔn)則Bi下指標(biāo)的個(gè)數(shù);Bi為綜合模糊運(yùn)算結(jié)果。

由此,可得到指標(biāo)層的綜合評(píng)價(jià)矩陣:

(12)

(2)二級(jí)模糊運(yùn)算。

由一級(jí)模糊運(yùn)算結(jié)果構(gòu)成的模糊評(píng)價(jià)矩陣右乘權(quán)重向量來(lái)對(duì)準(zhǔn)則層各因素進(jìn)行模糊綜合計(jì)算。二級(jí)模糊綜合評(píng)價(jià)集為:

(a1a2…a5)

(13)

(3)綜合評(píng)價(jià)結(jié)果的量化分析。

模糊運(yùn)算得到的結(jié)果是評(píng)價(jià)目標(biāo)在評(píng)語(yǔ)集上的隸屬分布,與各等級(jí)分值相乘即可得到評(píng)價(jià)分值。

(14)

其中,A為評(píng)價(jià)結(jié)果在評(píng)語(yǔ)集上的隸屬分布;V為各評(píng)語(yǔ)集對(duì)應(yīng)的量化分值;G為最終評(píng)價(jià)分值。

4 應(yīng)用案例研究

4.1 評(píng)價(jià)對(duì)象概述

為驗(yàn)證評(píng)價(jià)模型的有效性,選取針對(duì)人臉識(shí)別算法設(shè)計(jì)的保護(hù)方案為評(píng)價(jià)對(duì)象,實(shí)施了有效性評(píng)價(jià)的案例研究。其中,保護(hù)方案綜合使用了軟件加密、混淆、反調(diào)試和防篡改技術(shù)。其保護(hù)和執(zhí)行流程如圖4所示。

圖4 保護(hù)方案模型

將保護(hù)方案的關(guān)鍵設(shè)計(jì)和保護(hù)前后軟件關(guān)鍵屬性的變化提供給專家參考,由專家對(duì)各指標(biāo)評(píng)價(jià)打分。該案例中關(guān)鍵評(píng)價(jià)指標(biāo)的參考如表1所示。

表1 保護(hù)方案關(guān)鍵評(píng)價(jià)指標(biāo)參考說(shuō)明

4.2 評(píng)價(jià)實(shí)施

4.2.1 確定指標(biāo)權(quán)重

相對(duì)于軟件保護(hù)有效性,準(zhǔn)則層判斷矩陣如下:

WB=(0.202 6,0.444 3,0.174 8,0.174 7),并且CR=0.000 2<0.1,通過(guò)一致性檢驗(yàn)。

相對(duì)于防反匯編能力,指標(biāo)層判斷矩陣如下:

C1=

WC1=(0.081 7,0.129 3,0.089 5,0.319 7,0.173 0,0.209 8),且CR=0.038 9<0.1,通過(guò)一致性檢驗(yàn)。

相對(duì)于語(yǔ)義混淆能力,指標(biāo)層判斷矩陣如下:

WC2=(0.285 8,0.237 2,0.233 6,0.243 3),并且CR=0.027 8<0.1,通過(guò)一致性檢驗(yàn)。

相對(duì)于反調(diào)試能力,指標(biāo)層判斷矩陣如下:

C3=

WC3=(0.271 6,0.210 8,0.188 5,0.166 0,0.163 1),且CR=0.024 7<0.1,通過(guò)一致性檢驗(yàn)。

相對(duì)于防篡改能力,指標(biāo)層判斷矩陣如下:

C4=

WC4=(0.269 6,0.224 3,0.179 5,0.163 8,0.164 0),且CR=0.026 3<0.1,通過(guò)一致性檢驗(yàn)。

4.2.2 確定隸屬度和評(píng)價(jià)矩陣

防反匯編能力下的指標(biāo)評(píng)價(jià)矩陣:

語(yǔ)義混淆能力下的指標(biāo)評(píng)價(jià)矩陣:

反調(diào)試能力下的指標(biāo)評(píng)價(jià)矩陣:

防篡改能力下的指標(biāo)評(píng)價(jià)矩陣:

4.2.3 軟件保護(hù)有效性模糊綜合評(píng)價(jià)

(1)一級(jí)模糊綜合評(píng)價(jià)。

指標(biāo)層防反匯編能力U1模糊綜合評(píng)價(jià)如下:

(0.145 2 0.419 9 0.242 8 0.142 2 0.046 2)

指標(biāo)層語(yǔ)義混淆能力U2模糊綜合評(píng)價(jià)如下:

(0.065 0.251 3 0.221 0 0.397 7 0.066 0)

指標(biāo)層反調(diào)試能力U3模糊綜合評(píng)價(jià)如下:

(0.247 0 0.401 9 0.253 6 0.125 0 0.031 8)

指標(biāo)層防篡改能力U4模糊綜合評(píng)價(jià)如下:

(0.139 7 0.425 2 0.240 0 0.182 1 0.092 4)

(2)二級(jí)模糊綜合評(píng)價(jià)。

準(zhǔn)則層軟件保護(hù)有效性U模糊綜合評(píng)價(jià)如下:

(0.326 2 0.328 0 0.135 5 0.158 6 0.060 0)

4.3 評(píng)價(jià)結(jié)果分析

該案例中軟件保護(hù)有效性的評(píng)價(jià)結(jié)果為64.351,處于較高等級(jí),仍有一定提升空間。防反匯編能力、語(yǔ)義混淆能力、反調(diào)試能力和防篡改能力的評(píng)價(jià)結(jié)果分別為59.329,47.082,67.111,60.734,防反匯編能力處于一般水平,但也十分接近較高水平;語(yǔ)義混淆能力處于一般水平;反調(diào)試能力處于較高水平;防篡改能力剛剛達(dá)到較高水平。

整體看來(lái),該案例中保護(hù)方案對(duì)人臉識(shí)別算法有著較高的保護(hù)效果,如有更高需求的話,可以從四個(gè)方面繼續(xù)提高保護(hù)強(qiáng)度。其中語(yǔ)義混淆能力對(duì)軟件保護(hù)方案的有效性有著較高的權(quán)重,但并沒(méi)有取得較高的保護(hù)效果。因此,在對(duì)保護(hù)方案進(jìn)行改進(jìn)的工作中可以著重提升語(yǔ)義混淆的能力。

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

面向多保護(hù)技術(shù)綜合使用的保護(hù)方案,在對(duì)軟件攻防深入研究的基礎(chǔ)上,建立了保護(hù)有效性綜合評(píng)價(jià)指標(biāo)體系;基于模糊層次分析法建立了有效性綜合評(píng)價(jià)模型。該模型不僅能夠得出綜合保護(hù)有效性的量化評(píng)價(jià)結(jié)果,而且能夠評(píng)價(jià)保護(hù)方案各項(xiàng)能力的有效性,在給保護(hù)方案的選擇提供決策支持的同時(shí),還能夠給保護(hù)方案的改進(jìn)提供指導(dǎo)建議。

由于有效性評(píng)價(jià)研究處于探索階段,文中建立的指標(biāo)體系難免有不足之處,接下來(lái)還需要在指標(biāo)體系方面進(jìn)一步研究;另外在施加保護(hù)措施之后,將對(duì)目標(biāo)程序的實(shí)時(shí)性、可靠性等的影響納入評(píng)價(jià)模型也是下一步研究的重要內(nèi)容。

參考文獻(xiàn):

[1] 薛芳芳,房鼎益,王懷軍,等.基于攻擊目的的軟件攻擊分類方法研究[J].計(jì)算機(jī)應(yīng)用與軟件,2015,32(2):283-287.

[2] 嚴(yán) 秀,李龍澍.軟件逆向工程技術(shù)研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2009,19(4):20-24.

[3] 趙玉潔,湯戰(zhàn)勇,王 妮,等.代碼混淆算法有效性評(píng)估[J].軟件學(xué)報(bào),2012,23(3):700-711.

[4] 劉 昕.基于Windows內(nèi)核反調(diào)試的軟件保護(hù)系統(tǒng)[D].北京:北京郵電大學(xué),2009.

[5] 湯戰(zhàn)勇,郝朝輝,房鼎益,等.基于進(jìn)程級(jí)虛擬機(jī)的軟件防篡改方法[J].華中科技大學(xué)學(xué)報(bào):自然科學(xué)版,2016,44(3):65-70.

[6] 徐江陵.基于反跟蹤和自修改代碼技術(shù)的軟件保護(hù)系統(tǒng)設(shè)計(jì)[D].成都:電子科技大學(xué),2012.

[7] 魯曉成.嵌入式軟件保護(hù)關(guān)鍵技術(shù)研究與應(yīng)用[D].武漢:武漢理工大學(xué),2011.

[8] 趙路華.軟件保護(hù)技術(shù)研究[J].科技信息,2013(22):264.

[9] COLLBERG C,THOMBORSON C,LOW D.Manufacturing cheap,esilient and stealthy opaque constructs[C]//Proceedings 25th annual SIGPLAN SIGACT symposium on principles programming languages.New York,NY,USA:ACM,1998:184-196.

[10] DALLA M,GIACOBAZZI R.Control code obfuscation by abstract interpretation[C]//Proceedingof the 32nd international colloquium on automata,languages and programming.[s.l.]:[s.n.],2005:1325-1336.

[11] 趙玉潔.面向逆向工程的代碼混淆有效性研究與實(shí)踐[D].西安:西北大學(xué),2011.

[12] CECCATO M,PENTA M D,NAGRA J,et al.The effectiveness of source code obfuscation:an experimental assessment[C]//17th international conference on program comprehension.Vancouver,BC,Canada,IEEE,2009:178-187.

[13] COLLBERG C,DAVIDSON J,GIACOBAZZI R,et al.Toward digital asset protection[J].IEEE Intelligent Systems,2011,26(6):8-13.

[14] 王 妮.基于攻擊建模的軟件保護(hù)有效性評(píng)估方法研究[D].西安:西北大學(xué),2012.

[15] MACABE T J.A complexity measure[J].IEEE Transactions on Software Engineering,1976,2(4):308-320.

猜你喜歡
逆向矩陣程序
逆向而行
逆向思維天地寬
給Windows添加程序快速切換欄
試論我國(guó)未決羈押程序的立法完善
“程序猿”的生活什么樣
多項(xiàng)式理論在矩陣求逆中的應(yīng)用
英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
矩陣
矩陣
矩陣