<listing id="vjp15"></listing><menuitem id="vjp15"></menuitem><var id="vjp15"></var><cite id="vjp15"></cite>
<var id="vjp15"></var><cite id="vjp15"><video id="vjp15"><menuitem id="vjp15"></menuitem></video></cite>
<cite id="vjp15"></cite>
<var id="vjp15"><strike id="vjp15"><listing id="vjp15"></listing></strike></var>
<var id="vjp15"><strike id="vjp15"><listing id="vjp15"></listing></strike></var>
<menuitem id="vjp15"><strike id="vjp15"></strike></menuitem>
<cite id="vjp15"></cite>
<var id="vjp15"><strike id="vjp15"></strike></var>
<var id="vjp15"></var>
<var id="vjp15"></var>
<var id="vjp15"><video id="vjp15"><thead id="vjp15"></thead></video></var>
<menuitem id="vjp15"></menuitem><cite id="vjp15"><video id="vjp15"></video></cite>
<var id="vjp15"></var><cite id="vjp15"><video id="vjp15"><thead id="vjp15"></thead></video></cite>
<var id="vjp15"></var>
<var id="vjp15"></var>
<menuitem id="vjp15"><span id="vjp15"><thead id="vjp15"></thead></span></menuitem>
<cite id="vjp15"><video id="vjp15"></video></cite>
<menuitem id="vjp15"></menuitem>

基于程序行為分析的計算機防護方法

文檔序號:6574254閱讀:313來源:國知局
專利名稱:基于程序行為分析的計算機防護方法
技術領域
本發明涉及一種計算機防護方法,尤其涉及以程序的動作行為為特征的計算機防護方法。
背景技術
現有的計算機病毒防范產品大體上可以分為兩類,一類用來是對入侵計算機的病毒程序進行隔離,例如防火墻,通過對通訊端口、協議等進行限制來防止入侵病毒程序的進入;另一類用來對可能形成入侵的病毒程序文件進行掃描,例如現有的殺毒軟件,利用入侵病毒程序的代碼特征,發現并清除該病毒程序。這兩類產品盡管能夠發現并消除某些病毒程序,但是也都具有一些無法克服的缺點,例如(一)防火墻的防止病毒程序入侵主要通過對通信端口和/或協議的監控實現,需要由用戶自己設置使用某個通信端口或協議的程序要么允許、要么不允許通過的條件,因此,1.要求用戶對系統非常熟悉,才能對防火墻進行有效設置;2.監控顆粒太大,如果所禁止的端口和/或協議是正常程序也需要使用的,或者病毒程序采用了允許正常通過的端口或協議,則可能導致誤判或直接影響網絡的正常運行。
(二)利用病毒特征碼的清楚病毒的方式將永遠滯后于病毒的發展,因為只有捕獲到病毒樣本后,才能提取到病毒的特征碼,這使得這種殺毒軟件對新出現的未知病毒入侵無法防范。

發明內容
本發明要解決的問題在于,提供一種能夠主動對程序行為進行判斷從而防止計算機被病毒程序破壞的方法。
本發明提供的基于程序行為分析的計算機防護方法,包括對計算機運行的指令或指令集進行分類,并為所述指令或指令集設置危險系數;
監控運行的程序行為,累計將要運行或已經運行的指令或指令集的危險系數,在所述系數的和大于設定的閾值時,中斷所述程序的運行。
進一步,選擇出可能危及計算機安全的指令或指令集進行分類。
所述指令或指令集為下述操作的指令或指令集文件操作;網絡操作;創建進程或線程操作;注冊表操作;窗口、托盤操作;堆棧操作;注入線程操作;攔截系統API調用以及訪問、修改和創建用戶帳號操作。
所述程序行為為下述程序戶行為調用操作系統外殼程序;修改程序文件或寫程序文件;調用FTP或TFTP;創建FTP或TFTP服務;發送郵件;瀏覽器或郵件系統自動運行其他程序;創建超過預定數量的相同線程;修改和創建用戶帳號;向系統注冊表添加啟動項;修改系統啟動文件;向其他進程注入線程;堆棧操作;應用級進程自動提升為系統級進程操作;攔截系統API調用。
進一步,將監控程序嵌入到操作系統的API函數中,實現對程序的動作行為的監控。
以及,通過被監控程序運行的指令,記錄被監控程序的動作行為。
所述方法還包括建立已知程序檔案庫,用于存儲已知程序的標識和所述已知程序的特征數據;以及,判斷被監控的程序是否是已知程序,如果是,利用已知程序檔案庫中的特征數據判斷所述被監控程序是否完好,如果完好,結束判斷,否則中止所述已知程序的執行。
所述方法還包括建立攻擊識別規則庫,用于存儲明顯破壞計算機安全的計算機指令或指令集;以及,在被監控的程序不是已知程序時,利用攻擊識別規則庫中的特指令或指令集判斷所述被監控程序是否為危險程序,如果是,中止所述已知程序的執行。
在本發明中,對計算機運行的指令或指令集進行分類,并為所述指令或指令集設置危險系數,這樣,將監控到的指令或指令集對應的危險系數累加起來,就可以判斷被監控程序的行為,進而決定是否中斷所述程序的運行。需要說明的是,本發明并沒有僅對危害計算機安全的指令或指令集設置危險系數,而是對全部的計算機指令包含的指令或指令集進行分類進行分類和設置危險系數,能夠避免多個無害指令結合后變為有害指令的情況,例如無限次的循環、對重要存儲單元的讀寫等。可見,本發明能夠主動對程序行為進行判斷從而防止計算機被病毒程序破壞。


圖1為本發明所述方法的第一實施例流程圖;圖2為本發明所述方法的第二實施例流程圖;圖3為本發明所述方法的第三實施例流程圖。
具體實施例方式
下面參照附圖,并結合最常用的微軟Windows操作系統,對本發明的實施例作詳細說明。
如圖1所示,為本發明所述方法的第一實施例流程圖。圖1所述的實施例的步驟11對計算機運行的指令或指令集進行分類,然后在步驟12為所述指令或指令集設置危險系數。本實施例中,步驟11和步驟12可以通過一個指令或指令集表實現。該表可以稱為指令系數表,僅設置兩個字段,一個指令字段,用于存儲被分類出的指令或指令集合,一個字段為系數字段,用于存儲不同指令或指令集合對應的危險系數。其中,一個不同的指令,由于帶有不同參數或者不同作用范圍的參數可能使一個具體的指令由對計算機無害變為有害,例如,當描述循環的指令的循環次數有限且合理時對計算機無害,但是當循環次數無線時,則可能由于陷入死循環而過渡消耗計算機的資源而變得有害。因此,一個指令可能由于帶有的參數不同,或者參數的范圍不同而具有不同的危險系數,一個指令由于帶有的參數不同,或者參數的范圍不同而變為不同的指令,在所述指令系數表中占有較多的行。同理,當不同的指令單獨存在時可能對計算機無害,但是當該指令與其他指令結合構成一個指令集合時卻可能變得有害。例如,一個讀存儲單元數據的指令時無害的,但是當讀取的存儲單元為存儲堆棧指針的單元,則該“讀”指令與一個數值運算指令和寫存儲單元指令結合時,就可能構成一個有害的指令集合。因此,可能要一組指令在所述指令系數表中占一行。在本發明的另一個實施例中,該指令系數表還包括一個類別字段,用于識別所述指令字段存儲的是一個單個的指令還是一個由多條指令構成的指令集合。
然后在步驟13,監控運行的程序行為,即監控將要運行或已經運行的指令或指令集,找到所述指令或指令集對應的危險系數,然后在步驟14累計將要運行或已經運行的指令或指令集的危險系數,即將所述危險系數作求和操作,然后在步驟15判斷所述求和操作的結果是否大于設定的閾值,如果大于,說明被監控的程序已經具有了足以危害計算機系統安全的行為,因此在步驟16中斷所述程序的運行;否則,說明被監控的程序具有足以危害計算機系統安全的行為,此時返回到步驟13繼續監控。
圖1所述的方法可以靜態使用也可以動態使用。所謂靜態使用,是對處于靜止狀態或非激活狀態的被監控程序進行掃描判斷,從而獲得該程序是否是病毒程序或被病毒侵害;也可以在被監控程序處于活動狀態,即運行狀態時對其進行監控,尤其是在一個指令或指令集運行之前對其進行判斷,還有可能防止實際對計算機危害結果的發生。
在本發明的另一個實施例中,步驟13的監控操作通過類別字段協助完成,即先判斷一個指令的類別,從而確定這是一個需要作單獨判斷的指令還是屬于一個指令集的指令,從而方便步驟13的操作。
在本發明的另一個實施例中,選擇出可能危及計算機安全的指令或指令集進行分類,而不是對所有指令分類,排除一些明顯不能成生對計算機危害的指令,例如空操作指令,可以提高對被監控程序的監控效率。
圖2為本發明所述方法的第二實施例流程圖;與圖1所述實施例相比,本實施例增加了建立已知程序檔案庫的步驟21,所述已知程序檔案庫用于存儲已知程序的標識和所述已知程序的特征數據;還增加了一個判斷步驟22,判斷被監控的程序是否是已知程序,如果是,利用已知程序檔案庫中的特征數據判斷所述被監控程序是否完好(步驟23),如果完好,結束判斷(步驟24),否則中止所述已知程序的執行。
圖3為本發明所述方法的第三實施例流程圖;與圖2所述實施例相比,增加了建立攻擊識別規則庫的步驟31,所述攻擊識別規則庫用于存儲明顯破壞計算機安全的計算機指令或指令集;以及,增加了在被監控的程序不是已知程序時,利用攻擊識別規則庫中的特指令或指令集判斷所述被監控程序是否為危險程序的步驟32,如果晶步驟32判斷被進空的程序是危險程序,直接經步驟16中止所述已知程序的執行。
在圖1、圖2和圖3所述的實施例中,還包括通過被監控程序運行的指令,記錄被監控程序的動作行為的步驟(圖中未繪出)。
在圖1、圖2和圖3所述的實施例中。將監控程序嵌入到操作系統的API函數中,從而獲得對系統的監控權,實現對被監控程序的動作行為的監控。
如果比較結果證明被監控程序為危險程序,不但中斷該程序的繼續運行,而且向用戶報警,或等待進一步處理。因此,采用如上所述的方法對已知程序進行檢查,不但可以保證對已知程序是否正常運行進行判斷,而且可以檢查出已知程序是否受到攻擊,并且與現有技術采用病毒特征代碼比較的方法相比,不但檢查病毒攻擊的準確性更好,而且執行效率更高。
如上所述,根據將已知程序與程序行為知識庫中記錄的合法的動作行為進行比較,如果已知程序按照前述所記錄的合法的程序行為執行,則說明所述已知程序運行正常;如果一旦出現了該已知程序合法動作行為以外的動作行為,則可以確定所述已知程序收到攻擊,應將其停止。
而且,在本發明的實施例中,根據被監控程序的不同調用系統API函數結束當前進程;或者調用系統API函數結束當前線程。
由于在已知程序中,有相當一部分程序其功能是系統的底層服務,如果直接將這些程序結束,會使系統重啟,以致系統癱瘓。因此,在本發明中對于那些不可以中斷,且已經受到攻擊的程序,直接中斷執行了非法操作的線程結束即可,即保證系統的安全,又可以不影響系統的工作,使系統穩定運行,避免了現有的病毒防火墻工具,由于對系統中的重要服務的程序病毒進行檢查時,殺滅病毒的同時,使系統中重要的程序文件造成損壞,影響系統的穩定性。例如微軟Windows操作系統中,Lsass.exe為系統服務程序,如果該程序受到病毒程序的攻擊,直接將該程序發生攻擊的線程結束,這樣,即可以保證系統安全,又能夠阻止有害程序對系統的侵害。
在對被監控程序的動作行為是否為有害動作行為進行判斷的步驟中,要將捕獲到的該程序的動作行為與攻擊識別規則庫中的攻擊識別規則進行比較,從而判斷該程序是否為有害程序所述攻擊識別規則庫為是記錄了有害程序的攻擊行為特征的數據庫,每一記錄對應一個動作集,即對計算機的破壞性行為及這些行為或動作之間特定的關聯關系。
所述指令或指令集為下述操作的指令或指令集文件操作;網絡操作;創建進程或線程操作;注冊表操作;窗口、托盤操作;堆棧操作;注入線程操作;攔截系統API調用以及訪問、修改和創建用戶帳號操作。
所述程序行為為下述程序戶行為調用操作系統外殼程序;修改程序文件或寫程序文件;調用FTP或TFTP;創建FTP或TFTP服務;發送郵件;瀏覽器或郵件系統自動運行其他程序;創建超過預定數量的相同線程;修改和創建用戶帳號;向系統注冊表添加啟動項;修改系統啟動文件;向其他進程注入線程;堆棧操作;應用級進程自動提升為系統級進程操作;攔截系統API調用。
例如,程序自行改變運行層級,如在微軟Windows操作系統中,某程序自動從應用級提升系統級執行,由于只有少數的正常程序才具有這一特征,因此,可以判斷得到很多具有這種特征分程序為病毒程序或被病毒攻擊過的程序。
本發明的實施例中,所述攻擊識別規則庫包括下述規則的任何單個或兩個以上任意的組合。
a)運行于用戶層的程序,轉入系統核心層RINGO運行;和/或;b)執行修改其他程序文件的操作;和/或;c)通過監聽端口接收數據后,立即調用操作系統的外殼程序;和/或;d)通過監聽端口接收數據后,使系統緩沖區溢出;和/或;e)通過監聽端口接收數據后,立即調用一般文件傳輸協議程序傳輸數據;和/或;f)由郵件系統自動生成,且該程序運行時修改注冊表的自啟動項,該程序無窗口、無托盤,并且立即開始發送郵件;和/或;g)由郵件系統自動生成,且該程序運行時修改注冊表的自啟動項,該程序無窗口、無托盤,并且立即開始創建監聽端口。
例如,對于一個已知程序,如果該程序行為不包括能修改其他程序文件的行為時,而當該程序運行時,卻修改了其他程序文件,上述危險動作就可以被監控到,然后與已知程序檔案庫中存儲的該已知程序的特征數據相比較,就可以判斷該已知程序一定是被病毒感染。
通過上述的說明內容,本發明領域相關工作人員完全可以在不偏離本項發明技術思想的范圍內,進行多樣的變更以及修改。因此,本項發明的技術性范圍并不局限于說明書上的內容,必須要根據權利范圍來確定其技術性范圍。以上所述僅是本發明的優選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以作出若干改進和潤飾,這些改進和潤飾也應視為本發明的保護范圍。
權利要求
1.一種基于程序行為分析的計算機防護方法,其特征在于對計算機運行的指令或指令集進行分類,并為所述指令或指令集設置危險系數;監控運行的程序行為,累計將要運行或已經運行的指令或指令集的危險系數,在所述系數的和大于設定的閾值時,中斷所述程序的運行。
2.按照權利要求1所述基于程序行為分析的計算機防護方法,其特征在于,選擇出可能危及計算機安全的指令或指令集進行分類。
3.按照權利要求2所述基于程序行為分析的計算機防護方法,其特征在于,所述指令或指令集為下述操作的指令或指令集文件操作;網絡操作;創建進程或線程操作;注冊表操作;窗口、托盤操作;堆棧操作;注入線程操作;攔截系統API調用以及訪問、修改和創建用戶帳號操作。
4.按照權利要求3所述基于程序行為分析的計算機防護方法,其特征在于,所述程序行為為下述程序戶行為調用操作系統外殼程序;修改程序文件或寫程序文件;調用FTP或TFTP;創建FTP或TFTP服務;發送郵件;瀏覽器或郵件系統自動運行其他程序;創建超過預定數量的相同線程;修改和創建用戶帳號;向系統注冊表添加啟動項;修改系統啟動文件;向其他進程注入線程;堆棧操作;應用級進程自動提升為系統級進程操作;攔截系統API調用。
5.按照權利要求1所述基于程序行為分析的計算機防護方法,其特征在于將監控程序嵌入到操作系統的API函數中,實現對程序的動作行為的監控。
6.按照權利要求5所述基于程序行為分析的計算機防護方法,其特征在于通過被監控程序運行的指令,記錄被監控程序的動作行為。
7.按照權利要求1、2、3、4、5或6所述基于程序行為分析的計算機防護方法,其特征在于還包括建立已知程序檔案庫,用于存儲已知程序的標識和所述已知程序的特征數據;以及,判斷被監控的程序是否是已知程序,如果是,利用已知程序檔案庫中的特征數據判斷所述被監控程序是否完好,如果完好,結束判斷,否則中止所述已知程序的執行。
8.按照權利要求7所述基于程序行為分析的計算機防護方法,其特征在于還包括建立攻擊識別規則庫,用于存儲明顯破壞計算機安全的計算機指令或指令集;以及,在被監控的程序不是已知程序時,利用攻擊識別規則庫中的特指令或指令集判斷所述被監控程序是否為危險程序,如果是,中止所述已知程序的執行。
9.按照權利要求8所述基于程序行為分析的計算機防護方法,其特征在于,所述攻擊識別規則庫,包括下述規則及一個以上下述的規則的任意組合a)運行于用戶層的程序,轉入系統核心層RING0運行;和/或;b)執行修改其他程序文件的操作;和/或;c)通過監聽端口接收數據后,立即調用操作系統的外殼程序;和/或;d)通過監聽端口接收數據后,使系統緩沖區溢出;和/或;e)通過監聽端口接收數據后,立即調用一般文件傳輸協議程序傳輸數據;和/或;f)由郵件系統自動生成,且該程序運行時修改注冊表的自啟動項,該程序無窗口、無托盤,并且立即開始發送郵件;和/或;g)由郵件系統自動生成,且該程序運行時修改注冊表的自啟動項,該程序無窗口、無托盤,并且立即開始創建監聽端口。
全文摘要
本發明涉及一種基于程序行為分析的計算機防護方法,該方法對計算機運行的指令或指令集進行分類,并為所述指令或指令集設置危險系數;并且以此為基礎,監控運行的程序行為,累計將要運行或已經運行的指令或指令集的危險系數,在所述系數的和大于設定的閾值時,中斷所述程序的運行。因此,本發明能夠主動對程序行為進行判斷從而防止計算機被病毒程序破壞。
文檔編號G06F21/54GK101013461SQ20071008023
公開日2007年8月8日 申請日期2007年2月14日 優先權日2007年2月14日
發明者白杰, 李薇, 魯征宇 申請人:白杰, 李薇, 魯征宇
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
韩国伦理电影