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

基于軟件行為指紋的自檢測防竄改技術研究

2008-01-01 00:00:00徐海銀董九山
計算機應用研究 2008年6期

摘要:對軟件的行為進行抽象建模,通過安全hash函數(shù)計算軟件的行為指紋,并通過自檢測防竄改技術檢測軟件行為指紋,保護客戶端軟件的完整性和安全性。給出了軟件的行為建模和檢測,以及自檢測防竄改系統(tǒng),并作了系統(tǒng)安全性分析。

關鍵詞:行為指紋; 自檢測; 防竄改

中圖分類號:TP309

文獻標志碼:A

文章編號:1001-3695(2008)06-1812-03

0引言

Aucsmith于1996年提出了軟件自檢測防竄改技術[1],用來保護客戶端軟件的完整性。目前典型的軟件自檢測防竄改技術有動態(tài)自檢測[2]、軟件崗哨[3]、遺忘hash[4]及加密防竄改[5,6]。動態(tài)自檢測技術采用多個檢測器重復的檢驗程序段的代碼指紋,并通過交互疊加檢測增加了檢測行為的多次連續(xù)性。該技術過多地調用檢測器,容易被黑客監(jiān)測并被逐個定位移除。Chang 和Atallah(CA)提出的軟件崗哨,通過一系列的Guards以網狀結構交互檢測來保護軟件和崗哨,Guards不僅可以計算代碼的校驗和,還能修復被竄改的代碼段。這種方法增加了移除的難度,但由于無法避免被定位移除。Yuqun Chen提出的遺忘hash檢測一段程序的部分期望行為,將它的hash結果與期望值進行校驗。該方法針對特定的行為進行檢測,能防止部分動態(tài)攻擊。因為它的hash值以冗余參數(shù)的形式隱蔽在程序中,一旦被黑客探測定位成功,就容易被移除。文獻[5,6]中的加密防竄改將加密和自解密技術運用到自檢測防竄改技術中,避免了校驗值安全存儲的難題,并通過鏈狀的交互檢測結構加強了自檢測代碼的安全,然而局限于對軟件的代碼檢測上,無法有效地抵御行為竄改攻擊。

已有的防竄改技術主要基于代碼的hash校驗檢測,并采用交叉鏈式或網式的檢測方式實現(xiàn)對自檢測代碼的安全保護。由于代碼檢測不檢測軟件實際執(zhí)行的信息,而且交叉式檢測采取的是輔助檢測,無法做到實時檢測,容易受到動態(tài)攻擊。

本文針對以上不足,對軟件的抽象行為進行建模,并對軟件的行為進行完整性檢測,在此基礎上給出更加安全的自檢測防竄改系統(tǒng)。分析表明,基于軟件行為指紋的自檢測防竄改技術采用行為檢測和自解密技術對軟件進行實時保護,能夠較好地抵御靜態(tài)攻擊和動態(tài)攻擊。

1軟件行為建模和檢測

行為檢測BC(behavior checking)是指在軟件中嵌入一系列自定義的代碼段,在軟件執(zhí)行過程中計算軟件的行為指紋,并檢測結果的正確性。行為指紋是指用數(shù)據對軟件的抽象行為進行描述,通過安全hash函數(shù)SHA1計算得到行為描述數(shù)據的短消息摘要?,F(xiàn)有的自檢測技術大都對程序的代碼進行檢測,較少將軟件的行為檢測應用在自檢測技術中,而事實上一個軟件的行為特征比代碼自身更能代表一個軟件的完整性。

軟件是由指令和操作數(shù)構成的,如何對軟件行為進行建模關鍵在于對軟件的指令進行抽象地描述和建模。一條指令包含它的表示符號、執(zhí)行條件、執(zhí)行動作和操作結果,所以指令由指令符號、初始化條件、操作數(shù)據、執(zhí)行動作、運行結果等要素組成。本文用I表示指令的代碼;B表示指令的行為;M表示與指令相關的操作數(shù)據;M0表示參數(shù)和狀態(tài)初始化條件;S表示統(tǒng)計的指令執(zhí)行次數(shù)和指令數(shù)量;P表示程序執(zhí)行的操作信息以及運行結果。用參數(shù)化方法描述軟件的抽象行為,用IB(instruction behavior)表示指令行為,那么指令首先由代碼和指令行為組成,而指令行為由指令的要素組成,所以本文用一個多元組描述指令的行為如下:

其中:表示“描述為”。

本文為指令的抽象行為構建一種簡單數(shù)據結構。首先為每個要素定義固定的數(shù)據格式,并使用簡單的串聯(lián)函數(shù)將元素順序串連成一個固定大小的二進制數(shù)據IM0MSP。軟件是由一系列的指令按照一定的序列組成,所以可以用指令序列的串聯(lián)結構來描述軟件的行為,軟件行為信息用串聯(lián)結果IM0MSP1‖IM0MSP2‖…‖IM0MSPn‖表示。其中:‖是串聯(lián)符號。

為了便于使用hash函數(shù)計算行為指紋,本文將每個屬性用32位的二進制編碼表示。讀取當前執(zhí)行的指令集的代碼編碼在I中;將可能引起變化的初始化條件編碼在M0中;M中包含操作數(shù)據的數(shù)量和值域、類型信息、是否變量和數(shù)據的不可變值;S統(tǒng)計某類型指令的數(shù)量以及當前執(zhí)行次數(shù);P包含I指令的行為信息,如I/O、R/W、指令的加減乘除等執(zhí)行動作。由于安全hash算法計算以512位二進制數(shù)據分組,所以指令行為數(shù)據均以32×16位二進制編碼。其中:I、M0、M和S占32×2位;P占32×8位,它的數(shù)據格式標準如圖1所示。

Hash函數(shù)SHA1對512位分組進行計算,結果得到5×32位的指令行為指紋,而這160位數(shù)據又將作為計算下一指令行為指紋的初始變量,如此直到結束。整體看來檢測的對象就是指令集合的行為信息的串聯(lián)值IM0MSP1‖IM0MSP2‖…‖IM0MSPn。檢測的數(shù)據包含了整個代碼塊指令的大量實際執(zhí)行信息,所以可以用hash函數(shù)的計算結果表示軟件的行為指紋。對I的行為進行竄改將改變hash結果,如果IB被竄改成IB′,那么H(IB)≠H(IB′),得到的hash值與軟件的實際行為指紋不等,則行為檢測結果顯示軟件被竄改,程序調用異常處理函數(shù)。

為了實現(xiàn)軟件行為檢測,需要捕獲指令的各種屬性信息,并計算軟件的行為指紋??梢酝ㄟ^輔助硬件或者修改操作系統(tǒng)來完成,但實現(xiàn)過程比較復雜。本文在程序代碼中嵌入具有指令監(jiān)測和hash計算功能的代碼段,捕獲被檢測指令的關鍵計算行為,并通過安全hash函數(shù)計算出它的行為指紋。Hash指令的代碼均勻地分布在待檢測指令的后面,并且與源程序的指令在表面上和執(zhí)行上沒有區(qū)別,由軟件順序執(zhí)行激活運行。嵌入的代碼在軟件執(zhí)行過程中產生大量的臨時數(shù)據,但這些數(shù)據不被檢測的程序指令所調用,所以不會改變軟件的正常執(zhí)行結果。具體的代碼嵌入方法可以參考文獻[4]第4章描述的代碼嵌入技術。

2自檢測防竄改系統(tǒng)

軟件安全不僅包括軟件的完整性保護,還包括保護軟件的自檢測代碼以及校驗值的安全。本文將行為檢測運用到自檢測防竄改系統(tǒng)中,協(xié)同文獻[5]中的加密和自解密技術,從整體上解決軟件和行為檢測的安全問題,提高軟件的防竄改抗攻擊能力。

自檢測防竄改系統(tǒng)主要包含以下三個模塊:a)行為檢測模塊,動態(tài)地計算軟件行為指紋,完成對軟件的完整性檢測;b)程序流程控制模塊,根據行為檢測結果和分支轉移函數(shù),尋址下一基本代碼塊(簡稱基本塊)和它的解密函數(shù);c)自解密模塊,從行為檢測結果中獲取密鑰,并對指定的基本塊解密。

首先給出符號定義:C表示原程序的代碼,劃分成w個功能相對獨立的基本塊C1, C2, C3,…, Cw;BCi表示對Ci的行為檢測代碼,BCim表示BCi生成的行為指紋;bi表示第i基本塊的流程控制函數(shù),bin表示轉移或函數(shù)調用指令;Ei表示加密狀態(tài)的代碼;Di代表Ei對應的解密函數(shù);Enck(C)表示對稱加密算法使用密鑰k對C進行加密;Deck(E)表示對稱解密算法使用密鑰k對密文E進行解密。

一個基本塊可能擁有多個判斷和轉移指令,具有多種行為,從而可能轉移到多個基本塊。為了方便統(tǒng)一控制程序的流程,本文將這些調用和轉移指令轉換成獨立的分支轉移函數(shù),在分支轉移函數(shù)中建立一個行為檢測結果到轉移指令的映射θ:

關系θ中每一個行為檢測結果對應惟一的轉移指令,即將行為檢測的結果映射到特定的控制轉移指令。由于不同的執(zhí)行過程,一般轉移到不同的分支,可以通過行為檢測結果來判斷程序的流程轉移方向。

同理,多個基本塊可能轉移到一個基本塊,所以不能簡單地將行為檢測結果作為密鑰處理。本文建立一個密鑰處理函數(shù)fnext,完成當前執(zhí)行基本塊行為的檢測結果到密鑰的轉換。函數(shù)以基本塊號和行為檢測結果為輸入參數(shù),計算下一基本塊的密鑰。函數(shù)如下:

fnext(i,BCij)=knext; j∈N

其中:knext指的是下一步執(zhí)行的基本塊的解密密鑰;next是下一基本塊的塊號;i和BCij是對應的基本塊塊號和行為檢測結果。將該函數(shù)放在下一基本塊對應的解密函數(shù)Dnext中,其不僅能將多個基本塊的行為檢測結果映射到一個密鑰,還能將同一基本塊的多個行為檢測結果映射到多個密鑰。

自檢測防竄改系統(tǒng)的代碼結構和關系如圖2所示。

其中:Ci∪BCi表示插入行為檢測代碼后的程序塊代碼。圖2給出的結構中基本塊E1能夠轉移到兩個基本塊E2和E3,所以D2和D3都從BC1中分別通過f2和f3獲得各自的解密密鑰,并且f2(1,BC12)≠f2(1,BC

如果軟件的正常執(zhí)行行為被竄改,行為檢測的結果將改變,程序除了無法獲得準確的密鑰外,分支轉移函數(shù)的轉移方向也會發(fā)生錯誤,軟件無法轉移到正確的代碼塊,也無法正確解密執(zhí)行,將會異常退出,這樣就能達到了防竄改的目的。

3系統(tǒng)分析

3.1選擇可檢測代碼

大中型軟件的流程包括許多邏輯交叉,要完整地解析整個軟件的結構是相當復雜的,而且容易受到邏輯溢出攻擊,實際上需要選擇程序執(zhí)行路徑上的部分敏感信息檢測。對于圖1中的數(shù)據格式,不確定指令或者無法預測的執(zhí)行指令稱為不可檢測數(shù)據,對此類指令不進行檢測;對于可預測執(zhí)行的變量,選取它們的有效值域和有效數(shù)據進行檢測;對于可預測指令則按照檢測格式對所有信息檢測。

為了避免大量的邏輯結構分析,避免對所有代碼進行檢測,僅僅選擇敏感信息和控制路徑上的信息進行行為hash檢測,如圖3所示分別給出了采用遺忘hash檢測和動態(tài)行為檢測時,可檢測代碼的百分比分布。動態(tài)自檢測在檢測變量數(shù)據時比遺忘hash更靈活,可檢測的代碼百分比有明顯改進。

3.2安全性分析

攻擊軟件的方法主要分為靜態(tài)攻擊和動態(tài)攻擊兩種:a)靜態(tài)攻擊是通過代碼反編譯,對軟件的源碼進行分析并竄改。b)動態(tài)攻擊是指在軟件執(zhí)行過程中,黑客通過各種干擾和監(jiān)測工具,甚至可以通過修改軟件的運行系統(tǒng),監(jiān)測軟件的執(zhí)行過程,試圖竄改軟件的行為或破解保護機制。目前對防竄改機制的攻擊方法主要有靜態(tài)代碼分析、繞過保護機制攻擊、內存傾卸攻擊,行為竄改攻擊。其中,行為竄改攻擊是指在不改變代碼的情況下插入、屏蔽、竄改軟件指令的攻擊行為。目前遺忘hash和文獻[5,6]中的方法能夠抵御前三種類型的攻擊,而遺忘hash能抵御部分行為竄改攻擊。

本文的防竄改技術:a)汲取了遺忘hash和加密自檢測防竄改的思想,協(xié)同行為檢測和加密自解密技術,所以能夠較好地抵御前三種類型的攻擊。b)若要竄改軟件的行為必須先理解指令的集合、操作數(shù)、指令與數(shù)據間的調用關系,并繞過防竄改保護機制的檢測。c)若要動態(tài)攻擊本文的防竄改系統(tǒng),黑客需要先探測出每個行為檢測代碼并屏蔽它們,然后用自定義的數(shù)據替換行為檢測的hash值;同時黑客必須獲得下一基本塊的準確定位和解密函數(shù),破解軟件的整個控制流程,這樣才能移除行為檢測代碼,并還原源代碼。對軟件的指令和流程進行破解無異于重寫整個軟件,時間復雜度和代價上過大。本文的自檢測防竄改系統(tǒng)能夠較好地抵御動態(tài)行為竄改攻擊,保護軟件行為的完整性。

4結束語

本文針對代碼檢測在抗動態(tài)攻擊上的不足,對軟件的抽象行為進行建模和檢測,增加了對軟件實際執(zhí)行信息的檢測,實現(xiàn)了對軟件行為的完整性保護。并將行為檢測技術應用在自檢測防竄改系統(tǒng)中,協(xié)同加密自解密技術從整體上解決了自檢測代碼自身的安全保護,提高了軟件抗動態(tài)攻擊的能力。然而本文給出的自檢測防竄改系統(tǒng)缺乏對解密函數(shù)的保護,更加完善的防竄改系統(tǒng)有待進一步研究。

參考文獻:

[1]AUCSMITH D. Tamper resistant software:an implamentation[C] //Proc of the 4th International Workshop on Information Hiding ,LNCS. London, UK: Springer-Verlag,1996: 317-333.

[2]HORNE B, MATHESON L, SHEEHAN C .Dynamic self-checking techniques for improved tamper resistance[C] //Proc of Security and Privacy in Digital Rights Management. London, UK: Springer-Ver-lag, 2001:141-159.

[3]CHANG H,MIKHAIL J,ATALLAH. Protecting software code by guards[C] //Proc of Security and Privacy in Digital Rights Management. London, UK: Springer-Verlag,2001:160-175.

[4]CHEN Y Q ,VENKATESAN R. Oblivious hashing:a stealthy software integrity verification primitive[C] //Proc of the 5th International Workshop on Information Hiding.Berlin: Springer-Verlag,2002:400-414.

[5]LEE J, KIM H, YOON H. Tamper resistant software by integrity-based encryption[C] //Proc of the 5th International Conference Parallel and Distributed Computing: Applications and Technologies. Germany: Springer-Verlag,2004:608-612.

[6]WANG Ping. Tamper resistance for software[D]. Daejeon, Korea:School of Engineering Information and Communications University,2004.

注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文

主站蜘蛛池模板: 最近最新中文字幕在线第一页| 蜜桃视频一区二区| 日韩成人在线网站| 激情综合网激情综合| 欧美在线三级| 国产理论精品| 99久久婷婷国产综合精| 四虎成人免费毛片| 国产91透明丝袜美腿在线| 99久久亚洲精品影院| 国产精品精品视频| 亚洲无码高清一区二区| 国产交换配偶在线视频| 国产成人亚洲无码淙合青草| 青青青伊人色综合久久| 日本91在线| 日韩精品久久久久久久电影蜜臀| 国产高清无码麻豆精品| 尤物亚洲最大AV无码网站| 天堂中文在线资源| 97se亚洲综合不卡| 亚洲天堂视频网站| 88国产经典欧美一区二区三区| 美女潮喷出白浆在线观看视频| 久草中文网| 国产精品妖精视频| 国产白浆在线| 久久黄色影院| 人妻少妇久久久久久97人妻| 国产精品吹潮在线观看中文| 国产玖玖视频| 欧美激情伊人| 午夜视频www| 天堂av综合网| 好吊妞欧美视频免费| 欧美色综合网站| 久99久热只有精品国产15| 亚洲九九视频| 亚洲人成日本在线观看| 日本手机在线视频| 免费国产高清精品一区在线| 国产无遮挡猛进猛出免费软件| 一级一级一片免费| 欧美午夜视频在线| 日本亚洲最大的色成网站www| 亚洲欧洲日本在线| 伊大人香蕉久久网欧美| 国产精品yjizz视频网一二区| 三上悠亚一区二区| 日本爱爱精品一区二区| 久一在线视频| 色香蕉网站| 天天摸天天操免费播放小视频| 99无码熟妇丰满人妻啪啪| a级毛片在线免费| 久久这里只精品国产99热8| 中文字幕66页| 蜜臀av性久久久久蜜臀aⅴ麻豆| 色屁屁一区二区三区视频国产| 91在线丝袜| 黄色网站在线观看无码| 无码av免费不卡在线观看| 91破解版在线亚洲| 欧美性久久久久| 白浆免费视频国产精品视频| 99爱在线| 美女内射视频WWW网站午夜 | 亚洲系列中文字幕一区二区| 精品久久久无码专区中文字幕| 成人一区专区在线观看| www亚洲精品| 欧美丝袜高跟鞋一区二区| 日韩天堂网| 天天综合网站| 成人国产精品2021| 亚洲无码免费黄色网址| 久久96热在精品国产高清| 波多野结衣亚洲一区| 亚洲天堂.com| 国产视频你懂得| 亚洲精品国产乱码不卡| 国产91av在线|