專利背景
截至2010年8月,隨著計算機技術在社會生活中各個領域的廣泛運用,
惡意程式(Malwar,malicious software,指任何故意創建用來執行未經授權並通常是有害行為的軟體程式)也如同其附屬品一樣接踵而來。由於這些惡意程式所具有的感染性、複製性及破壞性,其已成為困擾計算機使用的一個重大問題,因此,在網路威脅飆升的今天,更新病毒特徵碼成為企業及網民每天必備的工作,從每周一次到每天一次,直至時刻更新,而傳統防毒軟體是將病毒庫放在客戶端計算機,在客戶端進行檔案的分析工作,在掃描過程中會反覆在本地病毒庫中進行比對,占用大量系統資源,並且隨著病毒庫的不斷升級,病毒庫的容量越來越大,分析檔案時所耗費的時間也越來越長,讓客戶端計算機越用越慢,因此,反病毒行業必須尋找新的技術突破。
“雲安全(CloudSecurity)”計畫即是網路時代信息安全的最新體現,它融合了並行處理、格線計算、未知病毒行為判斷等新興技術概念,將“雲計算”的理念套用到了安全領域。
“雲安全”計畫的實現是與其樣本資料庫的構建息息相關的,因此,如何有效的組織並維護樣本資料庫,遂成為業界亟待解決的問題。
發明內容
專利目的
《一種基於雲的樣本資料庫動態維護方法》所要解決的技術問題在於提供一種基於雲的樣本資料庫動態維護方法,以提高資料庫維護以及程式分析的效率,幫助對程式進行黑白判別以及檔案的恢復。
技術方案
《一種基於雲的樣本資料庫動態維護方法》包括如下步驟:由客戶端計算機收集程式特徵及其對應的程式行為,並傳送至伺服器端;在伺服器端資料庫中記錄不同的程式特徵及其對應的程式行為,以及黑/白名單;結合現有已知黑/白名單中的程式特徵及其對應的程式行為,對未知程式特徵及程式行為進行分析,以更新黑/白名單。
其中,所述對未知程式特徵及其程式行為進行分析的步驟,可以包括:如果未知程式特徵與現有黑/白名單中的已知程式特徵相同,則將該未知程式特徵及其程式行為列入黑/白名單。
其中,所述對未知程式特徵及其程式行為進行分析的步驟,可以包括:如果未知程式行為與現有黑/白名單中的已知程式行為相同或近似,則將該未知程式行為及其程式特徵列入黑/白名單。
其中,所述方法可以進一步包括:在具有相同或近似行為的程式之間建立行為與特徵的關聯關係;根據所述具有相同或近似行為的程式之間的關聯關係,對未知程式特徵及程式行為進行分析,以更新黑/白名單。
其中,所述對未知程式特徵及其程式行為進行分析的步驟,可以包括:當某程式行為被列入黑/白名單時,在資料庫中將該程式行為對應的程式特徵列入黑/白名單,並將與該程式行為有關聯關係的其他程式行為和程式特徵也列入黑/白名單。
其中,所述對未知程式特徵及其程式行為進行分析的步驟,可以包括:當某程式特徵被列入黑/白名單時,在資料庫中將該程式特徵對應的程式行為列入黑/白名單,並將與該程式特徵有關聯關係的其他程式行為和程式特徵也列入黑/白名單。
其中,所述方法可以進一步包括:在資料庫中針對被列入黑名單的程式,進一步記錄該程式的逆向行為,以在確認客戶端計算機中存在或運行過該被列入黑名單的程式時,執行所述逆向行為。
其中,所述方法可以進一步包括:在資料庫中針對被列入黑名單的程式,根據該程式的行為,確定客戶端計算機被感染檔案的信息;根據被感染檔案的信息,將存儲於資料庫中的一份完好的對應檔案下載至客戶端計算機中覆蓋被感染檔案。
其中,所述方法可以進一步包括:在資料庫中進一步記錄在一預設時間內由不同客戶端計算機收集到的相同的程式特徵的數量變化;根據所述程式特徵的數量變化,對未知程式特徵及程式行為進行分析,以更新黑/白名單。
其中,所述根據程式特徵的數量變化,對未知程式特徵及程式行為進行分析的步驟,可以包括:如果在一預設時間內,由不同客戶端計算機收集到的某個未知程式特徵的數量增減超過閾值,則在資料庫中將該程式特徵及其對應的程式行為列入黑名單。
改善效果
該發明通過客戶端收集程式行為並關聯到程式特徵,從而在資料庫中記錄程式特徵及其對應的程式行為,根據收集到的程式行為和程式特徵的關聯關係,可以在資料庫中對樣本進行分析歸納,從而有助於對軟體或程式進行黑白的分類判別,還可以針對黑名單中的惡意軟體制定相應的清除或恢復措施。
附圖說明
圖1為《一種基於雲的樣本資料庫動態維護方法》的實施模式示意圖;
圖2為根據該發明實施例所述的基於雲的樣本資料庫動態維護方法流程圖;
圖3為根據該發明實施例所述的關聯關係示意圖;
圖4為根據該發明實施例所述的檔案恢複流程圖;
圖5為根據該發明實施例所述的分析流程示意圖。
權利要求
1.《一種基於雲的樣本資料庫動態維護方法》其特徵在於,包括如下步驟:由客戶端計算機收集程式特徵及其對應的程式行為,並傳送至
伺服器端;在伺服器端資料庫中記錄不同的程式特徵及其對應的程式行為,以及黑/白名單;結合現有已知黑/白名單中的程式特徵及其對應的程式行為,在具有相同或近似行為的程式之間建立行為與特徵的關聯關係,根據所述具有相同或近似行為的程式之間的關聯關係,對未知程式特徵及程式行為進行分析,以更新黑/白名單。
2.如權利要求1所述的方法,其特徵在於,所述對未知程式特徵及其程式行為進行分析的步驟,進一步包括:如果未知程式特徵與現有黑/白名單中的已知程式特徵相同,則將該未知程式特徵及其程式行為列入黑/白名單;如果未知程式行為與現有黑/白名單中的已知程式行為相同或近似,則將該未知程式行為及其程式特徵列入黑/白名單。
3.如權利要求1所述的方法,其特徵在於,所述對未知程式特徵及其程式行為進行分析的步驟,進一步包括:當某程式行為被列入黑/白名單時,在資料庫中將該程式行為對應的程式特徵列入黑/白名單,並將與該程式行為有關聯關係的其他程式行為和程式特徵也列入黑/白名單。
4.如權利要求1所述的方法,其特徵在於,所述對未知程式特徵及其程式行為進行分析的步驟,包括:當某程式特徵被列入黑/白名單時,在資料庫中將該程式特徵對應的程式行為列入黑/白名單,並將與該程式特徵有關聯關係的其他程式行為和程式特徵也列入黑/白名單。
5.如權利要求1所述的方法,其特徵在於,進一步包括:在資料庫中針對被列入黑名單的程式,進一步記錄該程式的逆向行為,以在確認客戶端計算機中存在或運行過該被列入黑名單的程式時,執行所述逆向行為。
6.如權利要求1所述的方法,其特徵在於,進一步包括:在資料庫中針對被列入黑名單的程式,根據該程式的行為,確定客戶端計算機被感染檔案的信息;根據被感染檔案的信息,將存儲於資料庫中的一份完好的對應檔案下載至客戶端計算機中覆蓋被感染檔案。
7.如權利要求1所述的方法,其特徵在於,進一步包括:在資料庫中進一步記錄在一預設時間內由不同客戶端計算機收集到的相同的程式特徵的數量變化;根據所述程式特徵的數量變化,對未知程式特徵及程式行為進行分析,以更新黑/白名單。
8.如權利要求7所述的方法,其特徵在於,所述根據程式特徵的數量變化,對未知程式特徵及程式行為進行分析的步驟,包括:如果在一預設時間內,由不同客戶端計算機收集到的某個未知程式特徵的數量增減超過閾值,則在資料庫中將該程式特徵及其對應的程式行為列入黑名單。
實施方式
雲結構就是一個大型的客戶端/伺服器(CS)架構,如圖1所示,為該發明的實施模式示意圖。該發明的核心思想在於通過大量客戶端計算機102收集各種程式的行為(可以是單一行為,也可以是一組行為的組合),特別是可疑程式的行為,並將程式行為關聯到該程式的特徵,而在伺服器端的資料庫104中則可以記錄一個程式的特徵及其對應的行為記錄。這樣,在伺服器端,即可依據程式行為或程式特徵或一組程式行為和程式特徵,在資料庫中進行歸納和分析,從而有助於對軟體或程式進行黑白的分類判別。進一步的,還可以針對黑名單中的惡意軟體制定相應的清除或恢復措施。
上述程式行為,可以是例如驅動載入行為,檔案生成行為,程式或代碼的載入行為,添加系統啟動項行為,或檔案或程式的修改行為等,或者是一系列行為的組合。
上述程式特徵可以是經由MD5(Message-Digest Algorithm5,信息-摘要算法)運算得出的MD5驗證碼,或SHA1碼,或CRC(Cyclic Redundancy Check,循環冗餘校驗)碼等可唯一標識原程式的特徵碼。
如圖2所示,為根據該發明實施例所述的基於雲的樣本資料庫動態維護方法流程圖,首先,由客戶端計算機收集程式特徵及其對應的程式行為,並傳送至伺服器端(步驟202);然後在伺服器端資料庫中記錄不同的程式特徵及其對應的程式行為,以及黑/白名單(步驟204);結合現有已知黑/白名單中的程式特徵及其對應的程式行為,對未知程式特徵及程式行為進行分析,以更新黑/白名單(步驟206)。
由於在資料庫中記錄了程式特徵及該特徵對應的行為記錄,因此可以結合已知黑/白名單對未知程式進行分析。
例如,如果未知程式特徵與現有黑/白名單中的已知程式特徵相同,則將該未知程式特徵及其程式行為都列入黑/白名單。
如果未知程式行為與現有黑/白名單中的已知程式行為相同或近似,則將該未知程式行為及其程式特徵都列入黑/白名單。
由於有些病毒通過變種或加殼等技術可以改變特徵碼,但其行為卻不會有很大改變,因此,通過程式行為記錄的對比分析,可以較為便捷的確定一些未知程式是否為惡意程式。這種對比分析有時候甚至不需要對程式的行為本身做追蹤分析,只需要簡單的與現有黑/白名單中的已知程式行為做比對即可判定未知程式的性質。
通過
資料庫中的記錄分析,可以發現,有一些程式的行為相同或近似,但程式特徵不同,這時,只要在具有相同或近似行為的程式之間建立行為與特徵的關聯關係,並根據這種關聯關係,就可以更便捷的對未知程式特徵及程式行為進行分析,以更新黑/白名單。
如圖3所示,為根據該發明實施例所述的關聯關係示意圖。假設未知程式A、B和C的特徵分別為A、B和C,其各自對應的程式行為為A1~A4,B1~B4,C1~C4。如果經過分析發現程式行為A1~A4,B1~B4,C1~C4之間實質上相同或非常近似,那么就可以在特徵A、B、C和行為A1~A4,B1~B4,C1~C4之間建立特徵與行為的關聯關係。
通過這種關聯關係,在一定條件下可以更加快捷的自擴展的對資料庫進行維護。例如,當程式B的程式行為B1~B4被確認為惡意程式行為並被列入黑名單時,可以在資料庫中自動將與該程式行為對應的程式特徵B列入黑名單,同時,根據關聯關係,可以自動將與該程式行為有關聯關係的程式行為A1~A4,C1~C4及對應的程式特徵A,特徵C也列入黑/白名單。
再例如,如果最初時程式A、B和C都屬於黑白未知的程式,而經由其他病毒查殺途徑,程式特徵B首先被確認為屬於惡意程式的特徵,則在資料庫中不僅可以自動將行為B1~B4的組合列入黑名單,還可以根據關聯關係,自動將具有相同或近似行為的特徵A和C也列入黑名單,並將程式行為A1~A4,C1~C4也列入黑名單。
該發明由於在資料庫中記錄了程式特徵對應的行為,這就使得對未知程式的行為分析提供了很大的便利。例如,如果對載入驅動的行為感興趣時,可以將全部帶有載入驅動行為的程式行為調出來綜合分析,如果現有黑名單中帶有載入驅動行為的樣板中,在載入驅動之後一般都跟隨一個特殊的檔案生成行為,那么對於未知程式中同樣帶有類似行為組合的程式行為就應列入風險提示或直接列入黑名單。
該發明可採用的分析方法不限於上述,還可以利用類似於決策樹,貝葉斯算法,神經網域計算等方法,或者使用簡單的閾值分析,都可以在該發明的資料庫基礎上得到很好的套用。
此外,還可以在資料庫中針對被列入黑名單的程式,進一步記錄該程式的逆向行為,以在確認客戶端計算機中存在或運行過該被列入黑名單的程式時,執行所述逆向行為。
例如,根據前台收集到的信息,在依據云查殺或其他如特徵碼方式查出某個程式是惡意程式後,可以根據所述記錄的逆向行為執行恢復動作。
對於一些無法通過執行逆向行為得到恢復的檔案,還可以通過替換的方式得到恢復,如圖4所示,為根據該發明實施例所述的檔案恢複流程圖,首先在資料庫中針對被列入黑名單的程式,根據該程式的行為,確定客戶端計算機被感染檔案的信息(步驟402);然後根據被感染檔案的信息,將存儲於資料庫中的一份完好的對應檔案下載至客戶端計算機中覆蓋被感染檔案(步驟404)。
對於被感染檔案的信息的獲取,可以通過檔案路徑,系統版本,相關聯到的應用程式組件等信息在資料庫中查詢確定。
另外,由於該發明利用大量客戶端計算機收集程式行為和程式特徵的方式將相關信息記錄於資料庫中,因此,還可以通過監測分析某一程式在短時期內的傳播速度來判定程式的屬性。請參考圖5,為根據該發明實施例所述的分析流程示意圖,首先在資料庫中進一步記錄在一預設時間內由不同客戶端計算機收集到的相同的程式特徵的數量變化(步驟502);然後根據所述程式特徵的數量變化,對未知程式特徵及程式行為進行分析,以更新黑/白名單(步驟504)。
例如,如果在一預設時間內,由不同客戶端計算機收集到的某個未知程式特徵的數量增減超過閾值,則在資料庫中將該程式特徵及其對應的程式行為列入黑名單。
利用這種方式,將前台採集到的程式信息傳到後台伺服器集群,如果這個程式是一個木馬程式,但它不再做任何傳播,則是一個安安靜靜的死馬,這時就可以認為這個木馬沒有威脅,但如果這個木馬又傳播到一個新的機器裡面,則利用該發明就可以很快感知到,因為這台客戶端計算機也會向伺服器報告,當100、500、1000台機器報告了,伺服器資料庫就會統計收集到的數量增長的信息,並進行分析和反饋,在一個很短的時間內該程式的增長數量超過了閾值,或者出現了很多與這個程式的行為具有相似行為的變形程式,利用該發明就可以自動的進行分析和判定,一旦判斷完成就可以加入黑名單中,並且利用該發明還可以動態的自擴展的更新資料庫黑名單,極大的提高了資料庫維護以及程式分析的效率。
榮譽表彰
2014年11月6日,《一種基於雲的樣本資料庫動態維護方法》獲得第十六屆中國專利優秀獎。