專利名稱:一種依據白名單進行惡意程序檢測的方法
技術領域:
本發明屬于網絡安全領域,具體地說,涉及一種依據白名單進行惡意程序檢測的 方法。
背景技術:
傳統的惡意程序防殺主要依賴于特征庫模式。特征庫是由廠商收集到的惡意程序 樣本的特征碼組成,而特征碼則是分析工程師從惡意程序中找到和正當軟件的不同之處, 截取一段類似于“搜索關鍵詞”的程序代碼。當查殺過程中,引擎會讀取文件并與特征庫中 的所有特征碼“關鍵詞”進行匹配,如果發現文件程序代碼被命中,就可以判定該文件程序 為惡意程序。之后又衍生出了在本地啟發式殺毒的方式,是以特定方式實現的動態高度器或反 編譯器,通過對有關指令序列的反編譯逐步理解和確定其蘊藏的真正動機。惡意程序和正 常程序的區別可以體現在許多方面,比如通常一個應用程序在最初的指令,是檢查命令行 輸入有無參數項、清屏和保存原來屏幕顯示等,而惡意程序通常最初的指令則是直接寫盤 操作、解碼指令,或搜索某路徑下的可執行程序等相關操作指令序列。這些顯著的不同之 處,一個熟練的程序員在調試狀態下只需一瞥便可一目了然。啟發式代碼掃描技術實際上 就是把這種經驗和知識移植到一個查殺病毒軟件中的具體程序體現。但是上述查殺惡意軟件的方法都是基于惡意行為和/或惡意特征,先對一個程序 判定其是否為惡意程序,然后再決定是否進行查殺或者清理。這就不可避免導致出現了如 下弊端。據統計,現今全球惡意程序數量呈幾何級增長,基于這種爆發式的增速,特征庫的 生成與更新往往是滯后的,特征庫中惡意程序的特征碼的補充跟不上層出不窮的未知惡意 程序。另外,近年來,隨著惡意程序制作者對免殺技術的應用,通過對惡意程序加殼或修 改該惡意程序的特征碼的手法越來越多的出現;以及許多木馬程序采用了更多更頻繁快速 的自動變形,這些都導致通過惡意行為和/或惡意特征對惡意程序進行判定的難度越來越 大,從而引起對惡意程序的查殺或清理的困難。
發明內容
有鑒于此,本發明所要解決的技術問題是提供了一種依據白名單進行惡意程序檢 測的方法,不依賴于本地數據庫,并且基于對合法程序的認定來反向判定惡意程序。為了解決上述技術問題,本發明公開了一種依據白名單進行惡意程序檢測的方 法,包括服務器端的數據庫建立合法程序的白名單并進行收集更新;客戶端對一程序的 程序特征和/或程序行為進行收集并發送到服務器端進行查詢,服務器端根據所述程序特 征和/或程序行為在所述白名單中進行分析比對,根據比對結果對所述程序的合法性或信 任值進行判定并反饋給所述客戶端。
進一步地,所述服務器端根據所述程序特征和/或程序行為,與所述白名單中保 存的合法程序特征和/或合法程序行為進行比對,如果命中,則判定所述程序為合法程序, 并反饋給所述客戶端;如果沒有命中,則判定所述程序為惡意程序,并反饋給所述客戶端。進一步地,所述服務器端根據程序的一組程序特征和/或一組程序行為,與所述 白名單中保存的合法程序特征和/或合法程序行為進行比對,根據命中的程度,對所述程 序賦予一信任值,并將所述信任值反饋給所述客戶端;所述客戶端預設一閾值,根據所述信 任值與所述閾值進行比對,如果所述信任值不小于所述閾值,則判定所述所述程序為合法 程序,如果所述信任值小于所述閾值,則判定所述程序為惡意程序。進一步地,如果所述一組程序特征和/或一組程序行為在所述白名單中全部命 中,則所述服務器端對所述程序賦予一最高信任值;如果所述一組程序特征和/或一組程 序行為在所述白名單中全部未命中,則所述服務器端對所述程序賦予一最低信任值。進一步地,還包括所述客戶端根據所述判定結果決定對惡意程序行為進行攔截、 終止執行該惡意程序和/或清理該惡意程序,恢復系統環境。進一步地,還包括所述客戶端根據所述判定結果并結合所述惡意程序的屬性,決 定是否對該惡意程序行為進行攔截、終止執行該惡意程序和/或清理該惡意程序。進一步地,所述屬性,包括所述惡意程序是否為自啟動程序和/或所述惡意程序 是否存在于系統目錄內。進一步地,所述服務器端的數據庫對合法程序的白名單進行收集更新的步驟,包 括周期性通過手工、利用蜘蛛或網絡爬蟲和/或用戶上傳對合法程序進行收集;通過手工 或通過工具自動甄別所述合法程序的程序特征和或程序行為并保存在所述白名單中。進一步地,所述服務器端的數據庫對合法程序的白名單進行收集更新的步驟,包 括根據現有已知白名單中的合法程序特征及其對應的程序行為,對未知程序特征及程序 行為進行分析,以更新白名單。進一步地,所述程序特征,包括程序文件內的靜態特征和/或靜態特征串。進一步地,所述對未知程序特征及其程序行為進行分析的步驟,包括如果未知程 序特征與現有白名單中的已知程序特征相同,則將該未知程序特征及其程序行為列入白名 單;如果未知程序行為與現有白名單中的已知程序行為相同或近似,則將該未知程序行為 及其程序特征列入白名單;當某程序行為被列入白名單時,在數據庫中將該程序行為對應 的程序特征列入白名單,并將與該程序行為有關聯關系的其他程序行為和程序特征也列入 白名單;和/或當某程序特征被列入白名單時,在數據庫中將該程序特征對應的程序行為 列入白名單,并將與該程序特征有關聯關系的其他程序行為和程序特征也列入白名單。進一步地,還包括在具有相同或近似行為的程序之間建立行為與特征的關聯關 系,根據所述具有相同或近似行為的程序之間的關聯關系,對未知程序特征及程序行為進 行分析,以更新白名單。與現有的方案相比,本發明所獲得的技術效果本發明通過使用白名單對合法程序進行判定,從而將不屬于白名單范疇的非合法 程序判定為惡意程序,從另一角度進行惡意程序的判定查殺;同時引入云安全架構,將所有“云安全”客戶端與“云安全”服務器實時連接,將合 法程序的判定分析放在服務器端完成;
另外,本發明還通過客戶端收集程序行為并關聯到程序特征,從而在數據庫中記 錄程序特征及其對應的程序行為,根據收集到的程序行為和程序特征的關聯關系,可以在 數據庫中對樣本進行分析歸納,從而有助于對軟件或程序進行合法判別。
圖1為本發明的實施模式示意圖;圖2本發明的依據白名單進行惡意程序檢測的方法流程圖;圖3為根據本發明實施例所述的關聯關系示意圖。
具體實施例方式以下將配合圖式及實施例來詳細說明本發明的實施方式,藉此對本發明如何應用 技術手段來解決技術問題并達成技術功效的實現過程能充分理解并據以實施。本發明的核心構思在于服務器端的數據庫建立合法程序的白名單并進行收集更 新;客戶端對一程序的程序特征和/或程序行為進行收集并發送到服務器端進行查詢,服 務器端根據所述程序特征和/或程序行為在所述白名單中進行分析比對,根據比對結果對 所述程序進行判定并反饋給所述客戶端。下面對于由大量客戶端計算機102-服務器端104構成的云安全模式下的白名單 檢測惡意程序方法進行說明。云結構就是一個大型的客戶端/服務器(CS)架構,如圖1所 示,為本發明的實施模式示意圖。參考圖2為本發明的依據白名單進行惡意程序檢測的方法流程圖,包括Si,服務器端的數據庫建立合法程序的白名單并進行收集更新;S2,客戶端對一程序的程序特征和/或程序行為進行收集并發送到服務器端進行 查詢;S3,服務器端根據所述程序特征和/或程序行為在所述白名單中進行分析比對, 根據比對結果對所述程序進行判定并反饋給所述客戶端;S4,所述客戶端根據所述判定結果決定對惡意程序行為進行攔截、終止執行該惡 意程序和/或清理該惡意程序,恢復系統環境;或者所述客戶端根據所述判定結果并結合所述惡意程序的屬性,決定是否對該惡意程 序行為進行攔截、終止執行該惡意程序和/或清理該惡意程序;所述屬性,包括所述惡意程序是否為自啟動程序和/或所述惡意程序是否存在 于系統目錄內。對于步驟S3,可以具體由以下方式實現。第一方式所述服務器端根據所述程序特征和/或程序行為,與所述白名單中保 存的合法程序特征和/或合法程序行為進行比對,如果命中,則判定所述程序為合法程序, 并反饋給所述客戶端;如果沒有命中,則判定所述程序為惡意程序,并反饋給所述客戶端。第二方式所述服務器端根據程序的一組程序特征和/或一組程序行為,與所述 白名單中保存的合法程序特征和/或合法程序行為進行比對,根據命中的程度,對所述程 序賦予一信任值,并將所述信任值反饋給所述客戶端;所述客戶端預設一閾值,根據所述信 任值與所述閾值進行比對,如果所述信任值不小于所述閾值,則判定所述所述程序為合法程序,如果所述信任值小于所述閾值,則判定所述程序為惡意程序。對于信任值的設定,如果所述一組程序特征和/或一組程序行為在所述白名單中 全部命中,則所述服務器端對所述程序賦予一最高信任值;如果所述一組程序特征和/或 一組程序行為在所述白名單中全部未命中,則所述服務器端對所述程序賦予一最低信任 值;處于上述兩命中率之間的程序按所述上述趨勢設定。對于步驟Si,所述服務器端的數據庫對合法程序的白名單進行收集更新的步驟, 可以由以下方式實現。第一方式由技術人員周期性通過手工、利用蜘蛛或網絡爬蟲和/或用戶上傳對 合法程序進行收集;通過手工或通過工具自動甄別所述合法程序的程序特征和或程序行為 并保存在所述白名單中。第二方式根據現有已知白名單中的合法程序特征及其對應的程序行為,對未知 程序特征及程序行為進行分析,以更新白名單。所述程序特征,可以是程序文件內的靜態特征,如經由MD5 (Message-Di gest Algorithm 5,信息-摘要算法)運算得出的MD5驗證碼,或SHAl碼,或CRC (Cyclic Redundancy Check,循環冗余校驗)碼等可唯一標識原程序的特征碼;也可以是程序文件 內的靜態特征串。下面對于第二方式中服務器端的數據庫白名單的構建及動態維護進行下說明。其處理思路主要是根據現有已知白名單中的程序特征及其對應的程序行為,對 未知程序特征及程序行為進行分析,以更新白名單。這種對比分析有時候不需要對程序的 行為本身做追蹤分析,只需要簡單的與現有白名單中的已知程序行為做比對即可判定未知 程序的性質。由于在數據庫中記錄了程序特征及該特征對應的行為記錄,因此可以結合已知白 名單對未知程序進行分析。例如,如果未知程序特征與現有白名單中的已知程序特征相同,則將該未知程序 特征及其程序行為都列入白名單。如果未知程序行為與現有白名單中的已知程序行為相同或近似,則將該未知程序 行為及其程序特征都列入白名單。通過數據庫中的記錄分析,我們可以發現,有一些程序的行為相同或近似,但程序 特征不同,這時,只要我們在具有相同或近似行為的程序之間建立行為與特征的關聯關系, 并根據這種關聯關系,就可以更便捷的對未知程序特征及程序行為進行分析,以更新白名如圖3所示,為根據本發明實施例所述的關聯關系示意圖。假設未知程序A、B和 C的特征分別為A、B和C,其各自對應的程序行為為Al A4,Bl B4,Cl C4。如果經過 分析發現程序行為Al A4,Bl B4,Cl C4之間實質上相同或非常近似,那么就可以在 特征A、B、C和行為Al A4,Bl B4,Cl C4之間建立特征與行為的關聯關系。通過這種關聯關系,在某些條件下可以更加快捷的自擴展的對數據庫進行維護。 例如,當程序B的程序行為Bl B4被確認為合法程序行為并被列入白名單時,可以在數據 庫中自動將與該程序行為對應的程序特征B列入白名單,同時,根據關聯關系,可以自動將 與該程序行為有關聯關系的程序行為Al A4,Cl C4及對應的程序特征A,特征C也列入白名單。再例如,如果最初時程序A、B和C都屬于黑白未知的程序,而經由其他病毒查殺途 徑,程序特征B首先被確認為屬于合法程序的特征,則在數據庫中可以自動將行為Bl B4 的組合列入白名單,還可以根據關聯關系,將具有相同或近似行為的特征A和C也列入白名 單,并將程序行為Al A4,Cl C4也列入白名單。本發明由于在數據庫中記錄了程序特征對應的行為,這就使得對未知程序的行為 分析提供了很大的便利。本發明上述分析方法不限于此,還可以利用類似于決策樹,貝葉斯 算法,神經網域計算等方法,或者使用簡單的閾值分析,都可以在本發明的數據庫基礎上得 到很好的應用。上述說明示出并描述了本發明的若干優選實施例,但如前所述,應當理解本發明 并非局限于本文所披露的形式,不應看作是對其他實施例的排除,而可用于各種其他組合、 修改和環境,并能夠在本文所述發明構想范圍內,通過上述教導或相關領域的技術或知識 進行改動。而本領域人員所進行的改動和變化不脫離本發明的精神和范圍,則都應在本發 明所附權利要求的保護范圍內。
權利要求
一種依據白名單進行惡意程序檢測的方法,其特征在于,包括服務器端的數據庫建立合法程序的白名單并進行收集更新;客戶端對一程序的程序特征和/或程序行為進行收集并發送到服務器端進行查詢,服務器端根據所述程序特征和/或程序行為在所述白名單中進行分析比對,根據比對結果對所述程序的合法性或信任值進行判定并反饋給所述客戶端。
2.如權利要求1所述的方法,其特征在于,所述服務器端根據所述程序特征和/或程 序行為,與所述白名單中保存的合法程序特征和/或合法程序行為進行比對,如果命中,則 判定所述程序為合法程序,并反饋給所述客戶端;如果沒有命中,則判定所述程序為惡意程 序,并反饋給所述客戶端。
3.如權利要求2所述的方法,其特征在于,所述服務器端根據程序的一組程序特征和 /或一組程序行為,與所述白名單中保存的合法程序特征和/或合法程序行為進行比對,根 據命中的程度,對所述程序賦予一信任值,并將所述信任值反饋給所述客戶端;所述客戶端預設一閾值,根據所述信任值與所述閾值進行比對,如果所述信任值不小 于所述閾值,則判定所述所述程序為合法程序,如果所述信任值小于所述閾值,則判定所述 程序為惡意程序。
4.如權利要求3所述的方法,其特征在于,如果所述一組程序特征和/或一組程序行為 在所述白名單中全部命中,則所述服務器端對所述程序賦予一最高信任值;如果所述一組 程序特征和/或一組程序行為在所述白名單中全部未命中,則所述服務器端對所述程序賦予一最低信任值。
5.如權利要求2或3所述的方法,其特征在于,還包括所述客戶端根據所述判定結果 決定對惡意程序行為進行攔截、終止執行該惡意程序和/或清理該惡意程序,恢復系統環^Mi ο
6.如權利要求2或3所述的方法,其特征在于,還包括所述客戶端根據所述判定結果 并結合所述惡意程序的屬性,決定是否對該惡意程序行為進行攔截、終止執行該惡意程序 和/或清理該惡意程序。
7.如權利要求6所述的方法,其特征在于,所述屬性,包括所述惡意程序是否為自啟 動程序和/或所述惡意程序是否存在于系統目錄內。
8.如權利要求7所述的方法,其特征在于,所述服務器端的數據庫對合法程序的白名 單進行收集更新的步驟,進一步包括周期性通過手工、利用蜘蛛或網絡爬蟲和/或用戶上傳對合法程序進行收集; 通過手工或通過工具自動甄別所述合法程序的程序特征和或程序行為并保存在所述 白名單中。
9.如權利要求7所述的方法,其特征在于,所述服務器端的數據庫對合法程序的白名 單進行收集更新的步驟,進一步包括根據現有已知白名單中的合法程序特征及其對應的程序行為,對未知程序特征及程序 行為進行分析,以更新白名單。
10.如權利要求8或9所述的方法,其特征在于,所述程序特征,包括程序文件內的靜 態特征和/或靜態特征串。
11.如權利要求9所述的方法,其特征在于,所述對未知程序特征及其程序行為進行分析的步驟,包括如果未知程序特征與現有白名單中的已知程序特征相同,則將該未知程序特征及其程 序行為列入白名單;如果未知程序行為與現有白名單中的已知程序行為相同或近似,則將該未知程序行為 及其程序特征列入白名單;當某程序行為被列入白名單時,在數據庫中將該程序行為對應的程序特征列入白名 單,并將與該程序行為有關聯關系的其他程序行為和程序特征也列入白名單;和/或當某程序特征被列入白名單時,在數據庫中將該程序特征對應的程序行為列入白名 單,并將與該程序特征有關聯關系的其他程序行為和程序特征也列入白名單。
12.如權利要求11所述的方法,其特征在于,進一步包括在具有相同或近似行為的程序之間建立行為與特征的關聯關系,根據所述具有相同或 近似行為的程序之間的關聯關系,對未知程序特征及程序行為進行分析,以更新白名單。
全文摘要
本發明公開了一種依據白名單進行惡意程序檢測的方法,包括服務器端的數據庫建立合法程序的白名單并進行收集更新;客戶端對一程序的程序特征和/或程序行為進行收集并發送到服務器端進行查詢,服務器端根據所述程序特征和/或程序行為在所述白名單中進行分析比對,根據比對結果對所述程序的合法性或信任值進行判定并反饋給所述客戶端。本發明通過使用白名單對合法程序進行判定,從而將不屬于白名單范疇的非合法程序判定為惡意程序,從另一角度進行惡意程序的判定查殺。
文檔編號H04L29/06GK101924761SQ20101025697
公開日2010年12月22日 申請日期2010年8月18日 優先權日2010年8月18日
發明者周鴻祎, 齊向東 申請人:奇智軟件(北京)有限公司