專利名稱:一種攔截網(wǎng)頁攻擊的方法、裝置和客戶端設備的制作方法
技術領域:
本發(fā)明涉及網(wǎng)絡安全技術領域,具體涉及一種攔截網(wǎng)頁攻擊的方法、裝置和客戶端設備。
背景技術:
網(wǎng)頁木馬攻擊是當前最流行的漏洞攻擊方式之一,網(wǎng)頁木馬攻擊的過程一般是攻擊者通過javascript操作瀏覽器的堆內(nèi)存,將惡意代碼shellcode寫入瀏覽器的堆內(nèi)存地址,通過緩沖區(qū)溢出漏洞改變程序的執(zhí)行流程,使得瀏覽器堆內(nèi)存中的shellcode得以執(zhí)行。目前,各種安全軟件針對網(wǎng)頁木馬的攔截技術一般分為如下三類
I、針對網(wǎng)頁木馬的惡意腳本代碼內(nèi)容進行攔截。2、針對溢出型網(wǎng)頁木馬shellcode所調(diào)用的API函數(shù)進行攔截。3、針對網(wǎng)頁木馬所執(zhí)行文件的特征進行黑白名單判定,從而進行攔截。其中,在第三類攔截技術中,黑名單攔截的過程一般是安全軟件針對網(wǎng)頁木馬所執(zhí)行的文件,進行病毒庫特征碼匹配,如果符合病毒庫特征碼則阻止并提示執(zhí)行行為;白名單攔截的過程一般是安全軟件針對網(wǎng)頁木馬所所執(zhí)行的文件,進行白名單特征匹配,如果不符合白名單特征,則攔截阻止程序運行。但是,上述黑白名單的攔截技術并不能完全地對網(wǎng)頁木馬進行攔截。例如,系統(tǒng)程序?qū)儆诳尚诺陌酌麊纬绦?,但是網(wǎng)頁木馬可以通過運行接受命令行參數(shù)的系統(tǒng)程序(即運行命令行程序)繞過黑白名單的攔截,最后成功執(zhí)行惡意程序。
發(fā)明內(nèi)容
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的攔截網(wǎng)頁攻擊的方法和相應的裝置及客戶端設備。依據(jù)本發(fā)明的一個方面,提供了一種攔截網(wǎng)頁攻擊的方法,包括獲取瀏覽器執(zhí)行進程的程序;檢測所述瀏覽器執(zhí)行進程的程序是否為命令行程序;當所述瀏覽器執(zhí)行進程的程序為命令行程序時,獲取所述命令行程序運行的命令行參數(shù);對所述命令行程序的命令行參數(shù)進行分析,檢測所述命令行程序是否存在惡意命令行參數(shù);當所述命令行程序存在惡意命令行參數(shù)時,阻止所述進程的執(zhí)行。本發(fā)明實施例中,獲取瀏覽器執(zhí)行進程的程序,包括獲取瀏覽器執(zhí)行進程的應用程序接口,通過所述應用程序接口獲取瀏覽器執(zhí)行進程的程序。本發(fā)明實施例中,檢測所述瀏覽器執(zhí)行進程的程序是否為命令行程序,包括
獲取所述瀏覽器執(zhí)行進程的程序名稱;判斷所述瀏覽器執(zhí)行進程的程序名稱是否為預設的命令行程序的程序名稱,若是,則判定所述瀏覽器執(zhí)行進程的程序為命令行程序。本發(fā)明實施例中,獲取所述瀏覽器執(zhí)行進程的程序名稱,包括監(jiān)控與所述瀏覽器執(zhí)行進程相關的CreateProcessInternalW函數(shù);通過獲取所述CreateProcessInternalW 函數(shù)所執(zhí)行的 IpApplicationName 參數(shù),獲取所述瀏覽器執(zhí)行進程的程序名稱。本發(fā)明實施例中,預設的命令行程序為以下任意一種腳本語言解釋器Wscript. exe、動態(tài)鏈接庫注冊程序Regsvr32. exe、系統(tǒng)命令行 解釋程序cmd. exe、文件執(zhí)行程序rundll32. exe dll、腳本語言解釋器cscript. exe、文件執(zhí)行程序mshta. exe hta和定時執(zhí)行程序at. exe。本發(fā)明實施例中,預設的命令行程序包括存在遞歸調(diào)用的命令行程序和不存在遞歸調(diào)用的命令行程序兩類;存在遞歸調(diào)用的命令行程序包括系統(tǒng)命令行解釋程序cmd. exe和定時執(zhí)行程序at. exe ;不存在遞歸調(diào)用的命令行程序包括腳本語言解釋器Wscript. exe、動態(tài)鏈接庫注冊程序Regsvr32. exe、文件執(zhí)行程序rundll32. exe dll、腳本語言解釋器cscript. exe和文件執(zhí)行程序mshta. exe hta。本發(fā)明實施例中,當命令行程序為不存在遞歸調(diào)用的命令行程序時,獲取所述命令行程序運行的命令行參數(shù),包括通過CommandLineToArgvW函數(shù)獲取命令行程序運行的命令行參數(shù)。本發(fā)明實施例中,當命令行程序為不存在遞歸調(diào)用的命令行程序時,對所述命令行程序的命令行參數(shù)進行分析,檢測所述命令行程序是否存在惡意命令行參數(shù),包括遍歷所述命令行程序的命令行參數(shù),利用GetLongPathNameW函數(shù)檢測所述命令行參數(shù),獲取執(zhí)行所述命令行程序的文件路徑;如果獲取到完整的文件路徑,則確定所述命令行程序存在惡意命令行參數(shù)。本發(fā)明實施例中,當命令行程序為存在遞歸調(diào)用的命令行程序時,獲取所述命令行程序運行的命令行參數(shù),包括根據(jù)所述命令行程序中的分隔字符獲取命令行程序運行的命令行參數(shù)。本發(fā)明實施例中,分隔字符包括空格字符、引號字符、“&”字符和“”字符。本發(fā)明實施例中,當命令行程序為存在遞歸調(diào)用的命令行程序時,對命令行程序的命令行參數(shù)進行分析,檢測所述命令行程序是否存在惡意命令行參數(shù),包括遍歷所述命令行程序的命令行參數(shù),利用GetLongPathNameW函數(shù)檢測所述命令行參數(shù),獲取執(zhí)行所述命令行程序的文件路徑;如果獲取到完整的文件路徑,則確定所述命令行程序存在惡意命令行參數(shù);如果不能獲取到完整的文件路徑,則判斷所述命令行參數(shù)中是否包括用于標識該命令行程序的字符,若是,則確定所述命令行程序存在惡意命令行參數(shù)。本發(fā)明實施例中,當命令行程序為系統(tǒng)命令行解釋程序cmd. exe時,用于標識該命令行程序的字符為cmd字符;
當命令行程序為定時執(zhí)行程序at. exe時,用于標識該命令行程序的字符為at. exe 字符。本發(fā)明實施例中,當命令行程序為定時執(zhí)行程序at. exe時,在利用GetLongPathNameff函數(shù)檢測所述命令行參數(shù)之前,還包括將所述命令行參數(shù)中的時間參數(shù)忽略。本發(fā)明實施例中,在檢測所述瀏覽器執(zhí)行進程的程序是否為命令行程序之前,還包括檢測所述瀏覽器執(zhí)行進程的程序是否為黑名單程序或者白名單程序;當所述瀏覽器執(zhí)行進程的程序為黑名單程序時,阻止所述進程的執(zhí)行; 當所述瀏覽器執(zhí)行進程的程序為白名單程序時,執(zhí)行檢測所述瀏覽器執(zhí)行進程的程序是否為命令行程序的步驟。根據(jù)本發(fā)明的另一方面,提供了一種攔截網(wǎng)頁攻擊的裝置,包括程序獲取模塊,用于獲取瀏覽器執(zhí)行進程的程序;程序檢測模塊,用于檢測所述瀏覽器執(zhí)行進程的程序是否為命令行程序;參數(shù)獲取模塊,用于當所述瀏覽器執(zhí)行進程的程序為命令行程序時,獲取所述命令行程序運行的命令行參數(shù);參數(shù)檢測模塊,用于對所述命令行程序的命令行參數(shù)進行分析,檢測所述命令行程序是否存在惡意命令行參數(shù);攔截模塊,用于當所述命令行程序存在惡意命令行參數(shù)時,阻止所述進程的執(zhí)行。本發(fā)明實施例中,程序檢測模塊包括程序名稱獲取單元,用于獲取所述瀏覽器執(zhí)行進程的程序名稱;判定單元,用于判斷所述瀏覽器執(zhí)行進程的程序名稱是否為預設的命令行程序的程序名稱,若是,則判定所述瀏覽器執(zhí)行進程的程序為命令行程序。本發(fā)明實施例中,預設的命令行程序為以下任意一種腳本語言解釋器Wscript. exe、動態(tài)鏈接庫注冊程序Regsvr32. exe、系統(tǒng)命令行解釋程序cmd. exe、文件執(zhí)行程序rundll32. exe dll、腳本語言解釋器cscript. exe、文件執(zhí)行程序mshta. exe hta和定時執(zhí)行程序at. exe。本發(fā)明實施例中,預設的命令行程序包括存在遞歸調(diào)用的命令行程序和不存在遞歸調(diào)用的命令行程序兩類;存在遞歸調(diào)用的命令行程序包括系統(tǒng)命令行解釋程序cmd. exe和定時執(zhí)行程序at. exe ;不存在遞歸調(diào)用的命令行程序包括腳本語言解釋器Wscript. exe、動態(tài)鏈接庫注冊程序Regsvr32. exe、文件執(zhí)行程序rundll32. exe dll、腳本語言解釋器cscript. exe和文件執(zhí)行程序mshta. exe hta。本發(fā)明實施例中,參數(shù)獲取模塊包括第一獲取單元,用于當所述命令行程序為不存在遞歸調(diào)用的命令行程序時,通過CommandLineToArgvff函數(shù)獲取命令行程序運行的命令行參數(shù)。本發(fā)明實施例中,參數(shù)檢測模塊包括第一檢測單元,用于當所述命令行程序為不存在遞歸調(diào)用的命令行程序時,遍歷所述命令行程序的命令行參數(shù),利用GetLongPathNameW函數(shù)檢測所述命令行參數(shù),獲取執(zhí)行所述命令行程序的文件路徑;第一確定單元,用于當?shù)谝粰z測單元獲取到完整的文件路徑,確定所述命令行程序存在惡意命令行參數(shù)。本發(fā)明實施例中,參數(shù)獲取模塊包括第二獲取單元,用于當所述命令行程序為存在遞歸調(diào)用的命令行程序時,根據(jù)所述命令行程序中的分隔字符獲取命令行程序運行的命令行參數(shù)。本發(fā)明實施例中,參數(shù)檢測模塊包括第二檢測單元,用于當所述命令行程序為存在遞歸調(diào)用的命令行程序時,遍歷所述命令行程序的命令行參數(shù),利用GetLongPathNameW函數(shù)檢測所述命令行參數(shù),獲取執(zhí)行所述命令行程序的文件路徑; 第二確定單元,用于當?shù)诙z測單元獲取到完整的文件路徑時,確定所述命令行程序存在惡意命令行參數(shù);第三確定單元,用于第二檢測單元當不能獲取到完整的文件路徑時,判斷所述命令行參數(shù)中是否包括用于標識該命令行程序的字符,若是,則確定所述命令行程序存在惡意命令行參數(shù)。本發(fā)明實施例中,還包括黑白名單檢測模塊,用于在程序檢測模塊檢測所述瀏覽器執(zhí)行進程的程序是否為命令行程序之前,檢測所述瀏覽器執(zhí)行進程的程序是否為黑名單程序或者白名單程序;當所述瀏覽器執(zhí)行進程的程序為黑名單程序時,所述攔截模塊阻止所述進程的執(zhí)行;當所述瀏覽器執(zhí)行進程的程序為白名單程序時,所述程序檢測模塊檢測所述瀏覽器執(zhí)行進程的程序是否為命令行程序。根據(jù)本發(fā)明的另一方面,提供了一種客戶端設備,包括如上所述的攔截網(wǎng)頁攻擊的裝置。根據(jù)本發(fā)明的攔截網(wǎng)頁攻擊的方法、裝置和客戶端設備可以在檢測到當前瀏覽器執(zhí)行進程的程序是命令行程序時,進一步獲取該命令行程序的命令行參數(shù),并對所述命令行程序的命令行參數(shù)進行分析,當分析出所述命令行程序存在惡意命令行參數(shù)時,阻止所述進程的執(zhí)行。由此解決了網(wǎng)頁攻擊通過運行命令行程序而繞過黑白名單的攔截,最后成功執(zhí)行惡意程序的問題,取得了提高網(wǎng)頁瀏覽的安全性,更加有效地攔截網(wǎng)頁的惡意攻擊的有益效果。上述說明僅是本發(fā)明技術方案的概述,為了能夠更清楚了解本發(fā)明的技術手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式
。
通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中
圖I示出了根據(jù)本發(fā)明一個實施例的一種攔截網(wǎng)頁攻擊的方法的流程圖;圖2示出了根據(jù)本發(fā)明一個實施例的一種攔截網(wǎng)頁攻擊的方法的流程圖;以及圖3示出了根據(jù)本發(fā)明一個實施例的一種攔截網(wǎng)頁攻擊的裝置的結構框圖。
具體實施例方式下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形 式實現(xiàn)本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領域的技術人員。本發(fā)明實施例可以應用于計算機系統(tǒng)/服務器,其可與眾多其它通用或?qū)S糜嬎阆到y(tǒng)環(huán)境或配置一起操作。適于與計算機系統(tǒng)/服務器一起使用的眾所周知的計算系統(tǒng)、環(huán)境和/或配置的例子包括但不限于個人計算機系統(tǒng)、服務器計算機系統(tǒng)、瘦客戶機、厚客戶機、手持或膝上設備、基于微處理器的系統(tǒng)、機頂盒、可編程消費電子產(chǎn)品、網(wǎng)絡個人電腦、小型計算機系統(tǒng)、大型計算機系統(tǒng)和包括上述任何系統(tǒng)的分布式云計算技術環(huán)境,等
坐寸ο計算機系統(tǒng)/服務器可以在由計算機系統(tǒng)執(zhí)行的計算機系統(tǒng)可執(zhí)行指令(諸如程序模塊)的一般語境下描述。通常,程序模塊可以包括例程、程序、目標程序、組件、邏輯、數(shù)據(jù)結構等等,它們執(zhí)行特定的任務或者實現(xiàn)特定的抽象數(shù)據(jù)類型。計算機系統(tǒng)/服務器可以在分布式云計算環(huán)境中實施,分布式云計算環(huán)境中,任務是由通過通信網(wǎng)絡鏈接的遠程處理設備執(zhí)行的。在分布式云計算環(huán)境中,程序模塊可以位于包括存儲設備的本地或遠程計算系統(tǒng)存儲介質(zhì)上。參照圖1,示出了根據(jù)本發(fā)明一個實施例的一種攔截網(wǎng)頁攻擊的方法的流程圖,所述方法包括步驟S101,獲取瀏覽器執(zhí)行進程的程序;目前通過黑白名單攔截網(wǎng)頁攻擊的技術并不能完全地對網(wǎng)頁木馬進行攔截。例如,系統(tǒng)程序?qū)儆诳尚诺陌酌麊纬绦颍蔷W(wǎng)頁木馬可以通過運行接受命令行參數(shù)的系統(tǒng)程序(即運行命令行程序)繞過黑白名單的攔截,最后成功執(zhí)行惡意程序。因此,本發(fā)明中當在瀏覽器中產(chǎn)生執(zhí)行進程的行為時,需要首先獲取瀏覽器執(zhí)行進程的程序,然后進一步對該瀏覽器執(zhí)行進程的程序進行分析,判斷是否需要阻止該程序的運行。在本發(fā)明實施例中,可以通過執(zhí)行以下操作產(chǎn)生執(zhí)行進程的行為I、在瀏覽器的網(wǎng)頁中下載數(shù)據(jù);2、點擊瀏覽器網(wǎng)頁中的某些內(nèi)容進行瀏覽。當然,還可以通過其他方式產(chǎn)生執(zhí)行進程的行為,本領域技術人員根據(jù)實際情況進行相應處理即可,本發(fā)明對具體的方式并不加以限制。需要說明的是,本發(fā)明中是針對瀏覽器執(zhí)行進程的程序進行分析處理,對于其他的程序的執(zhí)行(例如在桌面的快捷方式中打開某一應用程序),本發(fā)明并不會對其進行分析處理。步驟S102,檢測所述瀏覽器執(zhí)行進程的程序是否為命令行程序;
由于網(wǎng)頁木馬可以通過運行命令行程序繞過黑白名單的攔截,最后成功執(zhí)行惡意程序,因此,本發(fā)明在獲取到瀏覽器執(zhí)行進程的程序之后,進一步檢測該瀏覽器執(zhí)行進程的程序是否為命令行程序,如果其為命令行程序,則有可能是被網(wǎng)頁木馬惡意利用。步驟S103,當所述瀏覽器執(zhí)行進程的程序為命令行程序時,獲取所述命令行程序運行的命令行參數(shù);步驟S104,對所述命令行程序的命令行參數(shù)進行分析,檢測所述命令行程序是否存在惡意命令行參數(shù);步驟S105,當所述命令行程序存在惡意命令行參數(shù)時,阻止所述進程的執(zhí)行。如果所述瀏覽器執(zhí)行進程的程序為命令行程序,則該命令行程序有可能是被惡意利用的程序,但是也有可能是正常的系統(tǒng)程序。因此,本發(fā)明還要更進一步地對所述命令行程序的命令行參數(shù)進行分析,檢測所述命令行程序中是否存在惡意命令行參數(shù)?!?br>
如果所述命令行程序中存在惡意命令行參數(shù),則說明所述命令行程序的確被惡意利用,在這種情況下,則阻止所述進程的執(zhí)行;如果所述命令行程序中不存在惡意命令行參數(shù),則說明所述命令行程序為正常的系統(tǒng)程序,因此可以執(zhí)行該命令行程序進程。通過上述方法可以避免對正常系統(tǒng)程序產(chǎn)生錯誤的阻止。本發(fā)明實施例的攔截網(wǎng)頁攻擊的方法可以在檢測到當前瀏覽器執(zhí)行進程的程序是命令行程序時,進一步獲取該命令行程序的命令行參數(shù),并對所述命令行程序的命令行參數(shù)進行分析,當分析出所述命令行程序存在惡意命令行參數(shù)時,阻止所述進程的執(zhí)行。由此解決了網(wǎng)頁的惡意攻擊通過運行命令行程序而繞過黑白名單的攔截,最后成功執(zhí)行的惡意程序問題,取得了提高網(wǎng)頁瀏覽的安全性,更加有效地攔截網(wǎng)頁的惡意攻擊的有益效果。參照圖2,示出了根據(jù)本發(fā)明一個實施例的一種攔截網(wǎng)頁攻擊的方法的流程圖,所述方法包括步驟S201,獲取瀏覽器執(zhí)行進程的程序;在本發(fā)明實施例中,采用HOOK機制獲取瀏覽器執(zhí)行進程的程序。windows系統(tǒng)下的編程,消息message的傳遞是貫穿其始終的。HOOK與消息有著非常密切的聯(lián)系,它的中文含義是“鉤子”。HOOK是消息處理中的一個環(huán)節(jié),用于監(jiān)控消息在系統(tǒng)中的傳遞,并在這些消息到達最終的消息處理過程前,處理某些特定的消息。具體的,所述獲取瀏覽器執(zhí)行進程的程序的過程包括對瀏覽器執(zhí)行進程的應用程序接口進行鉤掛(HOOK),獲取瀏覽器執(zhí)行進程的應用程序接口,通過所述應用程序接口獲取瀏覽器執(zhí)行進程的程序。步驟S202,檢測所述瀏覽器執(zhí)行進程的程序是否為黑名單程序或者白名單程序;當所述瀏覽器執(zhí)行進程的程序為白名單程序時,執(zhí)行步驟S203 ;當所述瀏覽器執(zhí)行進程的程序為黑名單程序時,執(zhí)行步驟S206。在獲取到瀏覽器執(zhí)行進程的程序之后,首先對所述程序進行黑白名單的檢測,黑白名單的檢測過程即為特征庫匹配過程。黑名單和白名單都具有其各自對應的特征庫。例如對應于黑名單的特征庫可以是由廠商收集到的惡意程序樣本的特征碼組成,而特征碼則是分析工程師從惡意程序中找到和正當軟件的不同之處,截取一段類似于“搜索關鍵詞”的程序代碼。當查殺過程中,引擎會讀取文件并與特征庫中的所有特征碼“關鍵詞”進行匹配,如果發(fā)現(xiàn)文件程序代碼中包含匹配的特征碼“關鍵詞”,就可以判定該文件程序為黑名單程序。而對應于白名單的特征庫可以由正當軟件的特征碼組成,如果檢測到程序代碼符合白名單特征庫的特征,則說明該程序?qū)儆诎酌麊纬绦颉τ诰唧w的黑白名單的檢測過程,本領域技術人員根據(jù)實際情況進行相應處理即可,本發(fā)明在此不再詳細論述。本發(fā)明旨在針對目前黑白名單的攔截技術中的不足進行處理。例如,當檢測出所述瀏覽器執(zhí)行進程的程序?qū)儆诳尚诺陌酌麊纬绦驎r,根據(jù)現(xiàn)有的技術將直接允許該程序的執(zhí)行,但是該程序在實質(zhì)上也有可能是惡意程序,例如網(wǎng)頁木馬可以通過運行接受命令行參數(shù)的系統(tǒng)程序(即運行命令行程序)繞過黑白名單的攔截,最后成功執(zhí)行惡意程序。因此,本實施例在檢測出所述瀏覽器執(zhí)行進程的程序為白名單程序時,并不是直接允許該程序的執(zhí)行,還要進一步對所述程序進行分析,從而更加準確地判 斷該程序是否為惡意程序,對于具體的分析過程,將在下面進行詳細介紹。而當檢測出所述瀏覽器執(zhí)行進程的程序為黑名單程序時,則不需要再對其進行分析,直接阻止所述進程的執(zhí)行即可。步驟S203,檢測所述瀏覽器執(zhí)行進程的程序是否為命令行程序;當所述瀏覽器執(zhí)行進程的程序為命令行程序時,則執(zhí)行步驟S204,當所述瀏覽器執(zhí)行進程的程序不是命令行程序時,則說明該程序為可信程序,允許該程序進程的執(zhí)行。當檢測出所述瀏覽器執(zhí)行進程的程序為白名單程序時,進一步檢測所述瀏覽器執(zhí)行進程的程序是否為命令行程序,該步驟S203具體通過以下子步驟進行檢測子步驟al,獲取所述瀏覽器執(zhí)行進程的程序名稱;本實施例在這里仍然通過HOOK機制獲取所述瀏覽器執(zhí)行進程的程序名稱,具體包括(I)通過HOOK機制監(jiān)控與所述瀏覽器執(zhí)行進程相關的CreateProcessInternalW函數(shù);利用HOOK 技術對 CreateProcessInternalW 函數(shù)進行內(nèi)聯(lián)掛鉤(inline hook)。(2)通過獲取所述CreateProcessInternalW函數(shù)所執(zhí)行的 IpApplicationName 參數(shù),獲取所述瀏覽器執(zhí)行進程的程序名稱。子步驟a2,判斷所述瀏覽器執(zhí)行進程的程序名稱是否為預設的命令行程序的程序名稱,若是,則判定所述瀏覽器執(zhí)行進程的程序為命令行程序。其中,所述預設的命令行程序為以下任意一種腳本語言解釋器Wscript. exe (接受參數(shù)執(zhí)行指定路徑和地址的vbs,js腳本文件);動態(tài)鏈接庫注冊程序RegSVr32. exe (接受參數(shù)注冊執(zhí)行指定路徑和地址的dll文件);系統(tǒng)命令行解釋程序cmd. exe (接受參數(shù)執(zhí)行任意的命令);文件執(zhí)行程序rundll32. exe dll (接受參數(shù)執(zhí)行指定路徑和地址的dll文件);腳本語言解釋器cscript. exe (接受參數(shù)執(zhí)行指定路徑和地址的vbs,js腳本文件);文件執(zhí)行程序mshta. exe hta (接受參數(shù)執(zhí)行指定路徑和地址的hta文件);定時執(zhí)行程序at. exe (接受參數(shù)定時執(zhí)行指定路徑和地址的文件)。
步驟S204,獲取所述命令行程序運行的命令行參數(shù);步驟S205,對所述命令行程序的命令行參數(shù)進行分析,檢測所述命令行程序是否存在惡意命令行參數(shù);當所述命令行程序存在惡意命令行參數(shù)時,執(zhí)行步驟S206,當所述命令行程序不存在惡意命令行參數(shù)時,則說明所述命令行程序為正常的系統(tǒng)程序,允許該命令行程序進程的執(zhí)行。在本實施例中,所述預設的命令行程序包括存在遞歸調(diào)用的命令行程序和不存在遞歸調(diào)用的命令行程序兩類,本發(fā)明針對不同的命令行程序?qū)?zhí)行不同的操作。其中,所述存在遞歸調(diào)用的命令行程序包括系統(tǒng)命令行解釋程序cmd. exe和定時執(zhí)行程序at. exe ; 所述不存在遞歸調(diào)用的命令行程序包括腳本語言解釋器Wscript. exe、動態(tài)鏈接庫注冊程序Regsvr32. exe、文件執(zhí)行程序rundll32. exe dll、腳本語言解釋器cscript.exe和文件執(zhí)行程序mshta. exe hta。下面,分別在介紹上述兩種情況下的具體操作第一種情況所述命令行程序為不存在遞歸調(diào)用的命令行程序。所述步驟S204中獲取所述命令行程序運行的命令行參數(shù)的具體過程為通過CommandLineToArgvW函數(shù)獲取命令行程序運行的命令行參數(shù)。所述步驟S205中對所述命令行程序的命令行參數(shù)進行分析,檢測所述命令行程序是否存在惡意命令行參數(shù)的具體過程為遍歷所述命令行程序的命令行參數(shù),利用GetLongPathNameW函數(shù)檢測所述命令行參數(shù),獲取執(zhí)行所述命令行程序的文件路徑;如果獲取到完整的文件路徑,則確定所述命令行程序存在惡意命令行參數(shù),此時需要阻止該命令行程序進程的執(zhí)行;如果不能獲取到完整的文件路徑,則說明所述命令行程序不存在惡意命令行參數(shù),此時允許該命令行程序進程的執(zhí)行。例如,對于腳本語言解釋器Wscript. exe程序,其完整的文件路徑為" C:\WIND0WS\System32\WScript.exe" " c:\windows\temp\temp.vbs"對于腳本語言解釋器cscript. exe程序,其完整的文件路徑為" C:\WIND0WS\System32\cscript.exe" " c:\windows\temp\temp.vbs"對于文件執(zhí)行程序mshta. exe hta,其完整的文件路徑為" C:\WIND0WS\system32\mshta.exe" " C:\ax\Help.hta"對于文件執(zhí)行程序rundll32. exe dll,其完整的文件路徑為" C:\WIND0WS\system32\Rundll32.exe" " C:\muma.dll" install對于動態(tài)鏈接庫注冊程序RegSVr32. exe,其完整的文件路徑為" C:\WIND0WS\system32\regsvr32.exe" c:\2fxlm2.dll如果對于上述5種命令行程序,獲取到以上所述的完整的文件路徑,則說明對應的命令行程序存在惡意命令行參數(shù),此時需要阻止該命令行程序進程的執(zhí)行;如果不能獲取到以上所述的完整的文件路徑,則說明對應的命令行程序不存在惡意命令行參數(shù),此時允許該命令行程序進程的執(zhí)行。第二種情況所述命令行程序為存在遞歸調(diào)用的命令行程序。
所述步驟S204中獲取所述命令行程序運行的命令行參數(shù)的具體過程為根據(jù)所述命令行程序中的分隔字符獲取命令行程序運行的命令行參數(shù)。其中,所述分隔字符可以包括空格字符、引號字符、“&”字符和“”字符。具體的,可以通過以下方式進行分析分析命令行中是否存在空格字符ISBLANK(c) (c == L" | |c = = L' \t')分析命令行中是否存在引號字符ISQUOTA(c) (c == L"")
分析命令行中是否存在“&”字符ISAND(c) (c == L' &/ )分析命令行中是否存在“ I ”字符ISPIPE(c) (c == L' I')當然,所述分隔字符還可以為其他字符,本領域技術人員根據(jù)實際情況處理即可,本發(fā)明對此并不加以限制。所述步驟S205中對所述命令行程序的命令行參數(shù)進行分析,檢測所述命令行程序是否存在惡意命令行參數(shù)的具體過程為遍歷所述命令行程序的命令行參數(shù),利用GetLongPathNameW函數(shù)檢測所述命令行參數(shù),獲取執(zhí)行所述命令行程序的文件路徑;如果獲取到完整的文件路徑,則確定所述命令行程序存在惡意命令行參數(shù),此時需要阻止該命令行程序進程的執(zhí)行。如果不能獲取到完整的文件路徑,則判斷所述命令行參數(shù)中是否包括用于標識該命令行程序的字符,若是,則確定所述命令行程序存在惡意命令行參數(shù),此時需要阻止該命令行程序進程的執(zhí)行;如果不包括用于標識該命令行程序的字符,則說明所述命令行程序不存在惡意命令行參數(shù),此時允許該命令行程序進程的執(zhí)行。其中,當所述命令行程序為系統(tǒng)命令行解釋程序cmd. exe時,所述用于標識該命令行程序的字符為cmd字符;當所述命令行程序為定時執(zhí)行程序at. exe時,所述用于標識該命令行程序的字符為at. exe字符。下面,分別針對所述命令行程序為系統(tǒng)命令行解釋程序cmd. exe和定時執(zhí)行程序at. exe的情況進行描述I、所述命令行程序為系統(tǒng)命令行解釋程序cmd. exe其完整的文件路徑為cmd/c " C:\Documents and Settings\user\Local Settings\TemporaryInternet Files\Content. IE5\m720[I]· htm〃如果獲取到上述完整的文件路徑,則確定該系統(tǒng)命令行解釋程序cmd. exe存在惡意命令行參數(shù),此時需要阻止該命令行解釋程序cmd. exe進程的執(zhí)行。如果獲取不到上述完整的文件路徑,例如獲取到的文件路徑為cmd/c " cmd/c C:\D0CUME l\user\L0CALS l\Temp\Temporary InternetFiles\Content. IE5\server[I]. exe",則進一步判斷該命令行解釋程序cmd. exe中是否包括cmd字符,經(jīng)過判斷,上述獲取到的文件路徑中包括cmd字符,因此,確定該系統(tǒng)命令行解釋程序cmd. exe存在惡意命令行參數(shù),此時需要阻止該定時執(zhí)行程序at.exe進程的執(zhí)行。如果經(jīng)過判斷,獲取到的文件路徑中不包括cmd字符,則確定該系統(tǒng)命令行解釋程序cmd. exe不存在惡意命令行參數(shù),因此允許該命令行解釋程序cmd. exe進程的執(zhí)行。2、所述命令行程序為定時執(zhí)行程序at. exe首先,對于該種情況,由于其屬于定時執(zhí)行程序,因此在利用GetLongPathNameW函數(shù)檢測該程序的命令行參數(shù)之前,還需要將所述命令行參數(shù)中的時間參數(shù)忽略。例如,該定時執(zhí)行程序at. exe的完整的文件路徑為At. exe 23:00" c:\muma.exe"在將命令行參數(shù)中的時間參數(shù)忽略之后,獲取的完整的文件路徑應為
c:\muma.exe如果獲取到上述完整的文件路徑,則確定該定時執(zhí)行程序at. exe存在惡意命令行參數(shù),此時需要阻止該定時執(zhí)行程序at. exe進程的執(zhí)行。如果獲取不到上述完整的文件路徑,例如獲取到的文件路徑為At. exe 23:00" At. exe 23: OOc: \muma. exe "將時間參數(shù)忽略之后為At. exe 23: OOc: \muma. exe則進一步判斷該定時執(zhí)行程序at. exe中是否包括at. exe字符,經(jīng)過判斷,上述獲取到的文件路徑中包括at. exe字符,因此,確定該定時執(zhí)行程序at. exe存在惡意命令行參數(shù),此時需要阻止該定時執(zhí)行程序at. exe進程的執(zhí)行。如果經(jīng)過判斷,獲取到的文件路徑中不包括at. exe字符,則確定該定時執(zhí)行程序at. exe不存在惡意命令行參數(shù),因此允許該定時執(zhí)行程序at. exe進程的執(zhí)行。步驟S206,阻止所述進程的執(zhí)行。當在步驟S202中檢測到所述瀏覽器執(zhí)行進程的程序為黑名單程序時,或者在步驟S205中檢測到所述命令行程序存在惡意命令行參數(shù)時,則說明該瀏覽器執(zhí)行進程的程序為惡意程序,此時,則阻止該程序進程的執(zhí)行。最后,需要說明的是,在本實施例中所述的CreateProcessInternalW函數(shù)、CommandLineToArgvff 函數(shù)、GetLongPathNameW 函數(shù)和 GetLongPathNameW 函數(shù)均是微軟提供的一種操作系統(tǒng)函數(shù),為本領域技術人員所熟知,因此本實施例不再詳述。本實施例具體描述了攔截網(wǎng)頁惡意攻擊的過程,通過本實施例所描述的方法提高了網(wǎng)頁瀏覽的安全性,能夠更加有效地攔截網(wǎng)頁的惡意攻擊。參照圖3,示出了根據(jù)本發(fā)明一個實施例的一種攔截網(wǎng)頁攻擊的裝置的結構框圖,所述裝置包括程序獲取模塊301、黑白名單檢測模塊302、程序檢測模塊303、參數(shù)獲取模塊304、參數(shù)檢測模塊305和攔截模塊306。其中,程序獲取模塊301,用于獲取瀏覽器執(zhí)行進程的程序;所述程序獲取模塊301包括接口獲取單元,用于獲取瀏覽器執(zhí)行進程的應用程序接口,通過所述應用程序接口獲取瀏覽器執(zhí)行進程的程序。
黑白名單檢測模塊302,用于在程序檢測模塊檢測所述瀏覽器執(zhí)行進程的程序是否為命令行程序之前,檢測所述瀏覽器執(zhí)行進程的程序是否為黑名單程序或者白名單程序;當所述瀏覽器執(zhí)行進程的程序為黑名單程序時,所述攔截模塊306阻止所述進程的執(zhí)行;當所述瀏覽器執(zhí)行進程的程序為白名單程序時,所述程序檢測模塊303檢測所述瀏覽器執(zhí)行進程的程序是否為命令行程序。程序檢測模塊303,用于檢測所述瀏覽器執(zhí)行進程的程序是否為命令行程序; 所述程序檢測模塊303包括程序名稱獲取單元,用于獲取所述瀏覽器執(zhí)行進程的程序名稱; 判定單元,用于判斷所述瀏覽器執(zhí)行進程的程序名稱是否為預設的命令行程序的程序名稱,若是,則判定所述瀏覽器執(zhí)行進程的程序為命令行程序。其中,所述程序名稱獲取單元包括監(jiān)控子單元,用于監(jiān)控與所述瀏覽器執(zhí)行進程相關的CreateProcessInternalW函數(shù);程序名稱獲取子單元,用于通過獲取所述CreateProcessInternalW函數(shù)所執(zhí)行的IpApplicationName參數(shù),獲取所述瀏覽器執(zhí)行進程的程序名稱。所述預設的命令行程序為以下任意一種腳本語言解釋器Wscript. exe、動態(tài)鏈接庫注冊程序Regsvr32. exe、系統(tǒng)命令行解釋程序cmd. exe、文件執(zhí)行程序rundll32. exe dll、腳本語言解釋器cscript. exe、文件執(zhí)行程序mshta. exe hta和定時執(zhí)行程序at. exe。所述預設的命令行程序包括存在遞歸調(diào)用的命令行程序和不存在遞歸調(diào)用的命令行程序兩類;所述存在遞歸調(diào)用的命令行程序包括系統(tǒng)命令行解釋程序cmd. exe和定時執(zhí)行程序 at. exe ;所述不存在遞歸調(diào)用的命令行程序包括腳本語言解釋器Wscript. exe、動態(tài)鏈接庫注冊程序Regsvr32. exe、文件執(zhí)行程序rundll32. exe dll、腳本語言解釋器cscript.exe和文件執(zhí)行程序mshta. exe hta。參數(shù)獲取模塊304,用于當所述瀏覽器執(zhí)行進程的程序為命令行程序時,獲取所述命令行程序運行的命令行參數(shù);所述參數(shù)獲取模塊304包括第一獲取單元,用于當所述命令行程序為不存在遞歸調(diào)用的命令行程序時,通過CommandLineToArgvff函數(shù)獲取命令行程序運行的命令行參數(shù);第二獲取單元,用于當所述命令行程序為存在遞歸調(diào)用的命令行程序時,根據(jù)所述命令行程序中的分隔字符獲取命令行程序運行的命令行參數(shù)。其中,所述分隔字符包括空格字符、引號字符、“&”字符和“ I ”字符。當然,所述分隔字符還可以為其他字符,本發(fā)明對此并不加以限制。參數(shù)檢測模塊305,用于對所述命令行程序的命令行參數(shù)進行分析,檢測所述命令行程序是否存在惡意命令行參數(shù);
所述參數(shù)檢測模塊305包括第一檢測單元,用于當所述命令行程序為不存在遞歸調(diào)用的命令行程序時,遍歷所述命令行程序的命令行參數(shù),利用GetLongPathNameW函數(shù)檢測所述命令行參數(shù),獲取執(zhí)行所述命令行程序的文件路徑;第一確定單元,用于當?shù)谝粰z測單元獲取到完整的文件路徑,確定所述命令行程序存在惡意命令行參數(shù);第二檢測單元,用于當所述命令行程序為存在遞歸調(diào)用的命令行程序時,遍歷所述命令行程序的命令行參數(shù),利用GetLongPathNameW函數(shù)檢測所述命令行參數(shù),獲取執(zhí)行所述命令行程序的文件路徑;第二確定單元,用于當?shù)诙z測單元獲取到完整的文件路徑時,確定所述命令行程序存在惡意命令行參數(shù);·
第三確定單元,用于第二檢測單元當不能獲取到完整的文件路徑時,判斷所述命令行參數(shù)中是否包括用于標識該命令行程序的字符,若是,則確定所述命令行程序存在惡意命令行參數(shù)。其中,當所述命令行程序為命令行程序cmd. exe時,所述用于定義該命令行程序名稱的字符為cmd字符;當所述命令行程序為定時執(zhí)行程序at. exe時,所述用于定義該命令行程序名稱的字符為at. exe字符。所述參數(shù)檢測模塊305還包括忽略單元,用于當所述命令行程序為定時執(zhí)行程序at.exe時,在利用GetLongPathNameff函數(shù)檢測所述命令行參數(shù)之前,將所述命令行參數(shù)中的時間參數(shù)忽略。所述裝置還包括攔截模塊306,用于當所述命令行程序存在惡意命令行參數(shù)時,阻止所述進程的執(zhí)行。對于上述裝置實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關之處參見圖I和圖2所示方法實施例的部分說明即可。本發(fā)明實施例的攔截網(wǎng)頁攻擊的裝置可以在檢測到當前瀏覽器執(zhí)行進程的程序是命令行程序時,進一步獲取該命令行程序的命令行參數(shù),并對所述命令行程序的命令行參數(shù)進行分析,當分析出所述命令行程序存在惡意命令行參數(shù)時,阻止所述進程的執(zhí)行。由此解決了網(wǎng)頁的惡意攻擊通過運行命令行程序而繞過黑白名單的攔截,最后成功執(zhí)行的惡意程序問題,取得了提高網(wǎng)頁瀏覽的安全性,更加有效地攔截網(wǎng)頁的惡意攻擊的有益效果。基于上述攔截網(wǎng)頁攻擊的裝置實施例,本發(fā)明實施例還提供了一種包含該裝置的客戶端設備。所述客戶端設備在某一進程執(zhí)行時,通過獲取瀏覽器執(zhí)行進程的程序;檢測所述瀏覽器執(zhí)行進程的程序是否為命令行程序;當所述瀏覽器執(zhí)行進程的程序為命令行程序時,獲取所述命令行程序運行的命令行參數(shù);對所述命令行程序的命令行參數(shù)進行分析,檢測所述命令行程序是否存在惡意命令行參數(shù);當所述命令行程序存在惡意命令行參數(shù)時,阻止所述進程的執(zhí)行。從而解決了網(wǎng)頁的惡意攻擊通過運行命令行程序而繞過黑白名單的攔截,最后成功執(zhí)行的惡意程序問題,提高了網(wǎng)頁瀏覽的安全性,能夠更加有效地攔截網(wǎng)頁的惡意攻擊。本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設備固有相關。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構造這類系統(tǒng)所要求的結構是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應當明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結構和技術,以便不模糊對本說明書的理解。類似地,應當理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施 例、圖、或者對其的描述中。然而,并不應將該公開的方法解釋成反映如下意圖即所要求保護的本發(fā)明要求比在每個權利要求中所明確記載的特征更多的特征。更確切地說,如下面的權利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式
的權利要求書由此明確地并入該具體實施方式
,其中每個權利要求本身都作為本發(fā)明的單獨實施例。本領域那些技術人員可以理解,可以對實施例中的設備中的模塊進行自適應性地改變并且把它們設置在與該實施例不同的一個或多個設備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。此外,本領域的技術人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領域的技術人員應當理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的攔截網(wǎng)頁攻擊的設備中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。應該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領域技術人員在不脫離所附權利要求的范圍的情況下可設計出替換實施例。在權利要求中,不應將位于括號之間的任何參考符號構造成對權利要求的限制。單詞“包含”不排除存在未列在權利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現(xiàn)。在列舉了 若干裝置的單元權利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
權利要求
1.一種攔截網(wǎng)頁攻擊的方法,包括 獲取瀏覽器執(zhí)行進程的程序; 檢測所述瀏覽器執(zhí)行進程的程序是否為命令行程序; 當所述瀏覽器執(zhí)行進程的程序為命令行程序時,獲取所述命令行程序運行的命令行參數(shù); 對所述命令行程序的命令行參數(shù)進行分析,檢測所述命令行程序是否存在惡意命令行參數(shù); 當所述命令行程序存在惡意命令行參數(shù)時,阻止所述進程的執(zhí)行。
2.根據(jù)權利要求I所述的方法,所述獲取瀏覽器執(zhí)行進程的程序,包括 獲取瀏覽器執(zhí)行進程的應用程序接口,通過所述應用程序接口獲取瀏覽器執(zhí)行進程的程序。
3.根據(jù)權利要求I所述的方法,所述檢測所述瀏覽器執(zhí)行進程的程序是否為命令行程序,包括 獲取所述瀏覽器執(zhí)行進程的程序名稱; 判斷所述瀏覽器執(zhí)行進程的程序名稱是否為預設的命令行程序的程序名稱,若是,則判定所述瀏覽器執(zhí)行進程的程序為命令行程序。
4.根據(jù)權利要求3所述的方法,所述獲取所述瀏覽器執(zhí)行進程的程序名稱,包括 監(jiān)控與所述瀏覽器執(zhí)行進程相關的CreateProcessInternalW函數(shù); 通過獲取所述CreateProcessInternalW函數(shù)所執(zhí)行的IpApplicationName參數(shù),獲取所述瀏覽器執(zhí)行進程的程序名稱。
5.根據(jù)權利要求3所述的方法,所述預設的命令行程序為以下任意一種 腳本語言解釋器Wscript. exe、動態(tài)鏈接庫注冊程序Regsvr32. exe、系統(tǒng)命令行解釋程序cmd. exe、文件執(zhí)行程序rundll32. exe dll、腳本語言解釋器cscript. exe、文件執(zhí)行程序mshta. exe hta和定時執(zhí)行程序at. exe。
6.根據(jù)權利要求5所述的方法, 所述預設的命令行程序包括存在遞歸調(diào)用的命令行程序和不存在遞歸調(diào)用的命令行程序兩類; 所述存在遞歸調(diào)用的命令行程序包括系統(tǒng)命令行解釋程序cmd. exe和定時執(zhí)行程序at. exe ; 所述不存在遞歸調(diào)用的命令行程序包括腳本語言解釋器Wscript. exe、動態(tài)鏈接庫注冊程序Regsvr32. exe、文件執(zhí)行程序rundll32. exe dll、腳本語言解釋器cscript. exe和文件執(zhí)行程序mshta. exe hta。
7.根據(jù)權利要求I或6所述的方法,當所述命令行程序為不存在遞歸調(diào)用的命令行程序時,所述獲取所述命令行程序運行的命令行參數(shù),包括 通過Co_andLineToArgvW函數(shù)獲取命令行程序運行的命令行參數(shù)。
8.根據(jù)權利要求I或6所述的方法,當所述命令行程序為不存在遞歸調(diào)用的命令行程序時,所述對所述命令行程序的命令行參數(shù)進行分析,檢測所述命令行程序是否存在惡意命令行參數(shù),包括 遍歷所述命令行程序的命令行參數(shù),利用GetLongPathNameW函數(shù)檢測所述命令行參數(shù),獲取執(zhí)行所述命令行程序的文件路徑; 如果獲取到完整的文件路徑,則確定所述命令行程序存在惡意命令行參數(shù)。
9.根據(jù)權利要求I或6所述的方法,當所述命令行程序為存在遞歸調(diào)用的命令行程序時,所述獲取所述命令行程序運行的命令行參數(shù),包括 根據(jù)所述命令行程序中的分隔字符獲取命令行程序運行的命令行參數(shù)。
10.根據(jù)權利要求9所述的方法,所述分隔字符包括空格字符、引號字符、“&”字符和“I”字符。
11.根據(jù)權利要求I或6所述的方法,當所述命令行程序為存在遞歸調(diào)用的命令行程序時,所述對所述命令行程序的命令行參數(shù)進行分析,檢測所述命令行程序是否存在惡意命令行參數(shù),包括 遍歷所述命令行程序的命令行參數(shù),利用GetLongPathNameW函數(shù)檢測所述命令行參數(shù),獲取執(zhí)行所述命令行程序的文件路徑; 如果獲取到完整的文件路徑,則確定所述命令行程序存在惡意命令行參數(shù); 如果不能獲取到完整的文件路徑,則判斷所述命令行參數(shù)中是否包括用于標識該命令行程序的字符,若是,則確定所述命令行程序存在惡意命令行參數(shù)。
12.根據(jù)權利要求11所述的方法, 當所述命令行程序為系統(tǒng)命令行解釋程序cmd. exe時,所述用于標識該命令行程序的字符為cmd字符; 當所述命令行程序為定時執(zhí)行程序at. exe時,所述用于標識該命令行程序的字符為at. exe 字符。
13.根據(jù)權利要求11所述的方法,當所述命令行程序為定時執(zhí)行程序at.exe時,在利用GetLongPathNameW函數(shù)檢測所述命令行參數(shù)之前,還包括 將所述命令行參數(shù)中的時間參數(shù)忽略。
14.根據(jù)權利要求I所述的方法,在檢測所述瀏覽器執(zhí)行進程的程序是否為命令行程序之前,還包括 檢測所述瀏覽器執(zhí)行進程的程序是否為黑名單程序或者白名單程序; 當所述瀏覽器執(zhí)行進程的程序為黑名單程序時,阻止所述進程的執(zhí)行; 當所述瀏覽器執(zhí)行進程的程序為白名單程序時,執(zhí)行檢測所述瀏覽器執(zhí)行進程的程序是否為命令行程序的步驟。
15.一種攔截網(wǎng)頁攻擊的裝置,包括 程序獲取模塊,用于獲取瀏覽器執(zhí)行進程的程序; 程序檢測模塊,用于檢測所述瀏覽器執(zhí)行進程的程序是否為命令行程序; 參數(shù)獲取模塊,用于當所述瀏覽器執(zhí)行進程的程序為命令行程序時,獲取所述命令行程序運行的命令行參數(shù); 參數(shù)檢測模塊,用于對所述命令行程序的命令行參數(shù)進行分析,檢測所述命令行程序是否存在惡意命令行參數(shù); 攔截模塊,用于當所述命令行程序存在惡意命令行參數(shù)時,阻止所述進程的執(zhí)行。
16.根據(jù)權利要求15所述的裝置,所述程序檢測模塊包括 程序名稱獲取單元,用于獲取所述瀏覽器執(zhí)行進程的程序名稱;判定單元,用于判斷所述瀏覽器執(zhí)行進程的程序名稱是否為預設的命令行程序的程序名稱,若是,則判定所述瀏覽器執(zhí)行進程的程序為命令行程序。
17.根據(jù)權利要求16所述的裝置,所述預設的命令行程序為以下任意一種 腳本語言解釋器Wscript. exe、動態(tài)鏈接庫注冊程序Regsvr32. exe、系統(tǒng)命令行解釋程序cmd. exe、文件執(zhí)行程序rundll32. exe dll、腳本語言解釋器cscript. exe、文件執(zhí)行程序mshta. exe hta和定時執(zhí)行程序at. exe。
18.根據(jù)權利要求17所述的裝置, 所述預設的命令行程序包括存在遞歸調(diào)用的命令行程序和不存在遞歸調(diào)用的命令行程序兩類; 所述存在遞歸調(diào)用的命令行程序包括系統(tǒng)命令行解釋程序cmd. exe和定時執(zhí)行程序at. exe ; 所述不存在遞歸調(diào)用的命令行程序包括腳本語言解釋器Wscript. exe、動態(tài)鏈接庫注冊程序Regsvr32. exe、文件執(zhí)行程序rundll32. exe dll、腳本語言解釋器cscript. exe和文件執(zhí)行程序mshta. exe hta。
19.根據(jù)權利要求15或18所述的裝置,所述參數(shù)獲取模塊包括 第一獲取單元,用于當所述命令行程序為不存在遞歸調(diào)用的命令行程序時,通過CommandLineToArgvff函數(shù)獲取命令行程序運行的命令行參數(shù)。
20.根據(jù)權利要求15或18所述的裝置,所述參數(shù)檢測模塊包括 第一檢測單元,用于當所述命令行程序為不存在遞歸調(diào)用的命令行程序時,遍歷所述命令行程序的命令行參數(shù),利用GetLongPathNameW函數(shù)檢測所述命令行參數(shù),獲取執(zhí)行所述命令行程序的文件路徑; 第一確定單元,用于當?shù)谝粰z測單元獲取到完整的文件路徑,確定所述命令行程序存在惡意命令行參數(shù)。
21.根據(jù)權利要求15或18所述的裝置,所述參數(shù)獲取模塊包括 第二獲取單元,用于當所述命令行程序為存在遞歸調(diào)用的命令行程序時,根據(jù)所述命令行程序中的分隔字符獲取命令行程序運行的命令行參數(shù)。
22.根據(jù)權利要求15或18所述的裝置,所述參數(shù)檢測模塊包括 第二檢測單元,用于當所述命令行程序為存在遞歸調(diào)用的命令行程序時,遍歷所述命令行程序的命令行參數(shù),利用GetLongPathNameW函數(shù)檢測所述命令行參數(shù),獲取執(zhí)行所述命令行程序的文件路徑; 第二確定單元,用于當?shù)诙z測單元獲取到完整的文件路徑時,確定所述命令行程序存在惡意命令行參數(shù); 第三確定單元,用于第二檢測單元當不能獲取到完整的文件路徑時,判斷所述命令行參數(shù)中是否包括用于標識該命令行程序的字符,若是,則確定所述命令行程序存在惡意命令行參數(shù)。
23.根據(jù)權利要求15所述的裝置,還包括 黑白名單檢測模塊,用于在程序檢測模塊檢測所述瀏覽器執(zhí)行進程的程序是否為命令行程序之前,檢測所述瀏覽器執(zhí)行進程的程序是否為黑名單程序或者白名單程序; 當所述瀏覽器執(zhí)行進程的程序為黑名單程序時,所述攔截模塊阻止所述進程的執(zhí)行;當所述瀏覽器執(zhí)行進程的程序為白名單程序時,所述程序檢測模塊檢測所述瀏覽器執(zhí)行進程的程序是否為命令行程序。
24.—種客戶端設備,包括如上述權利要求15至23任一所述的攔截網(wǎng)頁攻擊的裝置。
全文摘要
本發(fā)明公開了一種攔截網(wǎng)頁攻擊的方法、裝置和客戶端設備,以解決網(wǎng)頁攻擊通過運行命令行程序而繞過黑白名單的攔截,最后成功執(zhí)行惡意程序的問題。其中,所述方法包括獲取瀏覽器執(zhí)行進程的程序;檢測所述瀏覽器執(zhí)行進程的程序是否為命令行程序;當所述瀏覽器執(zhí)行進程的程序為命令行程序時,獲取所述命令行程序運行的命令行參數(shù);對所述命令行程序的命令行參數(shù)進行分析,檢測所述命令行程序是否存在惡意命令行參數(shù);當所述命令行程序存在惡意命令行參數(shù)時,阻止所述進程的執(zhí)行。本發(fā)明提高了網(wǎng)頁瀏覽的安全性,能夠更加有效地攔截網(wǎng)頁的惡意攻擊。
文檔編號H04L29/06GK102916937SQ20121033555
公開日2013年2月6日 申請日期2012年9月11日 優(yōu)先權日2012年9月11日
發(fā)明者宋申雷, 劉起, 肖鵬 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司