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