專利名稱:主動防御方法及裝置的制作方法
技術領域:
本發明涉及計算機安全技術領域,特別是涉及主動防御方法及裝置。
背景技術:
惡意程序是一個概括性的術語,指任何故意創建用來執行未經授權并通常是有害行為的軟件程序。計算機病毒、后門程序、鍵盤記錄器、密碼盜取者、Word和Excel宏病毒、引導區病毒、腳本病毒(batch, windows shell, java等)、木馬、犯罪軟件、間謀軟件和廣告軟件等等,都是一些可以稱之為惡意程序的例子。
傳統的惡意程序防殺主要依賴于特征庫模式。特征庫是由廠商收集到的惡意程序樣本的特征碼組成,而特征碼則是分析工程師從惡意程序中找到和正當軟件的不同之處,截取一段類似于“搜索關鍵詞”的程序代碼。當查殺過程中,引擎會讀取文件并與特征庫中的所有特征碼“關鍵詞”進行匹配,如果發現文件程序代碼被命中,就可以判定該文件程序為惡意程序。特征庫匹配是查殺已知惡意程序很有效的一項技術。但是現今全球惡意程序數量呈幾何級增長,基于這種爆發式的增速,特征庫的生成與更新往往是滯后的,很多時候殺毒軟件無法防殺層出不窮的未知惡意程序。HIPS (Host-based Intrusion Prevention System,基于主機的入侵防御系統)是一種通過攔截系統內的常見危險動作,不以特征碼作為判斷惡意程序的依據,而是從最原始的定義出發,直接將程序的行為作為判斷惡意程序的依據,其中衍生出在本地使用特征庫、在本地設置行為閾值以及在本地啟發式殺毒的方式來判別、攔截惡意程序的行為,從而一定程度上達到保護用戶電腦的目的。借助自己對軟件及系統的了解,人為的或者軟件內置的一些觸發條件制止一些不正常的動作,以達到系統安全的一個軟件系統,這種觸發條件一般稱為HIPS規則。然而,在現有技術中使用HIPS規則進行主動防御時,經常出現誤報的現象。因此,迫切需要本領域技術人員解決的技術問題就在于,如何在使用HIPS規則進行主動防御時,降低誤報的概率。
發明內容
本發明提供了主動防御方法及裝置,能夠降低誤判的概率。本發明提供了如下方案本發明實施例提供一種主動防御方法,包括對預置接口產生的遠程過程調用協議RPC調用進行跟蹤;當用戶權限的進程通過預置接口發起調用系統服務進程的請求時,攔截所述請求,從所述請求中提取源文件的路徑,并建立所述源文件的路徑與被調用的系統服務進程之間的關聯;如果有操作行為觸發基于主機的入侵防御系統HIPS規則、并根據進程鏈追溯到發起所述操作行為的進程是被調用的系統服務進程,則將所述源文件的路徑確定為所述操作行為的來源;根據所述源文件的危險等級,執行主機入侵防御處理。可選地,所述源文件包括MSI安裝包文件,所述對預置接口的RPC調用進行跟蹤包括對接口 MSIServer: :DoInstallRemote的RPC調用進行跟蹤,以便獲取所述MSI安裝包文件在系統中的保存路徑。可選地,所述源文件包括MSI安裝包文件中的動態鏈接庫DLL文件,所述對預置接口的RPC調用進行跟蹤包括
對接口CMsiCustomAction: : PrepareDLLCustomAction 的 RPC 調用進行跟蹤,以便獲取所述MSI安裝包文件中的DLL文件的DLL路徑。可選地,所述根據所述源文件的危險等級,執行主機入侵防御處理包括確定源文件的危險等級;根據所述源文件的危險等級,對所述操作行為執行攔截。可選地,所述根據所述源文件的危險等級,執行主機入侵防御處理包括根據所述源文件的危險等級,向用戶進行風險提示,并將所述源文件的信息提示給用戶。本發明實施例提供一種主動防御裝置,包括跟蹤單元,用于對預置接口產生的遠程過程調用協議RPC調用進行跟蹤;攔截單元,用于當當用戶權限的進程通過預置接口發起調用系統服務進程的請求時,攔截所述請求,從所述請求中提取源文件的路徑,并建立所述源文件的路徑與被調用的系統服務進程之間的關聯;來源確定單元,用于如果有操作行為觸發基于主機的入侵防御系統HIPS規則、并根據進程鏈追溯到所述被調用的系統服務進程,則將所述源文件的路徑確定為所述操作行為的來源;處理單元,用于根據所述源文件的危險等級,執行主機入侵防御處理。可選地,所述源文件包括MSI安裝包文件,所述跟蹤單元包括第一跟蹤子單元,用于對接口 IMSIServer: :DoInstallRemote的RPC調用進行跟蹤,以便獲取所述MSI安裝包文件在系統中的保存路徑。可選地,所述源文件包括MSI安裝包文件中的動態鏈接庫DLL文件,所述跟蹤單元包括第二跟蹤子單兀,用于對接口CMsiCustomAction: :PrepareDLLCustomAction 的RPC調用進行跟蹤,以便獲取所述MSI安裝包文件中的DLL文件的DLL路徑。可選地,所述處理單元包括操作攔截子單元,用于根據所述源文件的危險等級,對所述操作行為執行攔截。可選地,所述處理單元包括風險提示子單元,用于根據所述源文件的危險等級,向用戶進行風險提示,并將所述源文件的信息提示給用戶。根據本發明提供的具體實施例,本發明公開了以下技術效果
通過本發明,針對用戶啟動運行某文件之后,會通過用戶權限下的一個進程轉移到系統服務權限下的另一個進程中去執行,導致進程鏈斷鏈的情況,能夠將建立源文件與被調用的系統服務權限進程之間的關聯,從而在某操作行為觸發HIPS規則時,能夠追溯到操作行為的真正來源,進而通過對真正來源處的文件進行危險等級的判斷,來確定是否需要進行攔截或者彈出提示,這樣可以降低誤判的概率。
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。圖I是HIPS系統示意圖;圖2是本發明實施例提供的方法的流程圖; 圖3是本發明實施例提供的裝置的示意圖;圖4是本發明實施例提供的系統的示意圖;圖5是本發明實施例提供的另一系統的示意圖。
具體實施例方式下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員所獲得的所有其他實施例,都屬于本發明保護的范圍。為了便于理解本發明,首先對HIPS的相關內容進行簡單的介紹。參見圖1,最常見的HIPS是“3D”類的借助規則攔截程序動作的軟件。所謂的3D包括AD(ApplicationDefend,應用程序防御體系)、RD (Registry Defend,注冊表防御體系)>FD (File Defend,文件防御體系),這三個HIPS進行防御所采用的最直觀的動作,通過攔截這些直觀的動作的來起到保護系統的安全。其中,AD的作用是監控程序運行、加載、訪問物理內存、操作底層磁盤、鍵盤記錄等等的關鍵操作;FD的作用就是監控系統對任何文件的讀取、修改、創建、刪除操作;RD的作用是監控對注冊表的操作。例如假設有病毒入侵電腦,則病毒首先會在硬盤上建立病毒實體,這時候就會觸發FD的“創建”規則;接著讀取病毒體,會觸發FD的“讀取”規則;再接著運行病毒體,會觸發AD的各項規則;如果是感染型病毒,在運行過程中還會修改硬盤的文件,例如感染exe文件,此時,會觸發FD的“修改”規則;如果是破壞型病毒,運行過程中還會刪除硬盤的文件,例如刪除exe、gho等文件,此時,會觸發FD的“刪除”規則;接下來,病毒通常會修改注冊表來達到自啟動或破壞的目的,此時會觸發RD規則。每次觸發規則,HIPS就會從規則庫里面查找,如果規則庫里面已經有對該操作的規則,就按規則處理;如果沒有,就會詢問用戶。如果在上述檢測過程中有操作行為被攔截掉了,那么就算這是一個有問題文件,也不能對系統造成危害。在某行為觸發HIPS規則時,HIPS需要找到執行了該行為的進程,根據執行該行為的進程的安全等級,來確定是否需要攔截或者提示。但是,一些惡意程序為了更好的隱藏自己,可能會通過其進程A啟動另一個進程B,通過進程B執行具體的惡意行為,甚至還可能有更多級的進程調用,最終才執行一個惡意行為。此時,如果僅獲取到執行該行為的當前進程,則根據當前進程來判斷是否需要攔截則是不準確的。因此,就需要找到執行了該行為的進程所在的進程鏈,追本溯源,找到行為的真正來源,例如,前述例子中的進程A,如果進程A的安全等級比較低,則可以進行攔截或者向用戶進行提示,等等。
本發明人在實現本發明的過程中發現,現有技術之所以會經常有誤報的現象發生,是因為現有技術雖然能夠獲取到觸發規則的行為所在的進程鏈,但是,在針對一些特殊類型的文件進行主動防御的過程中,在觸發HIPS規則之后,根據進程鏈追溯行為的來源時,無法追溯到真正的來源,因此經常會出現誤報的情況,使得一些正常的行為也無法被順利的執行。例如,在通過一個MSI (Windows Installer)安裝包安裝某程序的過程中,只要發現執行了一個修改注冊表啟動項的行為,HIPS系統就都不加區別地彈出提示,如果經用戶判斷后發現是一個可以允許的操作,則在用戶手動選擇了“允許此次操作”等選項之后,才會繼續安裝過程。本發明人在實現本發明的過程中還發現,之所以在針對有些文件進行主動防御時,無法追溯到真正的來源,是因為,有些文件在運行過程中可能會出現以下現象用戶啟動運行該文件之后,會通過用戶權限下的一個進程轉移到系統服務權限下的另一個進程中去執行,觸發HIPS規則的行為可能是在轉移到系統服務權限下的進程之后才執行的,而在HIPS獲取進程鏈時,只能追溯到該系統服務權限下的起始進程,而無法與用戶權限下的進程鏈關聯起來,也就是說,這種特殊文件在執行過程中,會導致進程鏈的斷鏈,因此,也就無法追溯到真正的來源。例如,用戶雙擊一個MSI安裝包,系統會根據擴展名關聯,首先啟動一個當前用戶權限的msiexec. exe的進程,msiexec. exe,系統進程,是WindowsInstaller的一部分。用于安裝Windows Installer安裝包(MSI),然后這個用戶權限的msiexec. exe會調用接口將請求轉發給接口對應的Server,即系統服務權限的msiexec. exe (如果該系統服務權限的msiexec. exe尚未啟動,則需要先用DCOM將其啟動),之后再執行后續的操作行為。這樣,當某操作行為觸發HIPS權限之后,在通過進程鏈進行追溯時,只能追溯到系統服務權限的msiexec. exe,但實際上該操作行為的來源應該是該MSI安裝包本身,或者是MSI安裝包中的某個DLL (Dynamic Link Library,動態鏈接庫)文件。這樣,在現有技術中,由于無法獲知具體是哪個MSI安裝包或者哪個動態鏈接庫執行的該行為,因此只要發現觸發了 HIPS規貝U,并且追溯到系統服務權限的msiexec. exe,就一律進行風險提示,顯然,這會造成大量的誤報。因此,在本發明實施例中,就可以通過建立源文件與被調用的系統服務權限進程之間的關聯,來追溯到操作行為的真正來源,進而通過對真正來源處的文件進行安全性判斷,來確定是否需要進行攔截或者彈出提示。下面就對本發明實施例提供的方法進行詳細地介紹。
參見圖2,本發明實施例提供的主動防御方法包括以下步驟S201 :對預置接口產生的遠程過程調用協議RPC調用進行跟蹤;S202:當用戶權限的進程通過預置接口發起調用系統服務進程的請求時,攔截所述請求,從所述請求中提取源文件的路徑,并建立所述源文件的路徑與被調用的系統服務進程之間的關聯;具體實現時,通過對預置接口的RPC調用進行跟蹤,截獲到調用系統服務權限進程的請求,然后從請求中提取出源文件的完整路徑,這樣就可以建立起源文件與被調用的系統服務進程之間的關聯。其中,對IMSIServer: :DoInstallRemote這個接口的RPC調用 進行跟蹤,并攔截請求包,可以獲取到原始的MSI安裝包的全路徑,對CMsiCustomAction::PrepareDLLCustomAction這個接口的RPC調用進行跟蹤,并攔截請求包,就可以獲取到MSI安裝包里面的DLL文件對應的DLL路徑。具體實現時,可以通過監控(例如HOOK)與RPC進行間通信相關的API函數,來達到上述跟蹤的目的,其中,需要根據不同的操作系統版本,HOOK不同的API函數,以達到準確的跟蹤和攔截的目的,在Windows XP操作系統中,可以HOOK以下API函數NtRequestWaitReplyPort等,在Windows Vista及其之后的版本中,可以HOOK以下API函數=NtAlpcSendWaitReplyPort 等。這樣,在前述例子中,仍假設用戶雙擊一個MSI安裝包啟動某程序的安裝過程后,系統仍然會首先啟動一個當前用戶權限的msiexec.exe的進程,然后這個用戶權限的msiexec. exe會調用相應的接口(如果是MSI安裝包文件本身發起的請求,則該進程會調用IMSIServer: :DoInstallRemote這個接口,如果是安裝包文件中的某DLL發起的請求,則該進程會調用CMsiCustomAction: :PrepareDLLCustomAction這個接口),將請求轉發給接口對應的Server ;在對前述API函數進行HOOK之后,當用戶權限的進程轉發請求給Server的時候,就可以截獲到該請求,然后通過解析該函數的參數,就可以獲取到MSI安裝包的完整路徑,或者MSI安裝包文件中的某DLL文件的DLL路徑。然后再將該請求轉發給系統服務權限的進程msiexec. exe,接下來,系統服務權限的進程msiexec. exe會根據IMSIServer: :DoInstalIRemote 這個接口或者 CMsiCustomAction: :PrepareDLLCustomAction這個接口傳過來的路徑啟動一個線程來進行具體的安裝操作,這個線程也可以創建新的線程來做具體的事情(比如寫文件、寫注冊表等),當該行為觸發到HIPS規則的時候,就可以首先追溯到msiexec. exe這個系統服務權限進程,然后,就可以根據記錄下的源文件與該系統服務權限進程msiexec. exe之間的關系,獲取到是哪個MSI安裝包或MSI安裝包中的哪個DLL文件對應的動作,這個MSI安裝包的完整路徑或者MSI安裝包中這個DLL文件的DLL路徑即是真正的來源。當然,具體在進行HOOK API函數時,可以將與進程間通信的一系列函數都進行HOOK,例如,在 Windows XP 操作系統下,可以包括 NtCreatePort, NtConnectPort, NtRequestPort, NtAcceptPort, NtListenPort, NtReplyPort, NtReplyffaitReceivePort 等等。S203 :如果有操作行為觸發基于主機的入侵防御系統HIPS規則、并根據進程鏈追溯到所述被調用的系統服務進程,則將所述源文件的路徑確定為所述操作行為的來源;當有操作行為觸發HIPS規則之后,就可以首先根據進程鏈進行追溯,如果追溯到系統服務進程,則可以根據之前建立的關聯,找到操作行為的真正來源,例如,可能是某個安裝包文件,或者是某個安裝包文件中的某個DLL文件,等等。例如,仍假設用戶雙擊一個MSI安裝包,系統會根據擴展名關聯,啟動一個當前用戶權限的msiexec. exe的進程,然后這個msiexec. exe會調用接口IMSIServer: :DoInstallRemote,系統會把它轉發給接口對應的Server,即SYSTEM權限的msiexec. exe (如果不存在,會用DCOM調起)。而在本發明實施例中,通過攔截系統服務NtRequestWaitReplyPort (xp), NtAlpcSendffaitReplyPort (Vista Later),可以在系統轉發請求給Server的時候獲取到MSI包的完整路徑,這樣,當服務進程msiexec. exe觸發到主防規則的時候,根據線程鏈的關系,可以獲取到是那個MSI包對應的動作,這個MSI包的完整路徑即是當前操作行為真正的來源。其中,具體在獲取進程鏈時,可以API來實現,例如,NtQuerylnformationProcess可以取得父進程的PID,這樣,一級一級向上找,便可以找到所有的進程。另外,本發明實施例還可以有自己的進程鏈管理功能,使用驅動來取得一個進程創建和退出事件,自己創建了一個進程鏈,這樣,只要去查自己的進程鏈管理功能就可以取得整個進程鏈中的父子進 程關系了。S204 :根據所述源文件的危險等級,執行主機入侵防御處理。找到操作行為的真正來源之后,就可以確定真正來源文件的危險等級,并根據該真正來源文件的危險等級,執行主機入侵防御處理。其中,真正來源的文件的危險等級可以根據專門的危險等級評判系統獲知,例如,可以預先將各個源文件的等級信息記錄在服務器端的列表中。這個列表包含了每個進程的PID、創建關系、文件等級等信息,然后通過查詢該列表,便可以獲得當前源文件的危險等級。具體實現時,危險等級的表述方式可以有多種,例如,第一等級可信文件,第二等級灰文件,第三等級可疑文件,第四等級為病毒或木馬等,具體在執行主機入侵防御處理時,可以直接對危險等級較高的源文件的操作行為執行攔截,或者,也可以首先向用戶進行危險提示,由用戶選擇是否執行攔截。當然,在向用戶進行危險提示時,顯示給用戶的操作行為的來源就是本發明實施例中獲取到的真正的來源,而不是系統服務進程。例如,在前述例子中,假設發現真正的來源是MSI IF. tmp這個DLL文件,則會通過彈出窗口等方式將該文件提示給用戶,而不是只提示對應的系統服務進程msiexec. exe,當然,在判斷源文件的危險級別時,也是判斷該MSI1F. tmp的危險級別,而不是msiexec. exe。具體在進行提示時,可以不僅僅將源文件的文件名顯示給用戶,還可以將該來源文件的路徑等信息一并顯示給用戶。總之,在本發明實施例中,針對用戶啟動運行某文件之后,會通過用戶權限下的一個進程轉移到系統服務權限下的另一個進程中去執行,導致進程鏈斷鏈的情況,能夠將建立源文件與被調用的系統服務權限進程之間的關聯,從而在某操作行為觸發HIPS規則時,能夠追溯到操作行為的真正來源,進而通過對真正來源處的文件進行危險等級的判斷,來確定是否需要進行攔截或者彈出提示界面,這樣可以降低誤報的概率。與本發明實施例提供的主動防御方法相對應,本發明實施例還提供了一種主動防御裝置,參見圖3,該裝置包括跟蹤單元301,用于對預置接口產生的遠程過程調用協議RPC調用進行跟蹤;攔截單元302,用于當用戶權限的進程通過預置接口發起調用系統服務進程的請求時,攔截所述請求,從所述請求中提取源文件的路徑,并建立所述源文件的路徑與被調用的系統服務進程之間的關聯;來源確定單元303,用于如果有操作行為觸發基于主機的入侵防御系統HIPS規貝1J、并根據進程鏈追溯到所述被調用的系統服務進程,則將所述源文件的路徑確定為所述操作行為的來源;處理單元304,用于根據所述源文件的危險等級,執行主機入侵防御處理。其中,所述源文件包括MSI安裝包文件,所述跟蹤單元301可以包括第一跟蹤子單元,用于對接口 IMSIServer: :DoInstallRemote的RPC調用進行跟蹤,以便獲取所述MSI安裝包文件在系統中的保存路徑。
或者,所述源文件包括MSI安裝包文件中的動態鏈接庫DLL文件,此時,所述跟蹤單元201可以包括第二跟蹤子單兀,用于對接口 CMsiCustomAction: :PrepareDLLCustomAction 的RPC調用進行跟蹤,以便獲取所述MSI安裝包文件中的DLL文件的DLL路徑。在實際應用中,所述處理單元304具體可以包括操作攔截子單元,用于根據所述源文件的危險等級,對所述操作行為執行攔截。或者,所述處理單元304也可以包括風險提示子單元,用于根據所述源文件的危險等級,向用戶進行風險提示,并將所述源文件的信息提示給用戶。與本發明實施例提供的主動防御方法及裝置相對應,本發明實施例還提供了一種主動防御系統,參見圖4,該系統可以包括客戶端401及服務器端402 跟蹤單元4011,用于對預置接口產生的遠程過程調用協議RPC調用進行跟蹤;攔截單元4012,用于當用戶權限的進程通過預置接口發起調用系統服務進程的請求時,攔截所述請求,從所述請求中提取源文件的路徑,并建立所述源文件的路徑與被調用的系統服務進程之間的關聯;來源確定單元4013,用于如果有操作行為觸發基于主機的入侵防御系統HIPS規貝1J、并根據進程鏈追溯到發起所述操作行為的進程是被調用的系統服務進程,則將所述源文件的路徑確定為所述操作行為的來源;特征提取單元4014,用于提取所述源文件的特征;具體的,提取的源文件特征可以是源文件的名稱、MD5等靜態特征,或者也可以在客戶端設備上部署沙箱系統,將源文件放入沙箱中運行,提取其動態行為特征,將其上傳到服務器端,以便服務器端根據這些特征對源文件進行判斷。上傳單元4015,用于將所述源文件的特征上傳到服務器端402 ;所述服務器端402包括危險等級確定單元4021,用于根據所述源文件的特征判定所述源文件的危險等級,并返回給客戶端;所述客戶端401還包括處理單元4016,用于根據所述服務器端返回的所述源文件的危險等級,執行主機入侵防御處理。當然,在實際應用中,客戶端也可以是將整個文件上傳至服務器端,由服務器端提取文件的特征,或者直接根據文件白名單或黑名單等來判定文件的危險等級。因此,本發明實施例還提供了另一種主動防御系統,參見圖5,該系統同樣包括客戶端501及服務器端502,其中客戶端具體可以包括跟蹤單元5011,用于對預置接口產生的遠程過程調用協議RPC調用進行跟蹤;攔截單元5012,用于當用戶權限的進程通過預置接口發起調用系統服務進程的請求時,攔截所述請求,從所述請求中提取源文件的路徑,并建立所述源文件的路徑與被調用的系統服務進程之間的關聯;來源確定單元5012,用于如果有操作行為觸發基于主機的入侵防御系統HIPS規貝1J、并根據進程鏈追溯到發起所述操作行為的進程是被調用的系統服務進程,則將所述源 文件的路徑確定為所述操作行為的來源; 上傳單元5014,用于將所述源文件上傳到服務器端502 ;所述服務器端502包括特征提取單元5021,用于提取所述源文件的特征;危險等級確定單元5022,用于根據所述源文件的特征判定所述源文件的危險等級,并返回給客戶端;所述客戶端501還包括處理單元5015,用于根據所述服務器端返回的所述源文件的危險等級,執行主機入侵防御處理。總之,在本發明實施例提供的主動防御裝置中,針對用戶啟動運行某文件之后,會通過用戶權限下的一個進程轉移到系統服務權限下的另一個進程中去執行,導致進程鏈斷鏈的情況,能夠將建立源文件與被調用的系統服務權限進程之間的關聯,從而在某操作行為觸發HIPS規則時,能夠追溯到操作行為的真正來源,進而通過對真正來源處的文件進行危險等級的判斷,來確定是否需要進行攔截或者彈出提示,這樣可以降低誤報的概率。在此提供的算法和顯示不與任何特定計算機、虛擬系統或者其它設備固有相關。各種通用系統也可以與基于在此的示教一起使用。根據上面的描述,構造這類系統所要求的結構是顯而易見的。此外,本發明也不針對任何特定編程語言。應當明白,可以利用各種編程語言實現在此描述的本發明的內容,并且上面對特定語言所做的描述是為了披露本發明的最佳實施方式。在此處所提供的說明書中,說明了大量具體細節。然而,能夠理解,本發明的實施例可以在沒有這些具體細節的情況下實踐。在一些實例中,并未詳細示出公知的方法、結構和技術,以便不模糊對本說明書的理解。類似地,應當理解,為了精簡本公開并幫助理解各個發明方面中的一個或多個,在上面對本發明的示例性實施例的描述中,本發明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應將該公開的方法解釋成反映如下意圖即所要求保護的本發明要求比在每個權利要求中所明確記載的特征更多的特征。更確切地說,如下面的權利要求書所反映的那樣,發明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式
的權利要求書由此明確地并入該具體實施方式
,其中每個權利要求本身都作為本發明的單獨實施例。
本領域那些技術人員可以理解,可以對實施例中的設備中的模塊進行自適應性地改變并且把它們設置在與該實施例不同的一個或多個設備中。可以把實施例中的模塊或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。此外,本領域的技術人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發明的范圍之內并且形成不同的實施例。例如,在下面的權利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。本發明的各個部件實施例可以以硬件實現,或者以在一個或者多個處理器上運行的軟件模塊實現,或者以它們的組合實現。本領域的技術人員應當理解,可以在實踐中使用 微處理器或者數字信號處理器(DSP)來實現根據本發明實施例的主機入侵防御設備中的一些或者全部部件的一些或者全部功能。本發明還可以實現為用于執行這里所描述的方法的一部分或者全部的設備或者裝置程序(例如,計算機程序和計算機程序產品)。這樣的實現本發明的程序可以存儲在計算機可讀介質上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網網站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。應該注意的是上述實施例對本發明進行說明而不是對本發明進行限制,并且本領域技術人員在不脫離所附權利要求的范圍的情況下可設計出替換實施例。在權利要求中,不應將位于括號之間的任何參考符號構造成對權利要求的限制。單詞“包含”不排除存在未列在權利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現。在列舉了若干裝置的單元權利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。本申請可以應用于計算機系統/服務器,其可與眾多其它通用或專用計算系統環境或配置一起操作。適于與計算機系統/服務器一起使用的眾所周知的計算系統、環境和/或配置的例子包括但不限于個人計算機系統、服務器計算機系統、瘦客戶機、厚客戶機、手持或膝上設備、基于微處理器的系統、機頂盒、可編程消費電子產品、網絡個人電腦、小型計算機系統、大型計算機系統和包括上述任何系統的分布式云計算技術環境,等等。計算機系統/服務器可以在由計算機系統執行的計算機系統可執行指令(諸如程序模塊)的一般語境下描述。通常,程序模塊可以包括例程、程序、目標程序、組件、邏輯、數據結構等等,它們執行特定的任務或者實現特定的抽象數據類型。計算機系統/服務器可以在分布式云計算環境中實施,分布式云計算環境中,任務是由通過通信網絡鏈接的遠程處理設備執行的。在分布式云計算環境中,程序模塊可以位于包括存儲設備的本地或遠程計算系統存儲介質上。
權利要求
1.一種主動防御方法,包括 對預置接口產生的遠程過程調用協議RPC調用進行跟蹤; 當用戶權限的進程通過預置接口發起調用系統服務進程的請求時,攔截所述請求,從所述請求中提取源文件的路徑,并建立所述源文件的路徑與被調用的系統服務進程之間的關聯; 如果有操作行為觸發基于主機的入侵防御系統HIPS規則、并根據進程鏈追溯到發起所述操作行為的進程是被調用的系統服務進程,則將所述源文件的路徑確定為所述操作行為的來源; 根據所述源文件的危險等級,執行主機入侵防御處理。
2.根據權利要求I所述的方法,所述源文件包括MSI安裝包文件,所述對預置接口的RPC調用進行跟蹤包括 對接口 MSIServer: :DoInstallRemote的RPC調用進行跟蹤,以便獲取所述MSI安裝包文件在系統中的保存路徑。
3.根據權利要求I所述的方法,所述源文件包括MSI安裝包文件中的動態鏈接庫DLL文件,所述對預置接口的RPC調用進行跟蹤包括 對接口 CMsiCustomAction: : PrepareDLLCustomAction 的 RPC 調用進行跟蹤,以便獲取所述MSI安裝包文件中的DLL文件的DLL路徑。
4.根據權利要求I至3任一項所述的方法,所述根據所述源文件的危險等級,執行主機入侵防御處理包括 確定源文件的危險等級; 根據所述源文件的危險等級,對所述操作行為執行攔截。
5.根據權利要求I至3任一項所述的方法,所述根據所述源文件的危險等級,執行主機入侵防御處理包括 根據所述源文件的危險等級,向用戶進行風險提示,并將所述源文件的信息提示給用戶。
6.一種主動防御裝置,包括 跟蹤單元,用于對預置接口產生的遠程過程調用協議RPC調用進行跟蹤; 攔截單元,用于當用戶權限的進程通過預置接口發起調用系統服務進程的請求時,攔截所述請求,從所述請求中提取源文件的路徑,并建立所述源文件的路徑與被調用的系統服務進程之間的關聯; 來源確定單元,用于如果有操作行為觸發基于主機的入侵防御系統HIPS規則、并根據進程鏈追溯到發起所述操作行為的進程是被調用的系統服務進程,則將所述源文件的路徑確定為所述操作行為的來源; 處理單元,用于根據所述源文件的危險等級,執行主機入侵防御處理。
7.根據權利要求6所述的裝置,所述源文件包括MSI安裝包文件,所述跟蹤單元包括 第一跟蹤子單元,用于對接口 IMSIServer: :DoInstallRemote的RPC調用進行跟蹤,以便獲取所述MSI安裝包文件在系統中的保存路徑。
8.根據權利要求6所述的裝置,所述源文件包括MSI安裝包文件中的動態鏈接庫DLL文件,所述跟蹤單元包括第二跟蹤子單兀,用于對接口 CMsiCustomAction: : PrepareDLLCustomAction 的 RPC 調用進行跟蹤,以便獲取所述MSI安裝包文件中的DLL文件的DLL路徑。
9.根據權利要求6至8任一項所述的裝置,所述處理單元包括 危險等級確定子單元,用于確定源文件的危險等級; 操作攔截子單元,用于根據所述源文件 的危險等級,對所述操作行為執行攔截。
10.根據權利要求6至8任一項所述的裝置,所述處理單元包括 風險提示子單元,用于根據所述源文件的危險等級,向用戶進行風險提示,并將所述源文件的信息提示給用戶。
全文摘要
本發明公開了主動防御方法及裝置,其中,所述方法包括對預置接口產生的遠程過程調用協議RPC調用進行跟蹤;當用戶權限的進程通過預置接口發起調用系統服務進程的請求時,攔截所述請求,從所述請求中提取源文件的路徑,并建立所述源文件與被調用的系統服務進程之間的關聯;如果有操作行為觸發基于主機的入侵防御系統HIPS規則、并根據進程鏈追溯到所述被調用的系統服務進程,則將所述源文件的路徑確定為所述操作行為的來源;根據所述源文件的危險等級,執行主機入侵防御處理。通過本發明,能夠降低誤判的概率。
文檔編號H04L29/06GK102882875SQ20121037690
公開日2013年1月16日 申請日期2012年9月29日 優先權日2012年9月29日
發明者閆繼平 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司