專利名稱:基于軟件指紋的軟件動(dòng)態(tài)可信認(rèn)證方法
技術(shù)領(lǐng)域:
本發(fā)明屬于信息系統(tǒng)安全領(lǐng)域,特別涉及一種基于軟件指紋的軟件動(dòng)態(tài)可信認(rèn)證方法。
背景技術(shù):
隨著軟件規(guī)模的不斷増大,軟件的開發(fā)、集成和演化變得越來越復(fù)雜,這導(dǎo)致軟件產(chǎn)品在推出時(shí)總會(huì)含有很多已知或未知的缺陷。這些缺陷對軟件系統(tǒng)安全的可靠運(yùn)行構(gòu)成了嚴(yán)重的威脅;另ー方面,軟件的運(yùn)行和開發(fā)環(huán)境從傳統(tǒng)的靜態(tài)封閉的狀態(tài)變成互聯(lián)網(wǎng)環(huán)境下動(dòng)態(tài)開放的狀態(tài)。越來越多的軟件漏洞和缺陷被發(fā)現(xiàn)并被惡意攻擊者頻繁利用。為了保障軟件的運(yùn)行安全,目前安全界采用了多種防護(hù)手段和技木。典型的包括數(shù)據(jù)完整性驗(yàn)證技術(shù)、特征值檢測技術(shù)、虛擬機(jī)技術(shù)、啟發(fā)式掃描技術(shù)、主動(dòng)防御技術(shù)、防火 墻技術(shù)、補(bǔ)丁自動(dòng)修補(bǔ)技術(shù)、云查殺技術(shù)等。數(shù)據(jù)完整性驗(yàn)證技術(shù)目前已經(jīng)被很多安全軟件所采用,其缺陷在于無法保障軟件運(yùn)行過程中動(dòng)態(tài)行為的可信性。特征值檢測技術(shù)在檢測已知病毒上效果良好,但卻無法檢測未知病毒,且已知病毒在經(jīng)過免殺處理之后極易繞過特征值檢測技木。啟發(fā)式掃描技術(shù)根據(jù)惡意軟件的代碼及行為特征經(jīng)驗(yàn)來判定病毒,其可檢測未知病毒,但誤報(bào)率較高,且也容易被惡意攻擊者通過巧妙設(shè)計(jì)軟件行為來繞過。虛擬機(jī)技術(shù)結(jié)合特征值檢測后可以有效對抗已知的加密型病毒,但對未知病毒依然無能為力,且虛擬機(jī)機(jī)制也容易被病毒檢測到和繞過。主動(dòng)防御技術(shù)對疑似危險(xiǎn)行為進(jìn)行了攔截,但卻沒有考慮軟件行為主體自身的行為特性,因此誤報(bào)率較高,目前的主動(dòng)防御技術(shù)也存在被繞過甚至被終結(jié)的風(fēng)險(xiǎn)。防火墻技術(shù)基于預(yù)定規(guī)則對網(wǎng)絡(luò)進(jìn)出數(shù)據(jù)進(jìn)行過濾,可有效抵擋一部分已知的入侵行為,但無法抵抗未知的攻擊,目前很多惡意軟件采用與正常軟件相似的網(wǎng)絡(luò)通信特征,從而可繞過各類防火墻。補(bǔ)丁自動(dòng)修補(bǔ)技術(shù)能夠及時(shí)地修補(bǔ)已知漏洞,保護(hù)系統(tǒng)的安全性,但是目前地下市場有大量的ODay漏洞,其對這些沒有補(bǔ)丁的漏洞無能為力。云查殺技術(shù)將病毒判定過程從原來的客戶端轉(zhuǎn)移到服務(wù)端,從一定程度上說,其提升了病毒判定的能力,但其實(shí)時(shí)判定速度則有可能不能滿足需求,另外,部分云查殺引擎需要上傳客戶計(jì)算機(jī)中的文件,也可能對用戶數(shù)據(jù)的私密性產(chǎn)生影響??梢?,現(xiàn)有的安全防護(hù)技術(shù)很難保證系統(tǒng)的可信性,尤其是系統(tǒng)的動(dòng)態(tài)行為可信性。如何提高現(xiàn)有計(jì)算機(jī)終端的安全防護(hù)能力,確保計(jì)算機(jī)系統(tǒng)的安全,已成為當(dāng)前我國信息安全保障工作中亟待解決的關(guān)鍵問題。軟件動(dòng)態(tài)行為可信技術(shù)是可信計(jì)算必須解決的一個(gè)關(guān)鍵性問題,同時(shí)也是促進(jìn)軟件安全、有效增強(qiáng)系統(tǒng)信息安全的一種有效方式。
要確保軟件動(dòng)態(tài)行為可信就要確保軟件主體的行為“總是以預(yù)期的方式,達(dá)到預(yù)期的目標(biāo)”。
發(fā)明內(nèi)容
本發(fā)明目的在于解決現(xiàn)有技術(shù)不足,提出了基于軟件指紋的軟件動(dòng)態(tài)可信認(rèn)證方法,以求在保證軟件靜態(tài)完整性的同吋,提升軟件行為的動(dòng)態(tài)可信性,從而有效保障信息系統(tǒng)的安全性。本發(fā)明提供的基于軟件指紋的動(dòng)態(tài)可信認(rèn)證方法,具體方案如下軟件指紋提取、軟件動(dòng)態(tài)行為監(jiān)控、軟件動(dòng)態(tài)行為認(rèn)證、軟件動(dòng)態(tài)行為控制。這四個(gè)步驟可以設(shè)計(jì)四個(gè)對應(yīng)的模塊來實(shí)現(xiàn)。 軟件指紋提取階段軟件指紋包括軟件的數(shù)據(jù)指紋及行為指紋。數(shù)據(jù)指紋是指,軟件的數(shù)字簽名信息、通過散列函數(shù)運(yùn)算得到的散列值或通過其他校驗(yàn)和算法計(jì)算軟件自身的校驗(yàn)值;行為指紋是指軟件的預(yù)期行為,包括控制流信息以及其數(shù)據(jù)流信息。進(jìn)行軟件數(shù)據(jù)指紋提取時(shí),根據(jù)具體的靜態(tài)指紋類別采用靜態(tài)提取方式直接對軟件自身進(jìn)行相應(yīng)的運(yùn)算來獲取,譬如,如果將MD5值作為軟件的靜態(tài)指紋,則采用MD5算法對目標(biāo)軟件的ニ進(jìn)制文件進(jìn)行計(jì)算;進(jìn)行軟件行為指紋提取時(shí),可采取靜態(tài)提取方式,也可以采取動(dòng)態(tài)提取方式,或者兩者同時(shí)結(jié)合使用。靜態(tài)提取時(shí),首先采用反匯編工具或自編程序?qū)ζ溥M(jìn)行反匯編,得到軟件的行為調(diào)用圖以及數(shù)據(jù)依賴關(guān)系,然后對獲取到的信息進(jìn)行精簡壓縮,提取其關(guān)鍵信息保存。進(jìn)行動(dòng)態(tài)提取時(shí),則在干凈的監(jiān)控環(huán)境中,盡可能全面地運(yùn)行軟件的各種功能,并捕獲到軟件的各類行為調(diào)用及數(shù)據(jù)參數(shù)信息,最終獲得軟件的動(dòng)態(tài)行為關(guān)系及數(shù)據(jù)依賴關(guān)系,然后對獲取到的信息進(jìn)行精簡壓縮,提取其關(guān)鍵信息保存。為降低軟件行為認(rèn)證的復(fù)雜性和系統(tǒng)性能影響,軟件的行為指紋可根據(jù)實(shí)際可信需求進(jìn)行針對性精簡,在精簡軟件行為特征時(shí),可以只選取那些可能影響軟件可信需求的疑似危險(xiǎn)類行為。提取到軟件的數(shù)據(jù)指紋利動(dòng)態(tài)指紋之后,可以將該指紋信息與軟件自身捆綁發(fā)布,也可以由相關(guān)網(wǎng)站直接公布軟件的對應(yīng)指紋數(shù)據(jù)。在進(jìn)行軟件行為動(dòng)態(tài)監(jiān)控時(shí),將對軟件進(jìn)程的啟動(dòng)行為、軟件行為指紋中涉及的各類行為進(jìn)行監(jiān)控,監(jiān)控手段既可以在目標(biāo)系統(tǒng)內(nèi)核層實(shí)現(xiàn)也可能在用戶層實(shí)現(xiàn)。軟件行為認(rèn)證中心對監(jiān)控到的各類軟件動(dòng)態(tài)行為進(jìn)行認(rèn)證。當(dāng)監(jiān)控到新的執(zhí)行體(如進(jìn)程)即將被啟動(dòng)時(shí),則首先對其進(jìn)行數(shù)據(jù)指紋認(rèn)證(數(shù)字簽名校驗(yàn)、或散列值校驗(yàn)、或校驗(yàn)和校驗(yàn)),認(rèn)證通過之后,則允許啟動(dòng)新進(jìn)程。當(dāng)監(jiān)控到軟件行為指紋涉及到的各類軟件行為時(shí),軟件行為認(rèn)證中心則根據(jù)軟件行為指紋來判定當(dāng)前行為(或當(dāng)前行為序列)是否符合預(yù)期,符合則放行并繼續(xù)監(jiān)控認(rèn)證后續(xù)行為,否則交由軟件動(dòng)態(tài)行為控制中心處理。對于不符合預(yù)期的軟件行為,軟件動(dòng)態(tài)行為控制中心可提示用戶并讓其進(jìn)行處理,也可以直接根據(jù)預(yù)設(shè)策略修改其行為使其符合預(yù)期,或者直接終止該軟件行為。該方法可以用于保障各類架構(gòu)和用途的智能處理系統(tǒng)的可信性,不僅限于個(gè)人計(jì)算機(jī)和各類移動(dòng)終端(如智能手機(jī)等)。
圖I為本發(fā)明給出的ー種具體實(shí)施方式
的實(shí)施流程。
具體實(shí)施例方式為便于實(shí)施,下面給出本發(fā)明所提供方法的ー種具體實(shí)施方式
(參見圖I)該實(shí)施實(shí)例的運(yùn)行環(huán)境為Windows XP操作系統(tǒng),其目的是防止惡意軟件入侵目標(biāo)系統(tǒng),保障系統(tǒng)的安全性。步驟101 :軟件數(shù)據(jù)指紋提取階段軟件指紋包括軟件的數(shù)據(jù)指紋及行為指紋。進(jìn)行軟件數(shù)據(jù)指紋提取時(shí),采用MD5算法對目標(biāo)軟件P ニ進(jìn)制文件進(jìn)行計(jì)算,并將其MD5值作為軟件的靜態(tài)指紋進(jìn)行保存,標(biāo)記 為Zl0系統(tǒng)的安全性威脅是本實(shí)施案例的最終的防護(hù)目標(biāo),因此,為了進(jìn)ー步降低軟件行為指紋的復(fù)雜度,將有可能對系統(tǒng)安全造成威脅的所有疑似危險(xiǎn)行為列入ー個(gè)集合S,集合S中包括如下幾類行為{可執(zhí)行文件創(chuàng)建并執(zhí)行,修改或増加系統(tǒng)啟動(dòng)項(xiàng),驅(qū)動(dòng)加載,遠(yuǎn)程線程注入,遠(yuǎn)程可執(zhí)行程序下載并執(zhí)行,},將集合S中的行為細(xì)化分析為更細(xì)粒度的可監(jiān)控行為(或序列),形成監(jiān)控行為集合M。步驟102 :軟件行為指紋提取階段進(jìn)行軟件行為指紋提取時(shí),首先可采取靜態(tài)提取方式,采用反匯編工具IDA或自編程序?qū)ζ溥M(jìn)行反匯編,得到軟件的行為調(diào)用圖以及數(shù)據(jù)依賴關(guān)系,然后再依據(jù)集合M中的疑似危險(xiǎn)行為進(jìn)行動(dòng)態(tài)提取,得到預(yù)期行為集合BI,在干凈的監(jiān)控環(huán)境中,盡可能全面地運(yùn)行軟件的各種功能,依據(jù)集合M中的行為捕獲到軟件的各類相關(guān)行為調(diào)用及數(shù)據(jù)參數(shù)信息,再次獲得軟件的動(dòng)態(tài)行為關(guān)系及數(shù)據(jù)依賴關(guān)系,得到預(yù)期行為集合B2,綜合靜態(tài)提取利動(dòng)態(tài)提取的結(jié)果BI與B2,然后對獲取到的信息進(jìn)行精簡壓縮,提取其關(guān)鍵信息保存。將此作為行為指紋Z2進(jìn)行保存。步驟103 :軟件指紋融合階段將Zl及Z2合并為最終的軟件P的軟件指紋信息。按照此法依次處理其他軟件個(gè)體,得到所有軟件的指紋信息。步驟104 :軟件動(dòng)態(tài)行為監(jiān)控階段在Windows下,采用SSDT Hook的方式(也可采用其他用戶態(tài)和內(nèi)核態(tài)的系統(tǒng)攔截方式)對集合M中的行為進(jìn)行攔截。當(dāng)采用SSDT Hook方式進(jìn)行攔截時(shí),應(yīng)當(dāng)將集合M中的軟件可監(jiān)控行為與SSDT中的系統(tǒng)函數(shù)進(jìn)行關(guān)系映射,從而可以在SSDT層實(shí)現(xiàn)對上層可監(jiān)控行為進(jìn)行攔截,采用其他內(nèi)核態(tài)的監(jiān)控方式同理。另外對軟件模塊啟動(dòng)行為進(jìn)行監(jiān)控,以捕獲軟件執(zhí)行和模塊加載行為。步驟105 :軟件靜態(tài)指紋認(rèn)證階段當(dāng)監(jiān)控到軟件執(zhí)行或模塊加載時(shí),首先對軟件或模塊的靜態(tài)指紋進(jìn)行校驗(yàn),具體方法是重新計(jì)算軟件的MD5值,然后將其與軟件指紋庫中的MD5值進(jìn)行比對,如果找到可匹配項(xiàng),則放行,否則提示用戶進(jìn)行拒絕或者設(shè)置為可信并重新提取指紋,或直接給予拒絕。步驟106 :軟件動(dòng)態(tài)行為指紋認(rèn)證階段
軟件開始執(zhí)行之后,自動(dòng)開始進(jìn)行軟件行為認(rèn)證,具體方法為當(dāng)捕獲到目標(biāo)軟件的目標(biāo)行為時(shí),根據(jù)目標(biāo)軟件的行為指紋集合來判定其是否符合軟件行為指紋,如果符合,則放行,繼續(xù)監(jiān)控認(rèn)證,否則交由軟件動(dòng)態(tài)行為控制模塊來處理。步驟107 :軟件動(dòng)態(tài)行為控制階段 對于不符合預(yù)期行為的軟件行為,首先對用戶給出提示,根據(jù)用戶選擇來糾正或者直接拒絕軟件行為。
權(quán)利要求
1.一種基于軟件指紋的軟件動(dòng)態(tài)行為可信認(rèn)證方法,其特征在于其包含了如下幾個(gè)步驟軟件指紋提取、軟件動(dòng)態(tài)行為監(jiān)控、軟件動(dòng)態(tài)行為認(rèn)證、軟件動(dòng)態(tài)行為控制。這四個(gè)步驟可以設(shè)計(jì)四個(gè)對應(yīng)的模塊來實(shí)現(xiàn)。
2.根據(jù)權(quán)利要求I所述的基于軟件指紋的軟件動(dòng)態(tài)行為可信認(rèn)證方法,其特征在于軟件指紋包括軟件的數(shù)據(jù)指紋及行為指紋。數(shù)據(jù)指紋是指,軟件的數(shù)字簽名信息、通過散列函數(shù)運(yùn)算得到的散列值或通過其他校驗(yàn)和算法計(jì)算的校驗(yàn)值;行為指紋是指軟件的預(yù)期行為,包括API函數(shù)控制流信息以及其數(shù)據(jù)流信息。
3.根據(jù)權(quán)利要求2所述的基于軟件指紋的軟件動(dòng)態(tài)行為可信認(rèn)證方法,其特征在于進(jìn)行軟件數(shù)據(jù)指紋提取時(shí),采用靜態(tài)提取方式提取;進(jìn)行軟件行為指紋提取時(shí),可采取靜態(tài)提取方式,也可以采取動(dòng)態(tài)提取方式,或者兩者同時(shí)結(jié)合使用。
4.根據(jù)權(quán)利要求2利3所述的基于軟件指紋的軟件動(dòng)態(tài)行為可信認(rèn)證方法,其特征在于為降低軟件行為認(rèn)證的復(fù)雜性和系統(tǒng)性能影響,軟件的行為指紋可根據(jù)實(shí)際可信需求進(jìn)行針對性精簡,在精簡軟件行為特征時(shí),可以只選取那些可能影響軟件可信需求的疑似危險(xiǎn)類行為。
5.根據(jù)權(quán)利要求I所屬的基于軟件指紋的軟件動(dòng)態(tài)行為可信認(rèn)證方法,其特征在于在進(jìn)行軟件行為動(dòng)態(tài)監(jiān)控時(shí),將對軟件進(jìn)程的啟動(dòng)行為、軟件行為指紋中涉及的各類行為進(jìn)行監(jiān)控,監(jiān)控手段既可以在目標(biāo)系統(tǒng)內(nèi)核層實(shí)現(xiàn)也可能在用戶層實(shí)現(xiàn)。
6.根據(jù)權(quán)利要求I所屬的基于軟件指紋的軟件動(dòng)態(tài)行為可信認(rèn)證方法,其特征在于軟件行為認(rèn)證中心對監(jiān)控到的各類軟件動(dòng)態(tài)行為進(jìn)行認(rèn)證。當(dāng)監(jiān)控到新的執(zhí)行體(如進(jìn)程)即將被啟動(dòng)時(shí),則首先對其進(jìn)行數(shù)據(jù)指紋認(rèn)證(數(shù)字簽名校驗(yàn)、或散列值校驗(yàn)、或校驗(yàn)和校驗(yàn)),認(rèn)證通過之后,則允許啟動(dòng)新進(jìn)程。當(dāng)監(jiān)控到軟件行為指紋涉及到的各類軟件行為時(shí),軟件行為認(rèn)證中心則根據(jù)軟件行為指紋來判定當(dāng)前行為(或當(dāng)前行為序列)是否符合預(yù)期,符合則放行,否則交由軟件動(dòng)態(tài)行為控制中心處理。
7.根據(jù)權(quán)利要求I和6所屬的基于軟件指紋的軟件動(dòng)態(tài)行為可信認(rèn)證方法,其特征在于對于不符合預(yù)期的軟件行為,軟件動(dòng)態(tài)行為控制中心可提示用戶并讓其進(jìn)行處理,也可以直接根據(jù)預(yù)設(shè)策略修改其行為使其符合預(yù)期,或者直接終止該軟件行為。
8.根據(jù)權(quán)利要求I所屬的基于軟件指紋的軟件動(dòng)態(tài)行為可信認(rèn)證方法,其特征在于該方法可以用于保障各類架構(gòu)和用途的智能處理系統(tǒng)的可信性,不僅限于個(gè)人計(jì)算機(jī)和各類移動(dòng)終端(如智能手機(jī)等)。
全文摘要
本發(fā)明提供一種基于軟件指紋的軟件動(dòng)態(tài)可信認(rèn)證方法,該方法由4個(gè)步驟組成軟件指紋提取、軟件動(dòng)態(tài)行為監(jiān)控、軟件動(dòng)態(tài)行為認(rèn)證、軟件動(dòng)態(tài)行為控制,可分別對應(yīng)4個(gè)模塊。軟件指紋提取模塊提取軟件的指紋信息,軟件指紋包括軟件數(shù)據(jù)指紋及行為指紋兩部分。軟件動(dòng)態(tài)行為監(jiān)控模塊對軟件行為指紋中所描述的關(guān)鍵行為進(jìn)行細(xì)粒度監(jiān)控。軟件動(dòng)態(tài)行為認(rèn)證模塊基于軟件指紋對監(jiān)控的軟件行為進(jìn)行動(dòng)態(tài)認(rèn)證,以判定軟件自身及其行為是否符合預(yù)期,是則繼續(xù)監(jiān)控,否則交由軟件動(dòng)態(tài)行為控制模塊處理。軟件動(dòng)態(tài)行為控制模塊以有利于保障軟件動(dòng)態(tài)可信的方式進(jìn)行處理。通過同時(shí)保障軟件的數(shù)據(jù)完整性和行為動(dòng)態(tài)可信性,可有效保障目標(biāo)系統(tǒng)的整體可信性。
文檔編號G06F21/22GK102831356SQ20111016037
公開日2012年12月19日 申請日期2011年6月14日 優(yōu)先權(quán)日2011年6月14日
發(fā)明者彭國軍, 黎曉方 申請人:武漢安珈教育科技有限公司