專利名稱:基于程序行為分析的計算機防護方法
技術領域:
本發(fā)明涉及一種計算機防護方法,與現(xiàn)有技術相比較不同的是,不采用病毒特征代碼進行比對,而是以程序的動作行為為特征,是基于程序行為分析的計算機防護方法。
背景技術:
一直以來,對計算機病毒的入侵和反入侵的斗爭都在激烈地進行著,隨著計算機越來越廣泛地使用,這種斗爭的激烈程度也上升到一個新的高度。經過長期的斗爭實踐,人們總結出許多的具體方法來防止對計算機病毒的入侵,研制出許多相應的防范產品。這些產品大體上可以分為兩類,一類是對入侵病毒進行隔離,例如防火墻,通過對通訊端口、協(xié)議等進行限制來防止入侵病毒的進入;另一類是對可能形成入侵的染病毒文件進行搜尋,例如現(xiàn)有的殺毒軟件,利用可能形成入侵染病毒文件的代碼特征,通過掃描發(fā)現(xiàn)并清除有害染病毒文件。這兩類產品雖然在反病毒入侵的斗爭中起了不少的作用,但都具有一些無法克服的缺點,它們分別是(一)防火墻雖然能夠阻斷一些非法病毒或黑客的入侵,但防火墻的監(jiān)控對象為主要端口和協(xié)議,需要由用戶自己設置要么允許通過、要么不允許通過。其主要缺陷,1.要求用戶對系統(tǒng)非常熟悉,才能對它進行有效設置;2.由于監(jiān)控顆粒太大,對于網絡應用中必須用到的端口和協(xié)議基本無法設置,如果允許通過,則可能導致病毒或黑客入侵發(fā)生;若不允許通過,則可能又直接影響網絡的正常運行。
(二)利用病毒特征碼的殺毒軟件將永遠滯后于病毒的發(fā)展,因為只有捕獲到病毒樣本后,才能提取到病毒的特征碼,這使得這種殺毒軟件對新出現(xiàn)的未知病毒入侵無法防范,用戶即使裝備了殺毒軟件,也會再次受到該病毒的攻擊傷害,只有通過升級、更新病毒數(shù)據(jù)庫才可以解決,而這種解決是滯后于病毒發(fā)生的。
發(fā)明內容
本發(fā)明正是為了解決現(xiàn)有技術的缺點而產生,解決了現(xiàn)有殺毒軟件、防火墻不能對未知病毒以及木馬進行有效的防護,并且解決了現(xiàn)有殺毒軟件、防火墻使用過于復雜的弊病。其目的在于提供一種基于程序行為分析的計算機防護方法,并能夠有效的對病毒、木馬的攻擊進行攔截,保證計算機的安全。
本發(fā)明的基于程序行為分析的計算機防護方法,其特征在于對于已知程序,監(jiān)控其動作行為,并與程序行為知識庫中記錄的所述已知程序的合法動作行為進行比較,判斷該已知程序是否受到非法攻擊;對于未知程序,監(jiān)控其動作行為,并與攻擊識別規(guī)則庫中記錄的攻擊識別規(guī)則進行比較,判斷其是否為有害程序;前述程序行為知識庫為,利用自動化工具,逐一對合法的已知程序所執(zhí)行的動作行為進行分析列表,并將所述分析列表進行存儲的數(shù)據(jù)庫;所述攻擊識別規(guī)則庫為,利用自動化工具,記錄了計算機病毒、木馬及有害程序的攻擊行為特征的數(shù)據(jù)庫,每一記錄對應一類病毒,每一類病毒對應一個動作集,該動作集包括一系列動作及其之間特定的關聯(lián)關系。
如上所述,可知前述攻擊識別規(guī)則庫中記錄的有害程序的攻擊行為特征,并非某個或某種病毒、木馬的單一的動作。根據(jù)下述動作行為分類可知,單一的動作并不是判斷有害程序的標準。因此,攻擊識別規(guī)則庫中存儲的記錄為,每一條所述記錄對應一類病毒或木馬,并且包括該類病毒或木馬的多個動作行為作為其特征,并且記錄了所述該類病毒或木馬的多個動作行為之間在時間等方面的關聯(lián)關系,從而可以準確的對有害程序做出判斷。
并且,對于各個監(jiān)控動作和危險動作設置權值,當未知程序執(zhí)行所述監(jiān)控動作或危險動作達到權值上限時,則可以向用戶報警;且該權值上限可以使用本發(fā)明所提供的經驗值,也可由用戶自定義,給用戶在使用上帶來了方便。
如上所述,進行監(jiān)控、記錄的動作行為包括監(jiān)控動作,該動作可能影響計算機安全,需要對其進行實時監(jiān)控;并且所述監(jiān)控動作,是計算機程序所執(zhí)行的常見的動作,是多數(shù)的正常程序也必須執(zhí)行的動作。
并且所述監(jiān)控動作包括文件操作;網絡操作;創(chuàng)建進程、創(chuàng)建線程;注冊表操作;窗口、托盤操作;堆棧溢出;注入線程;攔截系統(tǒng)API調用以及訪問、修改和創(chuàng)建用戶帳號。
危險動作,該動作首先是一個監(jiān)控動作,在程序運行中,該動作可能威脅計算機安全;并且所述危險動作為少數(shù)正常程序會執(zhí)行的動作,并且多數(shù)的病毒程序或木馬程序需要執(zhí)行的程序,因此執(zhí)行這樣的動作的程序具有危害性會更大,例如,程序自行改變運行層級,在微軟Windows操作系統(tǒng)中,某程序自動從應用級(RING3)提升系統(tǒng)級(RING0)執(zhí)行,只有少數(shù)的正常程序才具有這一特征,但是卻是很多具有攻擊性的病毒程序所共同具有的特征。
并且所述危險動作包括調用SHELL程序;修改程序文件或寫程序文件;調用FTP或TFTP;創(chuàng)建FTP或TFTP服務;發(fā)送郵件;瀏覽器或郵件系統(tǒng)自動運行其他程序;創(chuàng)建大量相同線程;修改和創(chuàng)建用戶帳號;危險網絡操作;向系統(tǒng)注冊表添加啟動項;修改系統(tǒng)啟動文件;向其他進程注入線程;堆棧溢出;應用級進程時自動提升為系統(tǒng)級進程操作;攔截系統(tǒng)API調用。
除前述監(jiān)控動作和危險動作以外,還包括非監(jiān)控動作,即不影響計算機安全無需進行監(jiān)控的動作。例如,修改顯示設置、對GDI資源的調用等。
本發(fā)明的基于程序行為分析的計算機防護方法中,所述自動化工具為,通過勾掛系統(tǒng)的API(Application Programming Interface應用編程接口)函數(shù)對程序的動作行為進行監(jiān)控。現(xiàn)有的操作系統(tǒng),程序執(zhí)行時通常需要進行系統(tǒng)提供的API的調用,因此,只需要通過勾掛程序的系統(tǒng)API調用,即可對程序所執(zhí)行的動作行為進行監(jiān)控。
本發(fā)明的基于程序行為分析的計算機防護方法,其特征在于,包括如下步驟6.1)程序開始運行;6.2)判斷該程序是否為已知程序;
6.3)如判斷為已知程序,則監(jiān)控、記錄該已知程序的動作行為,并與程序行為知識庫中存儲的已知程序合法的動作行為進行比較,并判斷該程序是否被攻擊;如判斷為未知程序,對該程序的動作行為是否為有害動作行為進行判斷。
并且,所述程序被判斷為已知程序后,對該已知程序是否受到攻擊進行判斷的步驟,還包括如下步驟7.1)勾掛程序系統(tǒng)API調用;7.2)監(jiān)控程序動作行為,捕獲程序所執(zhí)行的監(jiān)控動作和危險動作;7.3)將所記錄的動作行為與程序行為知識庫中存儲的已知程序合法動作行為進行比較,判斷該已知程序是否受到攻擊;7.4)如果比較結果為合法動作行為,則返回步驟7.1);如果比較結果為否,則證明該已知程序已受到攻擊,并終止該程序繼續(xù)運行,向用戶報警,或等待進一步處理。因此,采用如上所述的方法對已知程序進行檢查,不但可以保證對已知程序是否正常運行進行判斷,而且可以檢查出已知程序是否受到攻擊,并且與現(xiàn)有技術采用病毒特征代碼比較的方法相比,不但檢查病毒攻擊的準確性更好,而且執(zhí)行效率更高。
因此,根據(jù)將已知程序與程序行為知識庫中記錄的合法的動作行為進行比較,如果已知程序按照前述所記錄的合法的程序行為執(zhí)行,則說明所述已知程序運行正常;如果一旦出現(xiàn)了該已知程序合法動作行為以外的動作行為,則可以確定所述已知程序收到攻擊,應將其停止。
并且,所述步驟7.4)中還包括如下步驟
8.1)根據(jù)程序行為知識庫的定義,判斷是否結束進程;8.2)如果判斷結果為是,則調用系統(tǒng)API函數(shù)結束當前進程;如果判斷結果為否,則調用系統(tǒng)API函數(shù)結束當前線程。
由于在已知程序中,有相當一部分程序其功能是系統(tǒng)的底層服務,如果直接將這些程序結束,會使系統(tǒng)重啟,以致系統(tǒng)癱瘓。因此,在本發(fā)明中,對于程序行為知識庫中的程序進行定義,如上述步驟8.1),對于那些不可以終止,且已經受到攻擊的程序,將按照步驟8.2)所述,將執(zhí)行了非法操作的線程結束即可。如上所述,即保證系統(tǒng)的安全,又可以不影響系統(tǒng)的工作,使系統(tǒng)穩(wěn)定運行,避免了現(xiàn)有的病毒防火墻工具,由于對系統(tǒng)中的重要服務的程序病毒進行檢查時,殺滅病毒的同時,使系統(tǒng)中重要的程序文件造成損壞,影響系統(tǒng)的穩(wěn)定性。
如果,所述程序被判斷為未知程序后,對該程序的動作行為是否為有害動作行為進行判斷的步驟,包括如下步驟9.1)勾掛程序系統(tǒng)API調用;9.2)監(jiān)控程序動作行為,捕獲程序所執(zhí)行的監(jiān)控動作和危險動作;9.3)判斷該程序是否有程序來源;9.4)將捕獲到的該程序的動作行為與攻擊識別規(guī)則庫中的攻擊識別規(guī)則進行比較;9.5)判斷該程序是否為有害程序;如果判斷結果為是,則進入下一步;9.6)由用戶確認是否允許該程序繼續(xù)執(zhí)行;9.7)如果用戶確認允許該程序繼續(xù)運行,則該程序繼續(xù)運行,如果用戶確認不允許該程序繼續(xù)運行,則終止該程序繼續(xù)運行。
如上所述對于未知程序,根據(jù)前述攻擊識別規(guī)則庫,可以判斷該程序是否為有害程序,從程序行為進行分析不但省去了現(xiàn)有殺毒軟件中用戶頻繁升級病毒庫的麻煩,而且對于未知的病毒、木馬等有害程序更能起到很好的攔截效果,這是現(xiàn)有技術所不能解決的難題,并且具有更高的執(zhí)行效率。
本發(fā)明的基于程序行為分析的計算機防護方法中,如果該程序有程序來源信息,則將監(jiān)控到的該程序的動作行為記錄到程序行為知識庫中,并返回步驟9.2),繼續(xù)對該程序的動作行為進行監(jiān)控、記錄。
將該有程序來源的程序的動作行為記錄到程序行為知識庫中時,其記錄的結構與程序行為知識庫相同,并在返回步驟9.2)后,繼續(xù)捕獲該程序的監(jiān)控動作和危險動作,并繼續(xù)向程序行為知識庫中添加該程序的記錄。
前述步驟9.3)中,所述程序來源信息為包括是否為安裝程序創(chuàng)建;是否為經用戶確認過的程序。當某未知程序是由安裝程序創(chuàng)建時,該程序具有很高的可靠性,因此可以通過系統(tǒng)默認設置,認為該程序是合法程序,因此將其動作行為,添加到程序行為知識庫中,因此在保證系統(tǒng)安全的前提下,減少了系統(tǒng)的開銷。如果某未知程序其執(zhí)行的動作行為已經通過了用戶的確認,則說明用戶了解該程序的動作行為,因此將其添加到程序行為知識庫,并且將以后的動作行為也添加到程序行為知識庫中。
本發(fā)明的基于程序行為分析的計算機防護方法,所述步驟9.6)中,在用戶確認允許被判定為有害程序的無來源未知程序繼續(xù)執(zhí)行后,將該程序的所述動作行為記錄到程序行為知識庫中;并返回步驟9.2)。
用戶對未知程序的動作行為進行確認,并添加到程序行為知識庫中時,其記錄的結構與程序行為知識庫相同,并在返回步驟9.2)后,繼續(xù)捕獲該程序的監(jiān)控動作和危險動作,并繼續(xù)向程序行為知識庫中添加該程序的記錄。
如上所述,可以使程序行為知識庫得到不斷補充,當未知程序的記錄被加入到程序行為知識庫中后,該未知程序就轉變?yōu)榱艘阎绦?,再次?zhí)行該程序時,則按照已知程序的判斷方法進行判斷,從而提高了系統(tǒng)的效率。
本發(fā)明的基于程序行為分析的計算機防護方法中,所述步驟7.4)或所述步驟9.7)中,通過調用系統(tǒng)API,將受到攻擊的已知程序和具有有害動作行為的未知程序終止。所述API函數(shù)均為操作系統(tǒng)提供的固定的函數(shù)。
本發(fā)明的基于程序行為分析的計算機防護方法,其中所述步驟9.4)或所述步驟9.5)中,判斷該程序的動作行為是否為有害動作行為,通過在步驟9.4)中與攻擊識別規(guī)則庫中的攻擊識別規(guī)則進行比較,得到該監(jiān)控動作或危險動作的權值,并在步驟9.5)中將權值累加;當權值累加結果達到權值上限,則將該程序行為判斷為有害程序行為。
本發(fā)明的基于程序行為分析的計算機防護方法中,所述權值上限由本發(fā)明提供的經驗值判斷,或按照用戶自定義。
本發(fā)明的基于程序行為分析的計算機防護方法,所述被監(jiān)控的程序處于運行狀態(tài),其退出后,不再進行監(jiān)視和記錄。這樣,不但可以有效的保護系統(tǒng),而且可以減少系統(tǒng)開銷。
本發(fā)明的基于程序行為分析的計算機防護方法中,所述程序行為知識庫,其結構描述包括程序ID、程序類型、程序運行層級、寫PE文件權限、調用系統(tǒng)SHELL權限、網絡行為和注冊表操作。
其中所述程序行為知識庫中,所述程序類型為程序分類枚舉類型,分為可被緩沖區(qū)溢出攻擊的程序和普通應用程序。
其中所述網絡行為,其結構描述包括網絡連接動作類型、使用端口數(shù)量以及連接描述。
其中所述連接描述包括本地端口、本地地址、遠程端口、遠程地址以及使用協(xié)議。
其中所述注冊表操作,其結構描述包括該程序所操作的注冊表項數(shù)、每項操作的鍵值。
并且,所述程序行為知識庫,通過對本地計算機使用軟件進行檢查,添加與用戶已經使用的已知程序相對應的已知程序行為的記錄,作為本地計算機的程序行為知識庫,并按照用戶需要對用戶將要使用的已知程序進行補充。
其中,所述攻擊識別規(guī)則庫,包括病毒規(guī)則一,a)運行于用戶層RING3的程序,轉入系統(tǒng)核心層RING0運行;病毒規(guī)則二,b)該程序執(zhí)行修改其他程序文件的操作;遠程攻擊規(guī)則一,
c)該程序通過監(jiān)聽端口接受數(shù)據(jù)后,立即調用SHELL程序;遠程攻擊規(guī)則二,d)該程序通過監(jiān)聽端口接收數(shù)據(jù)后,發(fā)生緩沖區(qū)溢出;遠程攻擊規(guī)則三,e)該程序通過監(jiān)聽端口接收數(shù)據(jù)后,立即調用一般文件傳輸協(xié)議TFTP程序;郵件蠕蟲規(guī)則一,f)該程序由郵件系統(tǒng)自動生成,且該程序運行時修改注冊表的自啟動項,該程序無窗口、無托盤,并且立即開始發(fā)送郵件;可疑木馬規(guī)則一,g)該程序由郵件系統(tǒng)自動生成,且該程序運行時修改注冊表的自啟動項,該程序無窗口、無托盤,并且立即開始創(chuàng)建監(jiān)聽端口;本發(fā)明的基于程序行為分析的計算機防護方法中,所述攻擊識別規(guī)則庫,其結構描述包括可執(zhí)行PE文件的全路徑、創(chuàng)建者全路徑、創(chuàng)建者的特性、創(chuàng)建者有無窗口、與創(chuàng)建者是否同一文件、是否拷貝自身、文件有無描述、是否自啟動、誰創(chuàng)建的自啟動項、是否被創(chuàng)建者啟動、是否自己創(chuàng)建自啟動項、是否有窗口或托盤圖標、修改注冊表項鏈表和網絡動作鏈表。
其中,所述修改注冊表項鏈表的子數(shù)據(jù)結構,包括入口列表、鍵名、值名和值。
其中,所述網絡動作鏈表的子數(shù)據(jù)結構,包括類型、本地端口、本地地址、遠程端口、遠程地址和使用協(xié)議。
圖1為本發(fā)明的基于程序行為分析的計算機防護方法的流程圖;圖2為判斷未知程序的動作行為的權值計算的流程圖。
具體實施例方式
下面參照附圖,并結合最常用的微軟Windows操作系統(tǒng),將本發(fā)明的基于程序行為分析的計算機防護方法運用于該微軟Windows操作系統(tǒng)中,對本發(fā)明的實施例作詳細說明。
如圖1所示,為本發(fā)明的基于程序行為分析的計算機防護方法的流程圖。
本發(fā)明的基于程序行為分析的計算機防護方法,其特征在于對于已知程序,監(jiān)控其動作行為,并與程序行為知識庫中記錄的所述已知程序的合法動作行為進行比較,判斷該已知程序是否受到非法攻擊;對于未知程序,監(jiān)控其動作行為,并與攻擊識別規(guī)則庫中記錄的攻擊識別規(guī)則進行比較,判斷其是否為有害程序;本發(fā)明的基于程序行為分析的計算機防護方法,其特征在于,包括如下步驟6.1)程序開始運行;6.2)判斷該程序是否為已知程序;
6.3)如判斷為已知程序,則監(jiān)控、記錄該已知程序的動作行為,并與程序行為知識庫中存儲的已知程序合法的動作行為進行比較,并判斷該程序是否被攻擊;如判斷為未知程序,對該程序的動作行為是否為有害動作行為進行判斷。
并且,所述程序被判斷為已知程序后,對該已知程序是否受到攻擊進行判斷的步驟,還包括如下步驟7.1)勾掛程序系統(tǒng)API調用;7.2)監(jiān)控程序動作行為,捕獲程序所執(zhí)行的監(jiān)控動作和危險動作;7.3)將所記錄的動作行為與程序行為知識庫中存儲的已知程序合法動作行為進行比較,判斷該已知程序是否受到攻擊;7.4)如果比較結果為合法動作行為,則返回步驟7.1);如果比較結果為否,則證明該已知程序已受到攻擊,并終止該程序繼續(xù)運行,向用戶報警,或等待進一步處理。因此,采用如上所述的方法對已知程序進行檢查,不但可以保證對已知程序是否正常運行進行判斷,而且可以檢查出已知程序是否受到攻擊,并且與現(xiàn)有技術采用病毒特征代碼比較的方法相比,不但檢查病毒攻擊的準確性更好,而且執(zhí)行效率更高。
如上所述,根據(jù)將已知程序與程序行為知識庫中記錄的合法的動作行為進行比較,如果已知程序按照前述所記錄的合法的程序行為執(zhí)行,則說明所述已知程序運行正常;如果一旦出現(xiàn)了該已知程序合法動作行為以外的動作行為,則可以確定所述已知程序收到攻擊,應將其停止。
并且,所述步驟7.4)中還包括如下步驟
8.1)根據(jù)程序行為知識庫的定義,判斷是否結束進程;8.2)如果判斷結果為是,則調用系統(tǒng)API函數(shù)結束當前進程;如果判斷結果為否,則調用系統(tǒng)API函數(shù)結束當前線程。
由于在已知程序中,有相當一部分程序其功能是系統(tǒng)的底層服務,如果直接將這些程序結束,會使系統(tǒng)重啟,以致系統(tǒng)癱瘓。因此,在本發(fā)明中,對于程序行為知識庫中的程序進行定義,如上述步驟8.1),對于那些不可以終止,且已經受到攻擊的程序,將按照步驟8.2)所述,將執(zhí)行了非法操作的線程結束即可。如上所述,即保證系統(tǒng)的安全,又可以不影響系統(tǒng)的工作,使系統(tǒng)穩(wěn)定運行,避免了現(xiàn)有的病毒防火墻工具,由于對系統(tǒng)中的重要服務的程序病毒進行檢查時,殺滅病毒的同時,使系統(tǒng)中重要的程序文件造成損壞,影響系統(tǒng)的穩(wěn)定性。例如微軟Windows操作系統(tǒng)中,Lsass.exe為系統(tǒng)服務程序,如果該程序可能受到溢出攻擊,則不能將其進程結束,這樣會使系統(tǒng)重啟造成系統(tǒng)不穩(wěn)定;因此,按照本發(fā)明的方法及程序行為知識庫中對其定義,將該程序發(fā)生溢出攻擊的線程結束,這樣,即可以保證系統(tǒng)安全,又能夠組織有害程序對系統(tǒng)的侵害;又如微軟Word文字編輯軟件,也存在溢出攻擊的危險,但是由于其不是系統(tǒng)服務軟件,因此根據(jù)本發(fā)明的方法及程序行為知識庫的定義,可以將整個Word進程結束,以此保護了系統(tǒng)的安全。
如果,所述程序被判斷為未知程序后,對該程序的動作行為是否為有害動作行為進行判斷的步驟,包括如下步驟9.1)勾掛程序系統(tǒng)API調用;9.2)監(jiān)控程序動作行為,捕獲程序所執(zhí)行的監(jiān)控動作和危險動作;9.3)判斷該程序是否有程序來源;
9.4)將捕獲到的該程序的動作行為與攻擊識別規(guī)則庫中的攻擊識別規(guī)則進行比較;9.5)判斷該程序是否為有害程序;如果判斷結果為是,則進入下一步;9.6)由用戶確認是否允許該程序繼續(xù)執(zhí)行;9.7)如果用戶確認允許該程序繼續(xù)運行,則該程序繼續(xù)運行,如果用戶確認不允許該程序繼續(xù)運行,則終止該程序繼續(xù)運行。
本發(fā)明的基于程序行為分析的計算機防護方法中,如果該程序有程序來源信息,則將監(jiān)控到的該程序的動作行為記錄到程序行為知識庫中,并返回步驟9.2),繼續(xù)對該程序的動作行為進行監(jiān)控、記錄。
將該有程序來源的程序的動作行為記錄到程序行為知識庫中時,其記錄的結構與程序行為知識庫相同,并在返回步驟9.2)后,繼續(xù)捕獲該程序的監(jiān)控動作和危險動作,并繼續(xù)向程序行為知識庫中添加該程序的記錄。如上所述,可以使程序行為知識庫得到不斷補充,當未知程序的記錄被加入到程序行為知識庫中后,該未知程序就轉變?yōu)榱艘阎绦?,再次?zhí)行該程序時,則按照已知程序的判斷方法進行判斷,從而提高了系統(tǒng)的效率。
并且,如圖2所示,為判斷未知程序的動作行為的權值計算的流程圖。
本發(fā)明的基于程序行為分析的計算機防護方法,其中所述步驟9.4)或所述步驟9.5)中,判斷該程序的動作行為是否為有害動作行為,通過在步驟9.4)中與攻擊識別規(guī)則庫中的攻擊識別規(guī)則進行比較,得到該監(jiān)控動作或危險動作的權值,并在步驟9.5)中將權值累加;當權值累加結果達到權值上限,則將該程序行為判斷為有害程序行為。其中,所述權值上限由本發(fā)明提供的經驗值判斷,或按照用戶自定義。
本發(fā)明的基于程序行為分析的計算機防護方法,其中,前述程序行為知識庫為,利用自動化工具,逐一對合法的已知程序所執(zhí)行的動作行為進行分析列表,并將所述分析列表進行存儲的數(shù)據(jù)庫;所述攻擊識別規(guī)則庫為,利用自動化工具,記錄了計算機病毒、木馬及有害程序的攻擊行為特征的數(shù)據(jù)庫,每一記錄對應一類病毒,每一類病毒對應一個動作集,該動作集包括一系列動作及其之間特定的關聯(lián)關系。
如上所述,可知前述攻擊識別規(guī)則庫中記錄的有害程序的攻擊行為特征,并非某個或某種病毒、木馬的單一的動作。根據(jù)下述動作行為分類可知,單一的動作并不是判斷有害程序的標準。因此,攻擊識別規(guī)則庫中存儲的記錄為,每一條所述記錄對應一類病毒或木馬,并且包括該類病毒或木馬的多個動作行為作為其特征,并且記錄了所述該類病毒或木馬的多個動作行為之間在時間等方面的關聯(lián)關系,從而可以準確的對有害程序做出判斷。
并且如上所述,對于各個監(jiān)控動作和危險動作設置權值,當未知程序執(zhí)行所述監(jiān)控動作或危險動作達到權值上限時,則可以向用戶報警;且該權值上限可以使用本發(fā)明所提供的經驗值,也可由用戶自定義,給用戶在使用上帶來了方便。
如上所述,進行監(jiān)控、記錄的動作行為包括
監(jiān)控動作,該動作可能影響計算機安全,需要對其進行實時監(jiān)控;并且所述監(jiān)控動作,是計算機程序所執(zhí)行的常見的動作,是多數(shù)的正常程序也必須執(zhí)行的動作。
并且所述監(jiān)控動作包括文件操作;網絡操作;創(chuàng)建進程、創(chuàng)建線程;注冊表操作;窗口、托盤操作;堆棧溢出;注入線程;攔截系統(tǒng)API調用以及訪問、修改和創(chuàng)建用戶帳號。
危險動作,該動作首先是一個監(jiān)控動作,在程序運行中,該動作可能威脅計算機安全;并且所述危險動作為少數(shù)正常程序會執(zhí)行的動作,并且多數(shù)的病毒程序或木馬程序需要執(zhí)行的程序,因此執(zhí)行這樣的動作的程序具有危害性會更大,例如,程序自行改變運行層級,在微軟Windows操作系統(tǒng)中,某程序自動從應用級(RING3)提升系統(tǒng)級(RING0)執(zhí)行,只有少數(shù)的正常程序才具有這一特征,但是卻是很多具有攻擊性的病毒程序所共同具有的特征。
并且所述危險動作包括調用SHELL程序;修改程序文件或寫程序文件;調用FTP或TFTP;創(chuàng)建FTP或TFTP服務;發(fā)送郵件;瀏覽器或郵件系統(tǒng)自動運行其他程序;創(chuàng)建大量相同線程;修改和創(chuàng)建用戶帳號;危險網絡操作;向系統(tǒng)注冊表添加啟動項;修改系統(tǒng)啟動文件;向其他進程注入線程;堆棧溢出;應用級進程時自動提升為系統(tǒng)級進程操作;攔截系統(tǒng)API調用。
除前述監(jiān)控動作和危險動作以外,還包括非監(jiān)控動作,即不影響計算機安全無需進行監(jiān)控的動作。例如,修改顯示設置,對GDI資源的調用等。這些動作不會對系統(tǒng)造成不良影響,因此為了節(jié)省系統(tǒng)開銷,并不對這些動作行為進行監(jiān)控。
本發(fā)明的基于程序行為分析的計算機防護方法中,所述自動化工具為,通過勾掛系統(tǒng)的API(Application Programming Interface應用編程接口)函數(shù)對程序的動作行為進行監(jiān)控。現(xiàn)有的操作系統(tǒng),程序執(zhí)行時通常需要進行系統(tǒng)提供的API的調用,因此,只需要通過勾掛程序的系統(tǒng)API調用,即可對程序所執(zhí)行的動作行為進行監(jiān)控。
如上所述對于未知程序,根據(jù)前述攻擊識別規(guī)則庫,可以判斷該程序是否為有害程序,從程序行為進行分析不但省去了現(xiàn)有殺毒軟件中用戶頻繁升級病毒庫的麻煩,而且對于未知的病毒、木馬等有害程序更能起到很好的攔截效果,這是現(xiàn)有技術所不能解決的難題,并且具有更高的執(zhí)行效率。
并且,前述步驟9.3)中,所述程序來源信息為包括是否為安裝程序創(chuàng)建,是否為經用戶確認過的程序。如圖1所示,當某未知程序是由安裝程序創(chuàng)建時,該程序具有很高的可靠性,因此可以通過系統(tǒng)默認設置,認為該程序是合法程序,因此將其動作行為,添加到程序行為知識庫中,因此在保證系統(tǒng)安全的前提下,減少了系統(tǒng)的開銷。如果某未知程序其執(zhí)行的動作行為已經通過了用戶的確認,則說明用戶了解該程序的動作行為,因此將其添加到程序行為知識庫,并且將以后的動作行為也添加到程序行為知識庫中。
本發(fā)明的基于程序行為分析的計算機防護方法中,所述步驟7.4)或所述步驟9.7)中,通過調用系統(tǒng)API,將受到攻擊的已知程序和具有有害動作行為的未知程序終止。所述API函數(shù)均為操作系統(tǒng)提供的固定的函數(shù)。
本發(fā)明的基于程序行為分析的計算機防護方法,所述被監(jiān)控的程序處于運行狀態(tài),其退出后,不再進行監(jiān)視和記錄。這樣,不但可以有效的保護系統(tǒng),而且可以減少系統(tǒng)開銷。
本發(fā)明的基于程序行為分析的計算機防護方法中,所述程序行為知識庫,其結構描述包括程序ID、程序類型、程序運行層級、寫PE文件權限、調用系統(tǒng)SHELL權限、網絡行為和注冊表操作。
所述程序行為知識庫結構實體描述如下struct Know{DWORD type1;BOOL bAllowedWriteFile;BOOL bCreateShell;DWORD NetOffset;DWORD RegOffset;};其中type1為程序分類枚舉類型,目前暫時分為可被緩沖區(qū)溢出攻擊的程序和普通應用程序兩類,描述如下,enum KnowType{OVERFLOW,NORMAL};bAllowedWriteFile,表示該程序是否可以寫可執(zhí)行PE文件。
bCreateShell,表示該程序是否可以調用系統(tǒng)shell。
NetOffset,表示在知識庫文件中偏移多少的位置為對該程序網絡行為的描述。
RegOffset,表示在知識庫文件中偏移多少的位置為對該程序注冊表操作行為的描述。
在程序行為知識庫中使用以下分結構描述該程序的網絡動作行為的結構實體描述為struct Net{short type2;int num;ListenPort port[];};其中,Type2,用來描述網絡連接的動作類型,分為兩類,監(jiān)聽和連接,使用如下枚舉量描述,enum NetType{Listen,Connect};num,為涉及到的端口數(shù)量;ListenPort,針對每一個連接的具體描述,使用如下結構表示,struct ListenPort{short lport;IPADDR lipaddr;short dport;IPADDR dipaddr;short protocol;};lport使用的本地端口;lipaddr使用的本地地址;dport所連接的遠程端口;dipaddr所連接的遠程地址;
protocol所使用的協(xié)議,使用TCP/IP協(xié)議定義。
在程序行為知識庫中使用以下分結構描述該程序的注冊表操作動作行為的結構實體描述為struct Reg{int num;char*fullregname[];};num,表示該程序所操作的注冊表項數(shù)。
fullregname,每一項操作的鍵值。
并且,所述程序行為知識庫,通過對本地計算機使用軟件進行檢查,添加與用戶已經使用的已知程序相對應的已知程序行為的記錄,作為本地計算機的程序行為知識庫,并按照用戶需要對用戶將要使用的已知程序進行補充。
本發(fā)明的基于程序行為分析的計算機防護方法中,所述攻擊識別規(guī)則庫,其結構描述包括可執(zhí)行PE文件的全路徑、創(chuàng)建者全路徑、創(chuàng)建者的特性、創(chuàng)建者有無窗口、與創(chuàng)建者是否同一文件、是否拷貝自身、文件有無描述、是否自啟動、誰創(chuàng)建的自啟動項、是否被創(chuàng)建者啟動、是否自己創(chuàng)建自啟動項、是否有窗口或托盤圖標、修改注冊表項鏈表和網絡動作鏈表。
本發(fā)明的區(qū)分有害程序行為的方法中,所述攻擊識別規(guī)則庫,其中,每一記錄的數(shù)據(jù)結構實體為struct UnknowPEFileInMem{
Char WeighofDanger;//危險權值Char FileName[MAX_PATH];//新創(chuàng)建的PE文件的全路徑Char CreatorName[MAX_PATH];//創(chuàng)建者的全路徑Char CharacterOfCreator;//創(chuàng)建者的特性Char NoWindowOfCreator;//創(chuàng)建者有無窗口Char SameAsCreator;//與創(chuàng)建者是同一個文件Char CopySelf;//拷貝自身,對于創(chuàng)建者是CopySelf,對于被復制的文件是SameAsCreator,//以次來區(qū)分兩者Char FileDescription;//文件有無描述Char AutoRun;//是否自啟動Char WhoWriteAutoRun;//誰創(chuàng)建的自啟動項BOOLEAN RunByCreator;//是否被創(chuàng)建者啟動BOOLEAN RunBySelf;//是否自己創(chuàng)建啟動項BOOLEAN bCreateWindow;//是否有窗口或托盤圖標LIST_ENTRY RegList;//修改注冊表項鏈表LIST_NET ListNetAction;//網絡動作鏈表}上述創(chuàng)建者的特性“CharacterOfCreator”的具體數(shù)據(jù)記錄及描述是-1未知程序;0其它已知程序;1郵件系統(tǒng);2網絡瀏覽器;3網絡交流系統(tǒng)(如QQ、MSN等);
上述誰創(chuàng)建的自啟動項“WhoWriteAutoRun”的具體數(shù)據(jù)記錄及描述是0未知;1自己;2創(chuàng)建者;3.自己,創(chuàng)建者都會寫其中修改注冊表項鏈表的子數(shù)據(jù)結構實體為。
struct REG_DATA{LIST_ENTRY List;//入口列表char Key[];//鍵名char ValueName[];//值名char Value[];//值}其中網絡動作鏈表的子數(shù)據(jù)結構實體為struct LIST_NET{int type;//類型short lport;//本地端口IPADDR lipaddr;//本地IP地址short dport;//遠程端口IPADDR dipaddr;//遠程IP地址short protocol;//使用協(xié)議};
按照如上所述攻擊識別規(guī)則庫,其中包括病毒規(guī)則一,a)運行于用戶層RING3的程序,轉入系統(tǒng)核心層RING0運行;病毒規(guī)則二,b)該程序執(zhí)行修改其他程序文件的操作;遠程攻擊規(guī)則一,c)該程序通過監(jiān)聽端口接受數(shù)據(jù)后,立即調用SHELL程序;遠程攻擊規(guī)則二,d)該程序通過監(jiān)聽端口接收數(shù)據(jù)后,發(fā)生緩沖區(qū)溢出;遠程攻擊規(guī)則三,e)該程序通過監(jiān)聽端口接收數(shù)據(jù)后,立即調用一般文件傳輸協(xié)議TFTP程序;郵件蠕蟲規(guī)則一,f)該程序由郵件系統(tǒng)自動生成,且該程序運行時修改注冊表的自啟動項,該程序無窗口、無托盤,并且立即開始發(fā)送郵件;可疑木馬規(guī)則一,g)該程序由郵件系統(tǒng)自動生成,且該程序運行時修改注冊表的自啟動項,該程序無窗口、無托盤,并且立即開始創(chuàng)建監(jiān)聽端口;下面以病毒攻擊為例,對本發(fā)明的實施例作詳細說明。
對于一個已知程序,如果程序行為描述為不能修改程序文件,當該程序運行時,卻修改了其他程序文件,上述危險動作被系統(tǒng)監(jiān)控,然后與程序行為知識庫中存儲的該已知程序的合法動作行為相比較,產生不同的動作,因此可以判斷該已知程序一定是被病毒感染。利用這一方法可以發(fā)現(xiàn)CIH等病毒,對于被CIH等病毒感染的已知程序運行時,該已知程序就會試圖感染其他PE文件,因此可以在對病毒并不了解的情況下,將其阻止,從而避免了由于病毒代碼更新的滯后性而使新生的病毒有機可乘。
下面利用攔截震蕩波病毒,對本發(fā)明的實施例作以說明震蕩波蠕蟲病毒與其他蠕蟲病毒不同,并不發(fā)送郵件,其工作原理為,在本地開辟后門。監(jiān)聽TCP 5554端口,做為FTP服務器等待遠程控制命令。病毒以FTP的形式提供文件傳送。黑客可以通過這個端口偷竊用戶機器的文件和其他信息。病毒開辟128個掃描線程,以本地IP地址為基礎,取隨機IP地址,瘋狂的試探連接445端口,試圖利用windows操作系統(tǒng)中的LSASS中存在一個緩沖區(qū)溢出漏洞進行攻擊,一旦攻擊成功會導致對方機器感染此病毒并進行下一輪的傳播。
當感染了震蕩波病毒的的計算機發(fā)出攻擊包至使用了本發(fā)明的防護系統(tǒng)時,本地計算機的LSASS進程溢出,溢出代碼會調用GetProcAddress,就會被本發(fā)明的監(jiān)控機制捕獲,判斷為緩沖區(qū)溢出,而且在溢出前,LSASS進程會從系統(tǒng)的139,445端口接收數(shù)據(jù),這與上述d)規(guī)則所提供的規(guī)則相符;因此本發(fā)明可以準確判斷出該遠程攻擊,于是系統(tǒng)調用ExitThread,將這個線程結束,從而使震蕩波蠕蟲無法進入下一步的動作,有效保護了本地計算機。
下面再利用截獲著名的反彈行木馬黑洞對本發(fā)明的實施例作以說明由于其屬于未知程序,該進程啟動即被本發(fā)明的監(jiān)控系統(tǒng)捕獲,同時該程序沒有創(chuàng)建應用程序窗口及系統(tǒng)托盤區(qū)圖標;并且該程序啟動后會修改注冊表啟動項,以保證自己可以在下次用戶登錄時自動啟動,此動作行為也是危險動作,因此也被本發(fā)明的監(jiān)控系統(tǒng)捕獲,該進程繼續(xù)執(zhí)行將會連接遠端web服務器以獲得客戶端服務的地址、端口信息,以便與其建立連接進行信息傳輸,此連網動作被捕獲后,將上述動作一同與攻擊識別規(guī)則庫中的規(guī)則比較,符合攻擊識別規(guī)則庫中的規(guī)則g),便可判斷為可疑木馬,并向用戶報警,同時說明該非法程序的屬性為可疑木馬,,以便用戶更準確的了解信息,避免了現(xiàn)有防火墻系統(tǒng)只要發(fā)生網絡動作便報警,而且需要用戶對報警動作安全性做出判斷,避免了計算機知識較少的用戶在使用防護系統(tǒng)時產生麻煩。
通過上述的說明內容,本發(fā)明領域相關工作人員完全可以在不偏離本項發(fā)明技術思想的范圍內,進行多樣的變更以及修改。因此,本項發(fā)明的技術性范圍并不局限于說明書上的內容,必須要根據(jù)權利范圍來確定其技術性范圍。
權利要求
1.一種基于程序行為分析的計算機防護方法,其特征在于對于已知程序,監(jiān)控其動作行為,并與程序行為知識庫中記錄的該已知程序的合法動作行為進行比較,判斷該已知程序是否受到非法攻擊;對于未知程序,監(jiān)控其動作行為,并與攻擊識別規(guī)則庫中記錄的攻擊識別規(guī)則進行比較,判斷其是否為有害程序;所述程序行為知識庫為,利用自動化工具,逐一對合法的已知程序所執(zhí)行的動作行為進行分析列表,并將所述分析列表進行存儲的數(shù)據(jù)庫;所述攻擊識別規(guī)則庫為,利用自動化工具,記錄了計算機病毒、木馬及有害程序的攻擊行為特征的數(shù)據(jù)庫,每一記錄對應一類病毒,每一類病毒對應一個動作集,該動作集包括一系列動作及其之間的關聯(lián)關系。
2.按照權利要求1所述基于程序行為分析的計算機防護方法,其特征在于,所述進行監(jiān)控、記錄動作行為包括監(jiān)控動作,該動作可能影響計算機安全、需要對其進行實時監(jiān)控;危險動作,該動作首先是一個監(jiān)控動作,在程序運行中,該動作可能威脅計算機安全;此外,還包括非監(jiān)控動作,即不影響計算機安全無需進行監(jiān)控的動作。
3.按照權利要求2所述基于程序行為分析的計算機防護方法,其特征在于,所述監(jiān)控動作,包括文件操作;網絡操作;創(chuàng)建進程、創(chuàng)建線程;注冊表操作;窗口、托盤操作;堆棧溢出;注入線程;攔截系統(tǒng)API調用以及訪問、修改和創(chuàng)建用戶帳號。
4.按照權利要求2所述基于程序行為分析的計算機防護方法,其特征在于,所述危險動作包括調用SHELL程序;修改程序文件或寫程序文件;調用FTP或TFTP;創(chuàng)建FTP或TFTP服務;發(fā)送郵件;瀏覽器或郵件系統(tǒng)自動運行其他程序;創(chuàng)建大量相同線程;修改和創(chuàng)建用戶帳號;危險網絡操作;向系統(tǒng)注冊表添加啟動項;修改系統(tǒng)啟動文件;向其他進程注入線程;堆棧溢出;應用級進程自動提升為系統(tǒng)級進程操作;攔截系統(tǒng)API調用。
5.按照權利要求1所述基于程序行為分析的計算機防護方法,其特征在于所述自動化工具為,通過勾掛系統(tǒng)的API函數(shù)對程序的動作行為進行監(jiān)控。
6.按照權利要求1所述基于程序行為分析的計算機防護方法,其特征在于,包括如下步驟6.1)程序開始運行;6.2)判斷該程序是否為已知程序;6.3)如判斷為已知程序,則監(jiān)控、記錄該已知程序的動作行為,并與程序行為知識庫中存儲的已知程序合法的動作行為進行比較,并判斷該程序是否被攻擊;如判斷為未知程序,對該程序的動作行為是否為有害動作行為進行判斷。
7.按照權利要求1或6所述基于程序行為分析的計算機防護方法,其特征在于,所述程序被判斷為已知程序后,對該已知程序是否受到攻擊進行判斷的步驟,還包括如下步驟7.1)勾掛程序系統(tǒng)API調用;7.2)監(jiān)控程序動作行為,捕獲程序所執(zhí)行的監(jiān)控動作和危險動作;7.3)將所記錄的動作行為與程序行為知識庫中存儲的已知程序合法動作行為進行比較,判斷該已知程序是否受到攻擊;7.4)如果比較結果為合法動作行為,則返回步驟7.1);如果比較結果為否,則證明該已知程序已受到攻擊,并終止該程序繼續(xù)運行,向用戶報警,或等待進一步處理。
8.按照權利要求7所述基于程序行為分析的計算機防護方法,其特征在于,所述步驟7.4)中還包括如下步驟8.1)根據(jù)程序行為知識庫的定義,判斷是否結束進程;8.2)如果判斷結果為是,則調用系統(tǒng)API函數(shù)結束當前進程;如果判斷結果為否,則調用系統(tǒng)API函數(shù)結束當前線程。
9.按照權利要求1或6所述基于程序行為分析的計算機防護方法,其特征在于,所述程序被判斷為未知程序后,對該程序的動作行為是否為有害動作行為進行判斷的步驟,包括如下步驟9.1)勾掛程序系統(tǒng)API調用;9.2)監(jiān)控程序動作行為,捕獲程序所執(zhí)行的監(jiān)控動作和危險動作;9.3)判斷該程序是否有程序來源;9.4)將捕獲到的該程序的動作行為與攻擊識別規(guī)則庫中的攻擊識別規(guī)則進行比較;9.5)判斷該程序是否為有害程序;如果判斷結果為是,則進入下一步;9.6)由用戶確認是否允許該程序繼續(xù)執(zhí)行;9.7)如果用戶確認允許該程序繼續(xù)運行,則該程序繼續(xù)運行,如果用戶確認不允許該程序繼續(xù)運行,則終止該程序繼續(xù)運行。
10.按照權利要求9所述基于程序行為分析的計算機防護方法,其特征在于所述步驟9.3)中,如果該程序有程序來源信息,則將監(jiān)控到的該程序的動作行為記錄到程序行為知識庫中,并返回步驟9.2)。
11.按照權利要求10所述基于程序行為分析的計算機防護方法,其特征在于將該有程序來源的程序的動作行為記錄到程序行為知識庫中時,其記錄的結構與程序行為知識庫相同,并在返回步驟9.2)后,繼續(xù)捕獲該程序的監(jiān)控動作和危險動作,并繼續(xù)向程序行為知識庫中添加該程序的記錄。
12.按照權利要求9所述基于程序行為分析的計算機防護方法,其特征在于,所述步驟9.3)中,所述程序來源信息包括是否為安裝程序創(chuàng)建;是否為經用戶確認過的程序。
13.按照權利要求9所述基于程序行為分析的計算機防護方法,其特征在于所述步驟9.6)中,在用戶確認允許被判為有害程序的無來源未知程序繼續(xù)執(zhí)行后,將該程序的所述動作行為記錄到程序行為知識庫中;并返回步驟9.2)。
14.按照權利要求13所述基于程序行為分析的計算機防護方法,其特征在于用戶對未知程序的動作行為進行確認,并添加到程序行為知識庫中時,其記錄的結構與程序行為知識庫相同,并在返回步驟9.2)后,繼續(xù)捕獲該程序的監(jiān)控動作和危險動作,并繼續(xù)向程序行為知識庫中添加該程序的記錄。
15.按照權利要求7至11、13或14中的任意一項所述基于程序行為分析的計算機防護方法,其特征在于已記錄到程序行為知識庫的有程序來源的未知程序和經過用戶對其動作行為進行確認的未知程序,當再次運行該程序時,將按照已知程序的判斷方法對其進行判斷。
16.按照權利要求1、7或9中的任意一項所述基于程序行為分析的計算機防護方法,其特征在于所述步驟7.4)或所述步驟9.7)中,通過調用系統(tǒng)API,將受到攻擊的已知程序和具有有害動作行為的未知程序終止。
17.按照權利要求9所述基于程序行為分析的計算機防護方法,其特征在于所述步驟9.4)或所述步驟9.5)中,判斷該程序的動作行為是否為有害動作行為,通過在步驟9.4)中捕獲的該未知程序的動作行為與攻擊識別規(guī)則庫中的攻擊識別規(guī)則進行比較,得到該監(jiān)控動作或危險動作的權值;在步驟9.5)中將權值累加;當權值累加結果達到權值上限,則將該程序行為判斷為有害程序行為。
18.按照權利要求17所述基于程序行為分析的計算機防護方法,其特征在于所述權值上限由本發(fā)明提供的經驗值判斷,或按照用戶自定義。
19.按照權利要求6至9中任意一項所述基于程序行為分析的計算機防護方法,其特征在于所述被監(jiān)控的程序處于運行狀態(tài),其退出后,不再進行監(jiān)視和記錄。
20.按照權利要求1所述基于程序行為分析的計算機防護方法,其特征在于,所述程序行為知識庫,其結構描述包括程序ID、程序類型、程序運行層級、寫PE文件權限、調用系統(tǒng)SHELL權限、網絡行為和注冊表操作。
21.按照權利要求20所述基于程序行為分析的計算機防護方法,其特征在于所述程序行為知識庫中,所述程序類型為程序分類枚舉類型,分為可被緩沖區(qū)溢出攻擊的程序和普通應用程序。
22.按照權利要求20所述基于程序行為分析的計算機防護方法,其特征在于,所述網絡行為,其結構描述包括網絡連接動作類型、使用端口數(shù)量以及連接描述。
23.按照權利要求22所述基于程序行為分析的計算機防護方法,其特征在于,所述連接描述包括本地端口、本地地址、遠程端口、遠程地址以及使用協(xié)議。
24.按照權利要求20所述基于程序行為分析的計算機防護方法,其特征在于,所述注冊表操作,其結構描述包括該程序所操作的注冊表項數(shù)、每項操作的鍵值。
25.按照權利要求1或20所述基于程序行為分析的計算機防護方法,其特征在于所述程序行為知識庫,通過對本地計算機使用軟件進行檢查,添加與用戶已經使用的已知程序相對應的已知程序行為的記錄,作為本地計算機的程序行為知識庫,并按照用戶需要對用戶將要使用的已知程序進行補充。
26.按照權利要求1所述基于程序行為分析的計算機防護方法,其特征在于,所述攻擊識別規(guī)則庫中,所述關聯(lián)關系包括前后動作之間的時間關系及調用和被調用關系。
27.按照權利要求26所述基于程序行為分析的計算機防護方法,其特征在于,所述攻擊識別規(guī)則庫,包括病毒規(guī)則一a)運行于用戶層RING3的程序,轉入系統(tǒng)核心層RING0運行。
28.按照權利要求26所述基于程序行為分析的計算機防護方法,其特征在于,所述攻擊識別規(guī)則庫,包括病毒規(guī)則二b)該程序執(zhí)行修改其他程序文件的操作。
29.按照權利要求26所述基于程序行為分析的計算機防護方法,其特征在于,所述攻擊識別規(guī)則庫,包括遠程攻擊規(guī)則一c)該程序通過監(jiān)聽端口接受數(shù)據(jù)后,立即調用SHELL程序。
30.按照權利要求26所述基于程序行為分析的計算機防護方法,其特征在于,所述攻擊識別規(guī)則庫,包括遠程攻擊規(guī)則二d)該程序通過監(jiān)聽端口接收數(shù)據(jù)后,發(fā)生緩沖區(qū)溢出。
31.按照權利要求26所述基于程序行為分析的計算機防護方法,其特征在于,所述攻擊識別規(guī)則庫,包括遠程攻擊規(guī)則三e)該程序通過監(jiān)聽端口接收數(shù)據(jù)后,立即調用一般文件傳輸協(xié)議TFTP程序。
32.按照權利要求26所述基于程序行為分析的計算機防護方法,其特征在于,所述攻擊識別規(guī)則庫,包括郵件蠕蟲規(guī)則一f)該程序由郵件系統(tǒng)自動生成,且該程序運行時修改注冊表的自啟動項,該程序無窗口、無托盤,并且立即開始發(fā)送郵件。
33.按照權利要求26所述基于程序行為分析的計算機防護方法,其特征在于,所述攻擊識別規(guī)則庫,包括可疑木馬規(guī)則一g)該程序由郵件系統(tǒng)自動生成,且該程序運行時修改注冊表的自啟動項,該程序無窗口、無托盤,并且立即開始創(chuàng)建監(jiān)聽端口。
34.按照權利要求26所述基于程序行為分析的計算機防護方法,其特征在于,所述攻擊識別規(guī)則庫,其結構包括可執(zhí)行PE文件的全路徑、創(chuàng)建者全路徑、創(chuàng)建者的特性、創(chuàng)建者有無窗口、與創(chuàng)建者是否同一文件、是否拷貝自身、文件有無描述、是否自啟動、誰創(chuàng)建的自啟動項、是否被創(chuàng)建者啟動、是否自己創(chuàng)建自啟動項、是否有窗口或托盤圖標、修改注冊表項鏈表和網絡動作鏈表。
35.按照權利要求34所述基于程序行為分析的計算機防護方法,其特征在于,所述修改注冊表項鏈表的子數(shù)據(jù)結構,包括入口列表、鍵名、值名和值。
36.按照權利要求34所述基于程序行為分析的計算機防護方法,其特征在于,所述網絡動作鏈表的子數(shù)據(jù)結構,包括類型、本地端口、本地地址、遠程端口、遠程地址和使用協(xié)議。
全文摘要
本發(fā)明涉及一種計算機防護方法,即,基于程序行為分析的計算機防護方法。其特征在于對于已知程序,監(jiān)控其動作行為,并與程序行為知識庫中記錄的該已知程序的合法動作行為進行比較,判斷該已知程序是否受到非法攻擊;對于未知程序,監(jiān)控其動作行為,并與攻擊識別規(guī)則庫中記錄的攻擊識別規(guī)則進行比較,判斷其是否為有害程序。避免了現(xiàn)有的殺毒軟件需要將程序與病毒庫中的病毒特征代碼進行比較。利用本發(fā)明的方法不但提高了效率,避免了病毒代碼更新的滯后性,可以有效地對未知的病毒、木馬進行攔截。
文檔編號H04L29/06GK1818823SQ20051000768
公開日2006年8月16日 申請日期2005年2月7日 優(yōu)先權日2005年2月7日
發(fā)明者劉旭 申請人:福建東方微點信息安全有限責任公司