本發(fā)明屬于進(jìn)程檢測及度量技術(shù)領(lǐng)域,尤其涉及一種交換進(jìn)程可信度量方法和系統(tǒng)。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)和國家信息化建設(shè)的不斷發(fā)展,信息安全受到了高度重視。目前,對于重要信息系統(tǒng)的安全定級(jí)和保護(hù)工作已經(jīng)基本完成,信息安全得到了一定程度的保障。
然而,根據(jù)不同需求、不同重要程度所建立的不同信息系統(tǒng)之間無法互聯(lián)互通,由此形成的信息孤島與信息化建設(shè)中信息交換的實(shí)際需求相違背。在不同的信息系統(tǒng)或者安全域之間,常常需要信息的共享,但同時(shí)也伴隨著相應(yīng)的安全隱患。以基于互聯(lián)網(wǎng)的電子應(yīng)用系統(tǒng)為例,系統(tǒng)往往存在公開數(shù)據(jù)處理區(qū)和敏感數(shù)據(jù)處理區(qū)。在兩個(gè)處理區(qū)進(jìn)行信息共享的過程中,攻擊者極有可能劫持交換進(jìn)程,影響正常的交換行為,致使交換過程不可控,從而達(dá)到非法竊取敏感信息或篡改交換數(shù)據(jù)的目的。
基于此,為實(shí)現(xiàn)交換過程的可控性以確保信息安全,對交換進(jìn)程進(jìn)行可信度量,有效獲知交換進(jìn)程可信與否十分必要。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提供一種交換進(jìn)程可信度量方法和系統(tǒng),旨在通過對交換進(jìn)程進(jìn)行可信度量,實(shí)現(xiàn)為交換過程的可控提供支持。
為此,本發(fā)明公開如下技術(shù)方案:
一種交換進(jìn)程可信度量方法,包括:
獲取預(yù)先構(gòu)建的交換進(jìn)程可信度量信息基;所述可信度量信息基包括用于對交換進(jìn)程進(jìn)行可信度量的各預(yù)定度量因素所對應(yīng)的基準(zhǔn)度量信息;
基于所述可信度量信息基,對交換進(jìn)程進(jìn)行可信度量,得到度量結(jié)果。
上述方法,優(yōu)選的,所述可信度量信息基包括:靜態(tài)度量信息基及動(dòng)態(tài)度量信息基;其中:
所述靜態(tài)度量信息基,包括靜態(tài)程序信息、動(dòng)態(tài)鏈接庫信息、系統(tǒng)內(nèi)核信息、交換進(jìn)程與動(dòng)態(tài)鏈接庫間的依賴關(guān)系信息、不同動(dòng)態(tài)鏈接庫間的依賴關(guān)系信息及動(dòng)態(tài)鏈接庫與系統(tǒng)內(nèi)核間的依賴關(guān)系信息;
所述動(dòng)態(tài)度量信息基,包括進(jìn)程狀態(tài)集合、進(jìn)程初始狀態(tài)集合、進(jìn)程結(jié)束時(shí)狀態(tài)集合及進(jìn)程狀態(tài)轉(zhuǎn)換集合。
上述方法,優(yōu)選的,所述預(yù)先構(gòu)建的交換進(jìn)程可信度量信息基的構(gòu)建過程包括:
預(yù)先基于交換進(jìn)程的多次良性執(zhí)行構(gòu)建交換進(jìn)程可信度量信息基。
上述方法,優(yōu)選的,所述預(yù)先基于交換進(jìn)程的多次良性執(zhí)行構(gòu)建交換進(jìn)程可信度量信息基包括:
預(yù)先從交換進(jìn)程的多次良性執(zhí)行所對應(yīng)的程序依賴圖建立交換進(jìn)程的靜態(tài)度量信息基;其中,所述程序依賴圖包括各類型頂點(diǎn)間的依賴關(guān)系圖示,所述各類型頂點(diǎn)包括表示交換進(jìn)程的第一頂點(diǎn)、表示動(dòng)態(tài)鏈接庫的第二頂點(diǎn)及表示系統(tǒng)內(nèi)核的第三頂點(diǎn);
預(yù)先捕獲交換進(jìn)程多次良性執(zhí)行過程中的函數(shù)調(diào)用,分析函數(shù)調(diào)用間的關(guān)系;并基于函數(shù)調(diào)用間的關(guān)系建立交換進(jìn)程的動(dòng)態(tài)度量信息基。
上述方法,優(yōu)選的,所述基于所述可信度量信息基,對交換進(jìn)程進(jìn)行可信度量包括:
基于所述靜態(tài)度量信息基,利用預(yù)設(shè)的靜態(tài)度量策略對交換進(jìn)程對應(yīng)的靜態(tài)程序、動(dòng)態(tài)鏈接庫、系統(tǒng)內(nèi)核及所述靜態(tài)程序、所述動(dòng)態(tài)鏈接庫、所述系統(tǒng)內(nèi)核間的依賴關(guān)系進(jìn)行度量;
基于所述動(dòng)態(tài)度量信息基,對交換進(jìn)程執(zhí)行過程中的函數(shù)調(diào)用情況、進(jìn)程狀態(tài)轉(zhuǎn)換情況及系統(tǒng)資源占用情況進(jìn)行度量。
上述方法,優(yōu)選的,所述靜態(tài)度量策略為一次性度量、按需度量及按重要性度量中的任意之一。
一種交換進(jìn)程可信度量系統(tǒng),包括:
獲取模塊,用于獲取預(yù)先構(gòu)建的交換進(jìn)程可信度量信息基;所述可信度量信息基包括用于對交換進(jìn)程進(jìn)行可信度量的各預(yù)定度量因素所對應(yīng)的基準(zhǔn)度量信息;
度量模塊,用于基于所述可信度量信息基,對交換進(jìn)程進(jìn)行可信度量,得到度量結(jié)果。
上述系統(tǒng),優(yōu)選的,還包括:
預(yù)處理模塊,用于預(yù)先基于交換進(jìn)程的多次良性執(zhí)行構(gòu)建交換進(jìn)程可信度量信息基。
上述系統(tǒng),優(yōu)選的,所述預(yù)處理模塊包括:
第一構(gòu)建單元,用于預(yù)先從交換進(jìn)程的多次良性執(zhí)行所對應(yīng)的程序依賴圖建立交換進(jìn)程的靜態(tài)度量信息基;其中,所述程序依賴圖包括各類型頂點(diǎn)間的依賴關(guān)系圖示,所述各類型頂點(diǎn)包括表示交換進(jìn)程的第一頂點(diǎn)、表示動(dòng)態(tài)鏈接庫的第二頂點(diǎn)及表示系統(tǒng)內(nèi)核的第三頂點(diǎn);
第二構(gòu)建單元,用于預(yù)先捕獲交換進(jìn)程多次良性執(zhí)行過程中的函數(shù)調(diào)用,分析函數(shù)調(diào)用間的關(guān)系;并基于函數(shù)調(diào)用間的關(guān)系建立交換進(jìn)程的動(dòng)態(tài)度量信息基。
上述系統(tǒng),優(yōu)選的,所述度量模塊包括:
靜態(tài)度量單元,用于基于所述靜態(tài)度量信息基,利用預(yù)設(shè)的靜態(tài)度量策略對交換進(jìn)程對應(yīng)的靜態(tài)程序、動(dòng)態(tài)鏈接庫、系統(tǒng)內(nèi)核及所述靜態(tài)程序、所述動(dòng)態(tài)鏈接庫、所述系統(tǒng)內(nèi)核間的依賴關(guān)系進(jìn)行度量;
動(dòng)態(tài)度量單元,用于基于所述動(dòng)態(tài)度量信息基,對交換進(jìn)程執(zhí)行過程中的函數(shù)調(diào)用情況、進(jìn)程狀態(tài)轉(zhuǎn)換情況及系統(tǒng)資源占用情況進(jìn)行度量。
由以上方案可知,本申請公開的交換進(jìn)程可信度量方法及系統(tǒng),獲取預(yù)先構(gòu)建的交換進(jìn)程可信度量信息基,其中,所述可信度量信息基包括用于對交換進(jìn)程進(jìn)行可信度量的各預(yù)定度量因素所對應(yīng)的度量信息;并基于所述可信度量信息基,對交換進(jìn)程進(jìn)行可信度量,得到度量結(jié)果??梢?,應(yīng)用本申請方案可實(shí)現(xiàn)對交換進(jìn)程進(jìn)行可信度量,有效獲知交換進(jìn)程可信與否,從而為交換過程的可控提供了支持,實(shí)際應(yīng)用中,可基于應(yīng)用本申請對交換進(jìn)程進(jìn)行可信度量的度量結(jié)果,對交換過程進(jìn)行相應(yīng)安全控制,以確保交換過程的信息安全。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1是本申請實(shí)施例一提供的交換進(jìn)程可信度量方法流程圖;
圖2是本申請實(shí)施例一提供的程序依賴圖的結(jié)構(gòu)示例圖;
圖3-圖4是本申請實(shí)施例三提供的交換進(jìn)程可信度量系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了引用和清楚起見,下文中使用的技術(shù)名詞、簡寫或縮寫總結(jié)解釋如下:
Shellcode:實(shí)際是一段代碼(也可以是填充數(shù)據(jù)),是用來發(fā)送到服務(wù)器利用特定漏洞的代碼,一般可以獲取權(quán)限。另外,Shellcode一般是作為數(shù)據(jù)發(fā)送給受攻擊服務(wù)器的,Shellcode是溢出程序和蠕蟲病毒的核心。
動(dòng)態(tài)函數(shù)調(diào)用樹集合:本申請中,動(dòng)態(tài)函數(shù)調(diào)用樹集合中包含的所有函數(shù)調(diào)用樹均對應(yīng)同一交換進(jìn)程,同一交換進(jìn)程不同的運(yùn)行階段其函數(shù)調(diào)用樹一般是不同的,此外,同一交換進(jìn)程在多次運(yùn)行時(shí),即使是同一階段,其函數(shù)調(diào)用樹也可能是不同的。進(jìn)程的一次執(zhí)行軌跡的函數(shù)調(diào)用關(guān)系可以以一棵有序樹表示,稱為動(dòng)態(tài)函數(shù)調(diào)用樹,多次執(zhí)行得到的結(jié)果構(gòu)成了動(dòng)態(tài)函數(shù)調(diào)用樹集合。
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
實(shí)施例一
本申請實(shí)施例一公開一種交換進(jìn)程可信度量方法,參考圖1示出的交換進(jìn)程可信度量方法流程圖,該方法可以包括以下步驟:
S101:獲取預(yù)先構(gòu)建的交換進(jìn)程可信度量信息基;所述可信度量信息基包括用于對交換進(jìn)程進(jìn)行可信度量的各預(yù)定度量因素所對應(yīng)的基準(zhǔn)度量信息。
進(jìn)程行為是指進(jìn)程運(yùn)行的表現(xiàn)形態(tài)和狀態(tài)演變的過程,進(jìn)程的一次執(zhí)行則是基于時(shí)間序列發(fā)生的一個(gè)行為序列。通過操作拼接符“˙”將這些行為按時(shí)間序列進(jìn)行組合稱之為進(jìn)程行為跡,進(jìn)程一次執(zhí)行過程中所有行為組成的集合稱作該行為跡的行為集。軟件行為學(xué)中行為信息基是指主體在行為樹上遍歷、從事行為的實(shí)際含義與意義,是語義范疇的描述。本申請結(jié)合數(shù)據(jù)安全交換背景對這種描述進(jìn)行重新定義,即同樣沿用信息基的概念,定義一種可信度量信息基(TMIB,Trust Measurement Information Base)。本申請中,可信度量信息基具體指用于對交換進(jìn)程進(jìn)行可信度量的各預(yù)定度量因素所對應(yīng)的度量信息。
具體地,本申請通過對影響交換進(jìn)程可信的因素進(jìn)行分析,將進(jìn)程靜態(tài)程序、進(jìn)程依賴的動(dòng)態(tài)鏈接庫和系統(tǒng)內(nèi)核等靜態(tài)因素,以及進(jìn)程運(yùn)行過程中的環(huán)境因素,如端口、CPU(Central Processing Unit,中央處理器)等,納入對交換進(jìn)程行為跡的分析過程,以確定交換進(jìn)程的拓展行為跡,該拓展行為跡具體包括進(jìn)程行為的有序組合,以及進(jìn)程靜態(tài)程序、進(jìn)程依賴的動(dòng)態(tài)鏈接庫及系統(tǒng)內(nèi)核等靜態(tài)因素,還包括進(jìn)程運(yùn)行過程中的環(huán)境因素,如端口、CPU等。在此基礎(chǔ)上,構(gòu)建基于交換進(jìn)程拓展行為跡的可信度量信息基。
根據(jù)具體度量因素的不同,可信度量信息基包括靜態(tài)度量信息基和動(dòng)態(tài)度量信息基。
(一)靜態(tài)度量信息基
交換進(jìn)程靜態(tài)可信是交換進(jìn)程運(yùn)行的基礎(chǔ),通常木馬和病毒會(huì)修改交換進(jìn)程靜態(tài)程序及其關(guān)聯(lián)的動(dòng)態(tài)鏈接庫、系統(tǒng)內(nèi)核等,從而獲得系統(tǒng)控制權(quán),影響交換行為的正常執(zhí)行?;诖耍旧暾垖㈧o態(tài)度量的對象分為進(jìn)程靜態(tài)程序、動(dòng)態(tài)鏈接庫和系統(tǒng)內(nèi)核三個(gè)方面。
其中,交換進(jìn)程是基于將進(jìn)程靜態(tài)程序加載到內(nèi)存中并初始化進(jìn)程控制信息而生成的,因此交換進(jìn)程靜態(tài)程序的完整性是交換進(jìn)程運(yùn)行的基礎(chǔ);動(dòng)態(tài)鏈接庫是系統(tǒng)中進(jìn)程執(zhí)行所共享的資源,針對動(dòng)態(tài)鏈接庫攻擊者往往通過木馬或病毒感染或者替換動(dòng)態(tài)鏈接庫文件的方式,使得進(jìn)程運(yùn)行過程不安全;系統(tǒng)內(nèi)核是操作系統(tǒng)最基礎(chǔ)的部分,構(gòu)成了整個(gè)操作系統(tǒng)的核心框架,操作系統(tǒng)的基本功能都是由系統(tǒng)內(nèi)核來提供的,如驅(qū)動(dòng)管理、資源共享、進(jìn)程調(diào)度等。
系統(tǒng)內(nèi)核主要包括內(nèi)核代碼段、內(nèi)核只讀數(shù)據(jù)段、系統(tǒng)調(diào)用表、中斷描述符表、全局描述符表及內(nèi)核模塊。其各部分的功能如表1所示。
表1
參考圖2,進(jìn)程與上述三個(gè)方面的關(guān)系可以以程序依賴圖表示,進(jìn)程程序依賴圖為一個(gè)有向無環(huán)圖GPDG(V',E'),其中V'表示圖的頂點(diǎn),E'表示圖中各頂點(diǎn)間的依賴關(guān)系。
具體地,V'=<P/D/K,inDegree,outDegree>,其中P表示進(jìn)程集合,其包含交換進(jìn)程元素p,D={d1,d2,...dn}表示交換進(jìn)程所依賴的動(dòng)態(tài)鏈接庫集合;K表示系統(tǒng)內(nèi)核集合;對于圖中包含的各類型頂點(diǎn)(交換進(jìn)程、動(dòng)態(tài)鏈接庫、系統(tǒng)內(nèi)核),本申請引入度的概念表示其依賴次數(shù),其中,inDegree、outDegree分別表示入度和出度,即對于一個(gè)頂點(diǎn)來講,該頂點(diǎn)對應(yīng)的inDegree表示該頂點(diǎn)被圖中其他頂點(diǎn)/節(jié)點(diǎn)依賴的次數(shù),該頂點(diǎn)的對應(yīng)的outDegree表示該頂點(diǎn)依賴圖中其他頂點(diǎn)的次數(shù)。
基于圖2示出的程序依賴圖可知,程序依賴圖GPDG有如下特點(diǎn):
(1)存在頂點(diǎn)p(交換進(jìn)程)和頂點(diǎn)k(內(nèi)核)兩個(gè)特殊頂點(diǎn),其中頂點(diǎn)p的入度為0,頂點(diǎn)k的出度為0,其余頂點(diǎn)的入度和出度均大于0。
(2)程序依賴圖GPDG為有向無環(huán)圖,因此不存在頂點(diǎn)的互相依賴關(guān)系,即<vi',vj'>和<vj',vi'>不可能同時(shí)出現(xiàn)。
TMIB可采取動(dòng)態(tài)訓(xùn)練的方式基于交換進(jìn)程的多次良性執(zhí)行建立,所述良性執(zhí)行具體指交換進(jìn)程的運(yùn)行過程無異常,無攻擊、無破壞,以此使得所構(gòu)建的TMIB中包括的可信度量信息基能夠作為對交換進(jìn)程進(jìn)行度量的度量基準(zhǔn)。
具體地,本申請預(yù)先基于交換進(jìn)程多次良性執(zhí)行所對應(yīng)的程序依賴圖建立交換進(jìn)程的靜態(tài)度量信息基,其中,建立的靜態(tài)度量信息基包括靜態(tài)程序信息、動(dòng)態(tài)鏈接庫信息、系統(tǒng)內(nèi)核信息、交換進(jìn)程與動(dòng)態(tài)鏈接庫間的依賴關(guān)系信息、不同動(dòng)態(tài)鏈接庫間的依賴關(guān)系信息及動(dòng)態(tài)鏈接庫與系統(tǒng)內(nèi)核間的依賴關(guān)系信息等各度量因素的基準(zhǔn)度量信息,從而后續(xù)可以靜態(tài)度量信息基中包含的上述度量因素的基準(zhǔn)度量信息為基準(zhǔn),對交換進(jìn)程進(jìn)行靜態(tài)可信度量。
(二)動(dòng)態(tài)度量信息基
對交換進(jìn)程的靜態(tài)可信度量能夠?qū)崿F(xiàn)進(jìn)程啟動(dòng)前可信,然而,交換進(jìn)程靜態(tài)度量一般是在進(jìn)程加載到內(nèi)存之前完成的,只是保障交換進(jìn)程可信的先決條件之一,同樣重要的是交換進(jìn)程的動(dòng)態(tài)可信,基于此,為實(shí)現(xiàn)對交換進(jìn)程進(jìn)行動(dòng)態(tài)可信度量,本實(shí)施例接下來對動(dòng)態(tài)度量信息的構(gòu)建進(jìn)行描述。
首先,對構(gòu)建動(dòng)態(tài)度量信息基需基于的各類內(nèi)容進(jìn)行定義,具體包括對函數(shù)調(diào)用、函數(shù)調(diào)用集合、動(dòng)態(tài)函數(shù)調(diào)用樹、狀態(tài)轉(zhuǎn)換邊、狀態(tài)轉(zhuǎn)換路徑及進(jìn)程狀態(tài)等進(jìn)行定義。
定義1:函數(shù)調(diào)用
從交換進(jìn)程執(zhí)行的第一個(gè)函數(shù)調(diào)用開始,其每一個(gè)函數(shù)調(diào)用f可用一個(gè)四元組表示:f=<fid,fname,obj,ostate>,其中fid表示函數(shù)調(diào)用編號(hào),用于唯一標(biāo)識(shí)一次函數(shù)調(diào)用,在進(jìn)程執(zhí)行過程中通常會(huì)對同一函數(shù)進(jìn)行多次調(diào)用,而從執(zhí)行軌跡上看,每次的函數(shù)調(diào)用應(yīng)看作是不同的調(diào)用事件;fname表示所調(diào)用函數(shù)的名稱;obj表示函數(shù)調(diào)用對象集合;ostate表示函數(shù)調(diào)用對象狀態(tài)集合。
定義2:函數(shù)調(diào)用集合
V={f1,f2,f3...,fn},fi∈V,1≤i≤n,即進(jìn)程在一次執(zhí)行軌跡中的所有函數(shù)調(diào)用的集合,其中fi表示第i個(gè)時(shí)刻進(jìn)程所進(jìn)行的函數(shù)調(diào)用。
定義3:動(dòng)態(tài)函數(shù)調(diào)用樹
Tree=<V,G>,其中V表示函數(shù)調(diào)用集合,G為函數(shù)調(diào)用的二元關(guān)系集合。進(jìn)程一般都有唯一的入口函數(shù),其他的函數(shù)均直接或者間接的由該函數(shù)調(diào)用,因此進(jìn)程的一次執(zhí)行軌跡的函數(shù)調(diào)用關(guān)系可以以一棵有序樹表示,稱為動(dòng)態(tài)函數(shù)調(diào)用樹。給定其中元素fi,則fi到根節(jié)點(diǎn)的距離為fi的深度,記為h(fi)。
定義4:狀態(tài)轉(zhuǎn)換邊
E={e1,e2,e3...,en},ei=<fi,tostateno>,1≤i≤n,在TMIB模型中,ei表示進(jìn)程狀態(tài)的一次轉(zhuǎn)換,稱為狀態(tài)轉(zhuǎn)換邊,進(jìn)程狀態(tài)的轉(zhuǎn)換由函數(shù)調(diào)用觸發(fā),即進(jìn)程狀態(tài)的轉(zhuǎn)換與函數(shù)調(diào)用關(guān)系相對應(yīng),其中fi表示一次函數(shù)調(diào)用,tostateno表示經(jīng)過函數(shù)調(diào)用fi之后進(jìn)程所轉(zhuǎn)向的狀態(tài)編號(hào),若此次函數(shù)調(diào)用不影響進(jìn)程狀態(tài)改變,則對應(yīng)轉(zhuǎn)換邊的轉(zhuǎn)向狀態(tài)為當(dāng)前狀態(tài)本身。
定義5:狀態(tài)轉(zhuǎn)換路徑
path=<e1,e2,...,en>,表示進(jìn)程在一次執(zhí)行軌跡中的所有狀態(tài)轉(zhuǎn)換邊構(gòu)成的狀態(tài)轉(zhuǎn)換路徑。進(jìn)程執(zhí)行軌跡的不同,會(huì)導(dǎo)致其狀態(tài)轉(zhuǎn)換路徑的不同。
定義6:進(jìn)程狀態(tài)
S=<stateno,pathlist,resources>,表示進(jìn)程運(yùn)行狀態(tài)。其中:stateno表示狀態(tài)編號(hào),用于唯一標(biāo)識(shí)模型中的一個(gè)狀態(tài);pathlist=<path1,path2,path3,...,pathm>表示該狀態(tài)下所擁有的執(zhí)行路徑集合,其中pathi(1≤i≤m)表示第i個(gè)執(zhí)行路徑;resources表示該狀態(tài)下進(jìn)程所占用的系統(tǒng)資源,如通信端口、CPU等。
在上述對靜態(tài)度量信息基和動(dòng)態(tài)度量信息基的相關(guān)內(nèi)容進(jìn)行描述的基礎(chǔ)上,接下來本申請定義基于拓展行為跡的可信度量信息基TMIB。
定義7:可信度量信息基
TMIB=<S,T,S0,SE,H>,其中,S,T,S0,SE均屬于動(dòng)態(tài)度量信息基,S表示進(jìn)程狀態(tài)集合;S0表示進(jìn)程初始狀態(tài)集合;SE表示進(jìn)程結(jié)束時(shí)狀態(tài)集合;T={ei|ei∈E}表示進(jìn)程狀態(tài)轉(zhuǎn)換集合。H表示進(jìn)程靜態(tài)度量信息基集合。
上文已述及,TMIB可采取動(dòng)態(tài)訓(xùn)練的方式基于交換進(jìn)程的多次良性執(zhí)行建立。其中,對于靜態(tài)度量信息基具體可基于程序依賴圖構(gòu)建;而對于動(dòng)態(tài)度量信息基,則需首先捕獲交換進(jìn)程在執(zhí)行過程中的函數(shù)調(diào)用,然后分析函數(shù)調(diào)用關(guān)系,構(gòu)造動(dòng)態(tài)函數(shù)調(diào)用樹,并根據(jù)構(gòu)造的動(dòng)態(tài)函數(shù)調(diào)用樹建立有限自動(dòng)狀態(tài)機(jī)模型即建立所述動(dòng)態(tài)度量信息基。
以下對動(dòng)態(tài)度量信息基的構(gòu)建過程進(jìn)行詳細(xì)描述:
初始化TMIB,具體根據(jù)進(jìn)程函數(shù)調(diào)用及進(jìn)程資源占用情況生成初始狀態(tài)S0,并將S0添加到TMIB中;然后從動(dòng)態(tài)函數(shù)調(diào)用樹集合中取出一棵函數(shù)調(diào)用樹作為當(dāng)前待訓(xùn)練的函數(shù)調(diào)用,其中,每個(gè)函數(shù)調(diào)用樹的訓(xùn)練過程相同,具體包括:首先初始化CurrentState為前一次訓(xùn)練產(chǎn)生的TMIB的初始狀態(tài)S0;然后依次取出當(dāng)前函數(shù)調(diào)用樹中的一個(gè)函數(shù)調(diào)用,將函數(shù)調(diào)用轉(zhuǎn)換為對應(yīng)的轉(zhuǎn)換邊e,并且根據(jù)當(dāng)前狀態(tài)、轉(zhuǎn)換邊及系統(tǒng)資源調(diào)用情況生成下一個(gè)狀態(tài)NextState;之后判斷NextState是否已經(jīng)存在于TMIB的進(jìn)程狀態(tài)集合S中,若不存在,則將其添加進(jìn)去,若存在,則將NextState更新為進(jìn)程狀態(tài)集合S中已存在的狀態(tài);接下來將狀態(tài)轉(zhuǎn)換邊e指向NextState,并判斷轉(zhuǎn)換邊e是否存在于CurrentState的轉(zhuǎn)換路徑集合pathlist中,若不在,則添加進(jìn)去;最后將CurrentState更新為NextState,并取下一個(gè)函數(shù)調(diào)用,對所取的函數(shù)調(diào)用,依次循環(huán)執(zhí)行上述對函數(shù)調(diào)用的處理過程,直到處理完當(dāng)前函數(shù)調(diào)用序列中所有的函數(shù)調(diào)用。按照上述過程對待訓(xùn)練的函數(shù)調(diào)用樹集合中的每個(gè)調(diào)用樹進(jìn)行訓(xùn)練,直到生成最后的TMIB。
從而在預(yù)先建立TMIB的基礎(chǔ)上,可在交換進(jìn)程有可信度量需求時(shí),通過加載TMIB,并以加載的TMIB為基準(zhǔn),對交換進(jìn)程進(jìn)行可信度量。
S102:基于所述可信度量信息基,對交換進(jìn)程進(jìn)行可信度量,得到度量結(jié)果。
本步驟具體在步驟S101的基礎(chǔ)上,利用加載的TMIB進(jìn)行交換進(jìn)程可信度量,基于TMIB的交換進(jìn)程可信度量的基本構(gòu)思是:收集待度量交換進(jìn)程的一次執(zhí)行的拓展行為跡信息,然后將收集到的信息與TMIB中包含的基準(zhǔn)度量信息進(jìn)行對比,并基于對比結(jié)果判定交換進(jìn)程是否可信。TMIB包括靜態(tài)度量信息基和動(dòng)態(tài)度量信息基,從而可實(shí)現(xiàn)對交換進(jìn)程進(jìn)行靜態(tài)可信度量和動(dòng)態(tài)可信度量。
本申請通過對交換任務(wù)(交換進(jìn)程對應(yīng)的交換任務(wù))進(jìn)行安全性、運(yùn)行效率等方面的考慮,給出以下三種靜態(tài)度量策略:一次性度量、按需度量及按重要性度量,所述三種靜態(tài)度量策略分別對應(yīng)的度量特點(diǎn)請參考以下的表2所示。
表2
當(dāng)需對交換進(jìn)程進(jìn)行靜態(tài)度量時(shí),需首先加載TMIB,之后可采用相應(yīng)靜態(tài)度量策略并基于TMIB的靜態(tài)度量信息基對靜態(tài)程序依賴圖對應(yīng)的相關(guān)文件進(jìn)行度量,如具體可將靜態(tài)程序依賴圖對應(yīng)的交換進(jìn)程靜態(tài)程序、動(dòng)態(tài)鏈接庫、系統(tǒng)內(nèi)核以及三者間的依賴關(guān)系分別與靜態(tài)度量信息基中的相應(yīng)基準(zhǔn)度量信息進(jìn)行比對,從而在此基礎(chǔ)上可基于比對結(jié)果得出靜態(tài)度量結(jié)果。
在應(yīng)用并實(shí)施本申請時(shí),可基于實(shí)際的度量需求,如安全性或運(yùn)行效率等方面的需求,選取上述三種靜態(tài)度量策略中的任意之一對交換進(jìn)程進(jìn)行靜態(tài)度量。
若選取一次性度量策略,則在交換進(jìn)程啟動(dòng)并運(yùn)行之前,需要對其對應(yīng)的靜態(tài)程序及依賴的所有動(dòng)態(tài)鏈接庫和系統(tǒng)內(nèi)核進(jìn)行完整性度量。其中,可根據(jù)程序依賴圖GPDG的特點(diǎn),選取較為合適的廣度或深度優(yōu)先搜索算法遍歷GPDG中的頂點(diǎn),并依次對其進(jìn)行完整性度量。當(dāng)有任意待度量值與TMIB中靜態(tài)度量信息基的相應(yīng)基準(zhǔn)內(nèi)容不同時(shí),則不可信,度量過程終止;若均相等,則繼續(xù)執(zhí)行交換進(jìn)程動(dòng)態(tài)度量過程。
若選取按需度量策略,則當(dāng)交換進(jìn)程對動(dòng)態(tài)鏈接庫或系統(tǒng)內(nèi)核調(diào)用時(shí),首先判定動(dòng)態(tài)鏈接庫或系統(tǒng)內(nèi)核是否存在依賴關(guān)系,若存在,則將依賴關(guān)系及依賴關(guān)系中涉及的動(dòng)態(tài)連接庫或系統(tǒng)內(nèi)核與TMIB中靜態(tài)度量信息基的相應(yīng)基準(zhǔn)內(nèi)容進(jìn)行比對實(shí)現(xiàn)對其進(jìn)行完整性度量。如果比對結(jié)果為兩者相同,則認(rèn)為可信,從而可繼續(xù)執(zhí)行交換進(jìn)程動(dòng)態(tài)度量過程,如果不相同,則終止。
若選取按重要性度量策略,則需預(yù)先基于頂點(diǎn)的重要性從程序依賴圖GPDG中選取待度量的頂點(diǎn),比如具體選取入度和出度之和大于等于4的頂點(diǎn)進(jìn)行度量等。同樣,當(dāng)任意的待度量值與TMIB中靜態(tài)度量信息基的相應(yīng)基準(zhǔn)內(nèi)容不同時(shí),則度量過程終止;否則,繼續(xù)執(zhí)行交換進(jìn)程動(dòng)態(tài)度量過程。
如果交換進(jìn)程的靜態(tài)可信度量通過,即交換進(jìn)程當(dāng)前的靜態(tài)可信度量結(jié)果為可信,則可繼續(xù)對交換進(jìn)程進(jìn)行動(dòng)態(tài)可信度量,監(jiān)控交換進(jìn)程運(yùn)行過程中的函數(shù)調(diào)用情況、進(jìn)程狀態(tài)轉(zhuǎn)換情況及系統(tǒng)資源占用情況,并將監(jiān)控信息與TMIB的動(dòng)態(tài)度量信息基的相應(yīng)基準(zhǔn)內(nèi)容進(jìn)行比對,從而得出交換進(jìn)程的動(dòng)態(tài)可信度量結(jié)果。
具體地,當(dāng)交換進(jìn)程靜態(tài)可信度量通過時(shí),將TMIB中的初始狀態(tài)設(shè)為CurrentState。當(dāng)交換進(jìn)程產(chǎn)生函數(shù)調(diào)用時(shí),檢測其對應(yīng)的邊是否屬于當(dāng)前狀態(tài)的合法轉(zhuǎn)換邊,如果不屬于則返回異常,此時(shí)交換進(jìn)程動(dòng)態(tài)度量結(jié)果為不可信;當(dāng)所有的函數(shù)調(diào)用檢測完畢,且其對應(yīng)的邊均在TMIB中,則返回正常,從而交換進(jìn)程的動(dòng)態(tài)度量結(jié)果為可信。
由以上方案可知,本申請公開的交換進(jìn)程可信度量方法,獲取預(yù)先構(gòu)建的交換進(jìn)程可信度量信息基,其中,所述可信度量信息基包括用于對交換進(jìn)程進(jìn)行可信度量的各預(yù)定度量因素所對應(yīng)的度量信息;并基于所述可信度量信息基,對交換進(jìn)程進(jìn)行可信度量,得到度量結(jié)果??梢?,應(yīng)用本申請方案可實(shí)現(xiàn)對交換進(jìn)程進(jìn)行可信度量,有效獲知交換進(jìn)程可信與否,從而為交換過程的可控提供了支持,實(shí)際應(yīng)用中,可基于應(yīng)用本申請對交換進(jìn)程進(jìn)行可信度量的度量結(jié)果,對交換過程進(jìn)行相應(yīng)安全控制,以確保交換過程的信息安全。
實(shí)施例二
本實(shí)施例將以本申請的交換進(jìn)程可信度量方法對幾種常見攻擊方法的檢測能力為例,對本申請方法的有效性、安全性進(jìn)行分析。
具體地,本實(shí)施例中,具體采用的示例性攻擊方法包括代碼注入攻擊、不可能路徑攻擊、模仿攻擊及針對數(shù)據(jù)語義的攻擊。接下來,針對各攻擊方法,對本申請方法的有效性、安全性具體作出以下分析:
1)代碼注入攻擊
代碼注入攻擊是指攻擊者將一段可執(zhí)行二進(jìn)制代碼注入到交換進(jìn)程運(yùn)行空間中,以修改交換進(jìn)程的正常執(zhí)行流程。攻擊者通過執(zhí)行注入代碼獲得交換進(jìn)程的控制權(quán),從而實(shí)現(xiàn)對敏感信息的竊取等。
采用本申請的交換進(jìn)程可信度量方法,可檢測到注入代碼所引發(fā)的額外的函數(shù)調(diào)用信息或?qū)ο到y(tǒng)環(huán)境的改變和破壞。根據(jù)所注入Shellcode的不同,具體可將代碼注入攻擊細(xì)分為兩種類型。若注入代碼破壞了進(jìn)程執(zhí)行文件、動(dòng)態(tài)鏈接庫或者系統(tǒng)內(nèi)核模塊的完整性,則交換進(jìn)程的靜態(tài)度量過程會(huì)及時(shí)發(fā)現(xiàn)進(jìn)程的相關(guān)靜態(tài)信息與TMIB中的靜態(tài)度量信息基不相同,從而可避免交換進(jìn)程的執(zhí)行;若注入代碼引發(fā)了函數(shù)調(diào)用,并且函數(shù)調(diào)用的fid與當(dāng)前函數(shù)調(diào)用的不同,則交換進(jìn)程動(dòng)態(tài)度量過程會(huì)及時(shí)發(fā)現(xiàn)進(jìn)程狀態(tài)與TMIB中基準(zhǔn)值不相同,從而中止交換進(jìn)程的繼續(xù)執(zhí)行;若注入代碼引發(fā)了函數(shù)調(diào)用,但是函數(shù)調(diào)用fid與當(dāng)前函數(shù)調(diào)用相同,只是調(diào)用參數(shù)不同,則同樣在交換進(jìn)程動(dòng)態(tài)度量過程中能夠及時(shí)發(fā)現(xiàn)進(jìn)程遭到了攻擊;若注入代碼導(dǎo)致系統(tǒng)資源狀態(tài)發(fā)生較大變化,由于交換進(jìn)程執(zhí)行過程實(shí)時(shí)監(jiān)控執(zhí)行環(huán)境狀態(tài),亦同樣能夠及時(shí)發(fā)現(xiàn)。
2)不可能路徑攻擊
根據(jù)傳統(tǒng)的有限自動(dòng)狀態(tài)機(jī)模型[58]中的描述,不可能路徑是指函數(shù)返回到了一個(gè)不同的另一個(gè)同名調(diào)用點(diǎn)。由于TMIB中動(dòng)態(tài)可信度量信息基的構(gòu)建仍然屬于有限自動(dòng)狀態(tài)機(jī)模型,因此仍然需要考慮不可能路徑攻擊的情況。本申請中不可能路徑具體指在TMIB的進(jìn)程狀態(tài)集合中存在,但是交換進(jìn)程在實(shí)際執(zhí)行過程中并不存在的路徑。
TMIB中動(dòng)態(tài)可信度量信息基的構(gòu)建采取動(dòng)態(tài)函數(shù)調(diào)用樹來表示函數(shù)調(diào)用關(guān)系,而交換進(jìn)程對同一函數(shù)進(jìn)行的多次調(diào)用視為不同的調(diào)用事件,并以不同的函數(shù)調(diào)用pid來標(biāo)識(shí)。此外,TMIB通過引入狀態(tài)轉(zhuǎn)換路徑來檢測不可能路徑,并采取不同的轉(zhuǎn)換路徑來表示同一條路徑上的有序邊集合。因此,當(dāng)攻擊者利用TMIB中有向邊的集合信息構(gòu)建實(shí)際執(zhí)行過程中不存在的路徑時(shí),該路徑能夠被檢測出異常。
3)模仿攻擊
模仿攻擊是指攻擊者并未改變交換進(jìn)程正常執(zhí)行的函數(shù)調(diào)用序列,而是通過修改函數(shù)調(diào)用參數(shù)以達(dá)到攻擊的目的。以下給出模仿攻擊的一個(gè)實(shí)例:
fd=open(/tmp/file.tmp,...);...read(fd,...);...write(fd,...);...close(fd);
攻擊者可通過修改以上實(shí)例中函數(shù)調(diào)用open的參數(shù),而不改變函數(shù)調(diào)用的執(zhí)行順序,獲得password文件的內(nèi)容:
fd=open(/etc/passwd,...);...read(fd,...);...write(1,...);...close(fd);
對于傳統(tǒng)的有限自動(dòng)機(jī)模型及未對調(diào)用參數(shù)進(jìn)行分析的模型,由于缺乏對函數(shù)調(diào)用參數(shù)的檢測,因此并不能有效的檢測模仿攻擊。而本申請方法中TMIB的構(gòu)建采取了函數(shù)調(diào)用的控制流與數(shù)據(jù)流分析相結(jié)合的方式,從而當(dāng)上述實(shí)例中函數(shù)調(diào)用open的參數(shù)被修改后,本申請基于TMIB的可信度量方法可在交換進(jìn)程執(zhí)行過程中發(fā)現(xiàn)函數(shù)調(diào)用參數(shù)發(fā)生了變化,從而實(shí)現(xiàn)對模仿攻擊進(jìn)行有效檢出。
其中,所述控制流指的是程序執(zhí)行中所有可能的事件順序的一個(gè)抽象表示,此處控制流具體指上文中提到的進(jìn)程的函數(shù)調(diào)用樹集合所表示的可能出現(xiàn)的函數(shù)調(diào)用序列。數(shù)據(jù)流指的是程序執(zhí)行中數(shù)據(jù)的流向,此處數(shù)據(jù)流具體指調(diào)用函數(shù)的參數(shù)信息,即上文中提到的函數(shù)調(diào)用定義中包含的后兩個(gè)參數(shù)。
4)針對數(shù)據(jù)語義的攻擊
傳統(tǒng)的數(shù)據(jù)流分析技術(shù)關(guān)注點(diǎn)在于數(shù)據(jù)值本身,并未關(guān)注數(shù)據(jù)值所代表的具體語義。所述針對數(shù)據(jù)語義的攻擊是指采用相同的對象句柄值實(shí)際代表不同的系統(tǒng)對象或者不同的對象句柄值代表相同的系統(tǒng)對象。
針對此類攻擊,以下選取與模仿攻擊中類似的攻擊實(shí)例,假設(shè)初始函數(shù)調(diào)用序列如下:
fhandle=OpenFile("c:\1.pdf");ReadFile(fandle,...);WriteFile(fhandle,...);CloseHandle(fhandle)攻擊者可通過對函數(shù)WriteFile進(jìn)行劫持,使得每當(dāng)應(yīng)用程序的進(jìn)程調(diào)用函數(shù)WriteFile時(shí)則會(huì)執(zhí)行攻擊者所編寫的新的WriteFile函數(shù),例如,攻擊者可以將該函數(shù)中fhandle所代表的文件對象(“c:\1.pdf”)修改為新的文件對象(“c:\2.pdf”)。對于應(yīng)用程序而言,并未察覺出執(zhí)行過程發(fā)生了變化,并且基于控制流和傳統(tǒng)數(shù)據(jù)流的檢測方法均無法檢測此類攻擊,而由于本申請的基于TMIB的交換進(jìn)程可信度量方法中TMIB的構(gòu)建包括函數(shù)調(diào)用參數(shù)信息,因此能夠檢測此類攻擊。
通過以上對各類型攻擊的檢測分析可知,本申請方案法能夠有效檢測出對交換進(jìn)程的各類攻擊,從而較大程度地保證了交換進(jìn)程的可信性。
實(shí)施例三
本申請實(shí)施例三公開一種交換進(jìn)程可信度量系統(tǒng),參考圖3示出的交換進(jìn)程可信度量系統(tǒng)的結(jié)構(gòu)示意圖,所述系統(tǒng)包括獲取模塊100和度量模塊200。
獲取模塊100,用于獲取預(yù)先構(gòu)建的交換進(jìn)程可信度量信息基;所述可信度量信息基包括用于對交換進(jìn)程進(jìn)行可信度量的各預(yù)定度量因素所對應(yīng)的基準(zhǔn)度量信息。
度量模塊200,用于基于所述可信度量信息基,對交換進(jìn)程進(jìn)行可信度量,得到度量結(jié)果。
其中,所述度量模塊200包括靜態(tài)度量單元和動(dòng)態(tài)度量單元。
靜態(tài)度量單元,用于基于所述靜態(tài)度量信息基,利用預(yù)設(shè)的靜態(tài)度量策略對交換進(jìn)程對應(yīng)的靜態(tài)程序、動(dòng)態(tài)鏈接庫、系統(tǒng)內(nèi)核及所述靜態(tài)程序、所述動(dòng)態(tài)鏈接庫、上述系統(tǒng)內(nèi)核間的依賴關(guān)系進(jìn)行度量;
動(dòng)態(tài)度量單元,用于基于所述動(dòng)態(tài)度量信息基,對交換進(jìn)程執(zhí)行過程中的函數(shù)調(diào)用情況、進(jìn)程狀態(tài)轉(zhuǎn)換情況及系統(tǒng)資源占用情況進(jìn)行度量。
所述交換進(jìn)程可信度量系統(tǒng)包括的以上各模塊的功能實(shí)現(xiàn)需建立在預(yù)先構(gòu)建交換進(jìn)程可信度量信息基的基礎(chǔ)上,基于此,如圖4所示,所述系統(tǒng)還可以包括一預(yù)處理模塊300,用于預(yù)先基于交換進(jìn)程的多次良性執(zhí)行構(gòu)建交換進(jìn)程可信度量信息基。
所述預(yù)處理模塊300包括第一構(gòu)建單元和第二構(gòu)建單元。
第一構(gòu)建單元,用于預(yù)先從交換進(jìn)程的多次良性執(zhí)行所對應(yīng)的程序依賴圖建立交換進(jìn)程的靜態(tài)度量信息基;其中,所述程序依賴圖包括各類型頂點(diǎn)間的依賴關(guān)系圖示,所述各類型頂點(diǎn)包括表示交換進(jìn)程的第一頂點(diǎn)、表示動(dòng)態(tài)鏈接庫的第二頂點(diǎn)及表示系統(tǒng)內(nèi)核的第三頂點(diǎn);
第二構(gòu)建單元,用于預(yù)先捕獲交換進(jìn)程多次良性執(zhí)行過程中的函數(shù)調(diào)用,分析函數(shù)調(diào)用間的關(guān)系;并基于函數(shù)調(diào)用間的關(guān)系建立交換進(jìn)程的動(dòng)態(tài)度量信息基。
對于本發(fā)明實(shí)施例三公開的交換進(jìn)程可信度量系統(tǒng)而言,由于其與實(shí)施例一公開的交換進(jìn)程可信度量方法相對應(yīng),所以描述的比較簡單,相關(guān)相似之處請參見實(shí)施例一中交換進(jìn)程可信度量方法部分的說明即可,此處不再詳述。
需要說明的是,本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。
為了描述的方便,描述以上系統(tǒng)或裝置時(shí)以功能分為各種模塊或單元分別描述。當(dāng)然,在實(shí)施本申請時(shí)可以把各單元的功能在同一個(gè)或多個(gè)軟件和/或硬件中實(shí)現(xiàn)。
通過以上的實(shí)施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn)?;谶@樣的理解,本申請的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在存儲(chǔ)介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。
最后,還需要說明的是,在本文中,諸如第一、第二、第三和第四等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。