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

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

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

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

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

中圖分類號:TP309

文獻標志碼:A

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

0引言

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

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

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

1軟件行為建模和檢測

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

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

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

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

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

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

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

2自檢測防竄改系統

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

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

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

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

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

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

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

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

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

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

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

3系統分析

3.1選擇可檢測代碼

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

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

3.2安全性分析

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

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

4結束語

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

參考文獻:

[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格式閱讀原文

主站蜘蛛池模板: 亚洲 欧美 日韩综合一区| 国产成人综合网| 永久免费AⅤ无码网站在线观看| 成年看免费观看视频拍拍| 在线观看热码亚洲av每日更新| 99re经典视频在线| 91小视频版在线观看www| 欧美精品成人| 欧美激情第一欧美在线| 日韩精品亚洲人旧成在线| 久久精品无码国产一区二区三区| 找国产毛片看| 丝袜高跟美脚国产1区| 成人在线观看不卡| 日本欧美一二三区色视频| 国产永久无码观看在线| 99精品视频在线观看免费播放| 99re热精品视频中文字幕不卡| 福利在线一区| 国产乱人伦精品一区二区| 中文字幕天无码久久精品视频免费 | 午夜一级做a爰片久久毛片| aaa国产一级毛片| 亚洲天堂久久新| 亚洲二区视频| 欧美成人免费午夜全| 国产香蕉国产精品偷在线观看| 国产美女一级毛片| 亚洲区欧美区| 久久综合丝袜长腿丝袜| 亚洲另类国产欧美一区二区| 久久免费精品琪琪| 亚洲第一中文字幕| 亚洲成AV人手机在线观看网站| 亚洲精品大秀视频| 国产一级妓女av网站| 国产95在线 | 亚洲中文无码h在线观看| 免费一看一级毛片| 无码精品国产dvd在线观看9久| 亚洲一级毛片在线观播放| 一级毛片免费不卡在线| 国产va欧美va在线观看| 一区二区三区毛片无码| 欧美高清三区| 亚洲最猛黑人xxxx黑人猛交| 天天做天天爱天天爽综合区| 国产伦片中文免费观看| 婷婷激情五月网| 波多野结衣中文字幕一区二区| 亚洲日韩精品欧美中文字幕| 波多野结衣第一页| 国产黄色视频综合| 免费人成网站在线高清| 特黄日韩免费一区二区三区| 久久香蕉国产线看观看精品蕉| 深爱婷婷激情网| 黄色网址免费在线| 在线观看国产精美视频| 被公侵犯人妻少妇一区二区三区| 欧美成在线视频| 一级黄色网站在线免费看| 国产高颜值露脸在线观看| 自偷自拍三级全三级视频 | 久久国产V一级毛多内射| 久久国产精品麻豆系列| 国产剧情一区二区| 亚洲人成在线精品| 亚洲日韩欧美在线观看| 国产精品人莉莉成在线播放| 日本成人福利视频| 亚洲午夜片| 播五月综合| 丁香综合在线| 在线亚洲天堂| 亚洲Va中文字幕久久一区| 五月婷婷综合网| 久久国产热| 亚洲无线国产观看| 好久久免费视频高清| 日韩高清中文字幕| 亚洲Va中文字幕久久一区 |