亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種提供數(shù)據(jù)交互服務(wù)的服務(wù)器的漏洞檢測(cè)方法及工具的制作方法

文檔序號(hào):7861616閱讀:289來源:國知局
專利名稱:一種提供數(shù)據(jù)交互服務(wù)的服務(wù)器的漏洞檢測(cè)方法及工具的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)技術(shù),尤其涉及一種提供數(shù)據(jù)交互服務(wù)的服務(wù)器的漏洞檢測(cè)方法及工具。
背景技術(shù)
目前,一些本地運(yùn)行的應(yīng)用程序需要與服務(wù)器進(jìn)行持續(xù)的數(shù)據(jù)交互,才能實(shí)現(xiàn)該應(yīng)用程序的運(yùn)行需求,在所述應(yīng)用程序與所述服務(wù)器進(jìn)行持續(xù)的數(shù)據(jù)交互的過程中,通常該應(yīng)用程序設(shè)計(jì)為根據(jù)用戶操作離散地生成描述數(shù)據(jù),并封裝在封包內(nèi)發(fā)送給服務(wù)器,以描述所述用戶操作的類型、屬性,相應(yīng)地,所述服務(wù)器根據(jù)所述封包更新所述用戶對(duì)應(yīng)的賬號(hào)在該服務(wù)器內(nèi)的對(duì)應(yīng)的數(shù)據(jù)。一種典型的實(shí)施場(chǎng)景中,所述應(yīng)用程序是網(wǎng)絡(luò)游戲的客戶端程序,該客戶端程序在終端的瀏覽器運(yùn)行或在終端中獨(dú)立安裝后運(yùn)行,并通過互聯(lián)網(wǎng)與 遠(yuǎn)程服務(wù)器通信以實(shí)現(xiàn)所述網(wǎng)絡(luò)游戲的游戲過程。在該客戶端程序的正常運(yùn)行過程中,每當(dāng)用戶針對(duì)該客戶端程序進(jìn)行操作,該客戶端程序都會(huì)生成相應(yīng)的描述數(shù)據(jù)并發(fā)送給所述遠(yuǎn)程服務(wù)器,針對(duì)上述過程,某些惡意的攔截篡改所述描述數(shù)據(jù)的行為會(huì)對(duì)所述客戶端程序與遠(yuǎn)程服務(wù)器的工作的正常運(yùn)行帶來惡性影響,使所述遠(yuǎn)程服務(wù)器端接收到虛假的描述數(shù)據(jù),尤其地,所述描述數(shù)據(jù)篡改后的數(shù)據(jù)溢出會(huì)影響遠(yuǎn)程服務(wù)器的正常工作,嚴(yán)重情況下甚至?xí)?dǎo)致遠(yuǎn)程服務(wù)器的服務(wù)癱瘓,同時(shí)所述應(yīng)用程序也因此中斷運(yùn)行,即遠(yuǎn)程服務(wù)器具有針對(duì)所述描述數(shù)據(jù)的數(shù)據(jù)溢出的邏輯漏洞。事實(shí)上,針對(duì)網(wǎng)絡(luò)游戲客戶端程序的用戶操作多種多樣,因此相應(yīng)的描述數(shù)據(jù)類型也較為復(fù)雜,在搭建所述遠(yuǎn)程服務(wù)器的過程中難以完全對(duì)所有的描述數(shù)據(jù)設(shè)置防漏洞處理邏輯,即在搭建所述遠(yuǎn)程服務(wù)器的過程中難以預(yù)測(cè)可能出現(xiàn)的由于描述數(shù)據(jù)的數(shù)據(jù)溢出造成的漏洞。因此,期望出現(xiàn)一種測(cè)試方法和工具對(duì)遠(yuǎn)程服務(wù)器進(jìn)行漏洞測(cè)試以盡可能地找到該遠(yuǎn)程服務(wù)器的漏洞,及時(shí)對(duì)其進(jìn)行修補(bǔ)以提升遠(yuǎn)程服務(wù)器的容錯(cuò)率和安全性。

發(fā)明內(nèi)容
為實(shí)現(xiàn)本發(fā)明的目的提供了一種提供數(shù)據(jù)交互服務(wù)的服務(wù)器的漏洞檢測(cè)方法及工具。根據(jù)本發(fā)明的一方面,提供了一種提供數(shù)據(jù)交互服務(wù)的服務(wù)器的漏洞檢測(cè)方法,該方法包括以下步驟提供數(shù)據(jù)交互服務(wù)的服務(wù)器與本地運(yùn)行的應(yīng)用程序建立數(shù)據(jù)通信連接;攔截所述應(yīng)用程序通過所述數(shù)據(jù)通信連接向所述服務(wù)器發(fā)送的封包;暫停所述應(yīng)用程序的全部或部分線程,對(duì)所述封包內(nèi)攜帶的特定數(shù)據(jù)進(jìn)行修改;恢復(fù)所述應(yīng)用程序被暫停的線程,以將修改后的所述封包發(fā)送至所述服務(wù)器;根據(jù)所述服務(wù)器收到所述修改后的封包后針對(duì)所述應(yīng)用程序產(chǎn)生的響應(yīng)情況,判斷所述服務(wù)器是否存在漏洞。根據(jù)本發(fā)明的另一方面,提供了一種提供數(shù)據(jù)交互服務(wù)的服務(wù)器的漏洞檢測(cè)工具,包括封包攔截模塊,在提供數(shù)據(jù)交互服務(wù)的服務(wù)器與本地運(yùn)行的應(yīng)用程序建立數(shù)據(jù)通信連接后,用于攔截所述應(yīng)用程序通過所述數(shù)據(jù)通信連接向所述服務(wù)器發(fā)送的封包;線程控制模塊,用于暫停所述應(yīng)用程序的全部或部分線程,對(duì)所述封包內(nèi)攜帶的特定數(shù)據(jù)進(jìn)行修改,以及恢復(fù)所述應(yīng)用程序被暫停的線程,以便該線程將修改后的所述封包發(fā)送至所述服務(wù)器。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)可定制性地針對(duì)特定數(shù)據(jù)修改的情況對(duì)服務(wù)器進(jìn)行檢測(cè),快速準(zhǔn)確地找出服務(wù)器自身存在的漏洞。


通過閱讀參照以下附圖所作的對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本發(fā)明的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯 圖I是根據(jù)本發(fā)明的提供數(shù)據(jù)交互服務(wù)的服務(wù)器的漏洞檢測(cè)方法流程圖;圖2為根據(jù)本發(fā)明的提供數(shù)據(jù)交互服務(wù)的服務(wù)器的漏洞檢測(cè)工具的示意圖。附圖中相同或相似的附圖標(biāo)記代表相同或相似的部件。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明的實(shí)施例作詳細(xì)描述。參考圖1,圖I是根據(jù)本發(fā)明的提供數(shù)據(jù)交互服務(wù)的服務(wù)器的漏洞檢測(cè)方法流程圖,該檢測(cè)方法包括步驟S101,提供數(shù)據(jù)交互服務(wù)的服務(wù)器與本地運(yùn)行的應(yīng)用程序建立數(shù)據(jù)通信連接。具體地,在本地終端上運(yùn)行應(yīng)用程序,并使該應(yīng)用程序與提供相應(yīng)數(shù)據(jù)交互服務(wù)的服務(wù)器建立數(shù)據(jù)通信連接。其中,所述本地終端可以是計(jì)算機(jī)、平板電腦、智能手機(jī)或其他具有數(shù)據(jù)通信功能的電子設(shè)備。所述應(yīng)用程序是運(yùn)行在本地終端上、并且需要通過與服務(wù)器交互才能實(shí)現(xiàn)其功能的程序,其可以是基于瀏覽器(Browser)運(yùn)行的應(yīng)用程序,例如網(wǎng)頁Flash游戲、網(wǎng)頁3D游戲;也可以設(shè)計(jì)為客戶端(Client)形式的應(yīng)用程序,例如網(wǎng)絡(luò)游戲軟件客戶端,該客戶端安裝在終端提供的合適的操作系統(tǒng)內(nèi),并調(diào)用所述終端的軟件資源和硬件資源以實(shí)現(xiàn)正常運(yùn)行。與應(yīng)用程序相匹配的服務(wù)器要針對(duì)該應(yīng)用程序所實(shí)現(xiàn)的功能提供相應(yīng)的數(shù)據(jù)交互服務(wù),典型地,該應(yīng)用程序與所述服務(wù)器之間通過局域網(wǎng)或互聯(lián)網(wǎng)相連。在本實(shí)施例中,所述應(yīng)用程序?yàn)榫W(wǎng)頁游戲,所述提供數(shù)據(jù)交互服務(wù)則為針對(duì)所述網(wǎng)頁游戲的數(shù)據(jù)交互服務(wù),所述提供數(shù)據(jù)交互服務(wù)的服務(wù)器則為網(wǎng)頁游戲服務(wù)器。本領(lǐng)域的技術(shù)人員可以理解的是,上述舉例僅為示意,本發(fā)明也適用于提供其他數(shù)據(jù)交互服務(wù)的服務(wù)器,為了簡明起見,在此不再一一列舉。步驟S102,攔截所述應(yīng)用程序通過所述數(shù)據(jù)通信連接向所述服務(wù)器發(fā)送的封包。具體地,應(yīng)用程序與提供相應(yīng)數(shù)據(jù)交互服務(wù)的服務(wù)器之間的數(shù)據(jù)通信是以封包的形式進(jìn)行的。以網(wǎng)頁游戲?yàn)槔?,?dāng)游戲人物向敵人開火時(shí),開火行為、火力強(qiáng)度等數(shù)據(jù)信息會(huì)以一定格式被記錄在封包內(nèi),該封包發(fā)送至網(wǎng)頁游戲服務(wù)器后,該服務(wù)器將根據(jù)封包內(nèi)攜帶的數(shù)據(jù)信息進(jìn)行相應(yīng)的響應(yīng)。通常情況下,封包內(nèi)除了包括和應(yīng)用程序執(zhí)行行為相關(guān)的數(shù)據(jù)信息外,還包含數(shù)據(jù)信息要發(fā)送到的目的地址、數(shù)據(jù)信息發(fā)送的源地址以及一些相關(guān)的控制信息等。應(yīng)用程序需要調(diào)用特定的函數(shù)來發(fā)送封包,例如調(diào)用Windows平臺(tái)下的Send、WSASencUSendt0等函數(shù)。為了攔截應(yīng)用程序發(fā)送的封包并進(jìn)行修改,首先需要標(biāo)記所述應(yīng)用程序調(diào)用的特定函數(shù)(通常也稱為與函數(shù)掛鉤)。需要說明的是,如果應(yīng)用程序?qū)Υl(fā)送的數(shù)據(jù)采用加密算法進(jìn)行加密,則需要獲取該應(yīng)用程序?qū)λ鎏囟ê瘮?shù)進(jìn)行加密前該特定函數(shù)的明文,然后對(duì)該特定函數(shù)的明文進(jìn)行標(biāo)記;如果應(yīng)用程序?qū)Υl(fā)送的數(shù)據(jù)未采用加密算法,則可以直接對(duì)該特定函數(shù)的明文進(jìn)行標(biāo)記。對(duì)應(yīng)用程序調(diào)用的特定函數(shù)進(jìn)行標(biāo)記后,則可以去截獲與該特定函數(shù)封包相關(guān)的封包。在一些情況下,如果僅僅需要對(duì)應(yīng)用程序運(yùn)行過程中的某一特定行為進(jìn)行檢測(cè),例如檢測(cè)服務(wù)器對(duì)游戲人物開火行為的響應(yīng)是否正常,則需要對(duì)應(yīng)用程序發(fā)送的封包進(jìn)行過濾,獲取并攔截與待檢測(cè)行為相關(guān)的目標(biāo)封包。在封包所攜帶的數(shù)據(jù)信息中,包括一個(gè)特征碼,該特征碼用于標(biāo)識(shí)應(yīng)用程序在運(yùn)行中的行為。應(yīng)用程序不同的行為對(duì)應(yīng)不同的特征碼,服務(wù)器收到封包后,根據(jù)封包內(nèi)的特征碼就可以確定應(yīng)用程序執(zhí)行了什么行為,然后做出相應(yīng)的響應(yīng)。仍以網(wǎng)頁游戲?yàn)槔?,如果游戲人物開火行為的特征碼為FFF0,游戲人物前進(jìn)行為的特征碼為1110,那么游戲人物開火后,網(wǎng)頁游戲發(fā)送給服務(wù)器的封包其特征碼即為FFF0,而服務(wù)器如果收到的封包其特征碼為1110,則說明游戲人物正在前進(jìn)。其中,應(yīng)用程序的行為與其相對(duì)應(yīng)的特征碼之間的關(guān)系可以通過統(tǒng)計(jì)分析而獲得。如此一來,當(dāng)需要對(duì)應(yīng)用程序運(yùn)行過程中的某一特定行為進(jìn)行檢測(cè)時(shí),將與該特定行為對(duì)應(yīng)的特征碼作為預(yù)設(shè)的特征碼,并根據(jù)該預(yù)設(shè)的特征碼從應(yīng)用程序所發(fā)送的封包中篩選出目標(biāo)封包,并攔截該目標(biāo)封包。仍以上述網(wǎng)頁游戲?yàn)槔?,需要檢測(cè)游戲人物執(zhí)行開火行為后網(wǎng)頁游戲服務(wù)器是否可以正常響應(yīng),則以FFFO為預(yù)設(shè)的特征碼對(duì)所有封包進(jìn)行篩選,一旦發(fā)現(xiàn)特征碼同樣為FFFO的封包,則將該封包攔截下來。步驟S103,暫停所述應(yīng)用程序的全部或部分線程,對(duì)所述封包內(nèi)攜帶的特定數(shù)據(jù) 進(jìn)行修改。具體地,應(yīng)用程序在運(yùn)行的過程中,通常需要同時(shí)執(zhí)行多個(gè)線程來實(shí)現(xiàn)不同的任務(wù)。其中,與被攔截的封包相關(guān)的線程定義為黑名單線程。當(dāng)封包被攔截后,以該封包所攜帶的特征碼為篩選標(biāo)準(zhǔn),從應(yīng)用程序的全部線程中篩選出與該封包具有相同特征碼的線程,該線程即為黑名單線程。為了達(dá)到對(duì)封包進(jìn)行修改的目的,首先需要暫停黑名單線程,使應(yīng)用程序停止對(duì)該封包的操作,然后對(duì)封包內(nèi)攜帶的特定數(shù)據(jù)進(jìn)行修改。通常情況下,通過預(yù)先的統(tǒng)計(jì)分析,可以確定封包所攜帶的特定數(shù)據(jù)在該封包內(nèi)的偏移量。仍以網(wǎng)頁游戲?yàn)槔?,在與開火行為相對(duì)應(yīng)的封包中,偏移量為5的數(shù)據(jù)為開火強(qiáng)度,而在與前進(jìn)行為相對(duì)應(yīng)的封包中,偏移量為6的數(shù)據(jù)為前行步數(shù),等等。如此一來,攔截封包后,只需根據(jù)預(yù)定的偏移量對(duì)封包內(nèi)相應(yīng)的數(shù)據(jù)進(jìn)行修改即可。在修改的時(shí)候,需要使修改后的該特定數(shù)據(jù)超出其正常范圍,才能達(dá)到對(duì)服務(wù)器漏洞檢測(cè)的目的。修改的方式包括手動(dòng)修改或者自動(dòng)修改。但是,在線程的執(zhí)行需要遵循一定順序的情況下,如果某些線程必須在黑名單線程執(zhí)行后才能執(zhí)行,那么,就不能僅僅暫停黑名單線程。在這種情況下,除了暫停黑名單線程,還需要暫停在執(zhí)行邏輯上與黑名單線程相關(guān)的其他線程。當(dāng)然了,也可以暫停正在運(yùn)行的全部線程。線程暫停后,對(duì)封包內(nèi)的特定數(shù)據(jù)進(jìn)行修改,修改的方法與前述相同,在此不再贅述。步驟S104,恢復(fù)所述應(yīng)用程序被暫停的線程,以將修改后的所述封包發(fā)送至所述服務(wù)器。具體地,完成對(duì)封包內(nèi)特定數(shù)據(jù)的修改后,恢復(fù)應(yīng)用程序被暫停的線程。S卩,若前述步驟中將全部線程暫停,則恢復(fù)所述全部線程;若前述步驟僅暫停黑名單線程,則恢復(fù)所述黑名單線程。線程恢復(fù)后,應(yīng)用程序?qū)⒅匦抡_\(yùn)行,繼續(xù)對(duì)修改后的封包進(jìn)行處理。對(duì)于采用加密算法的應(yīng)用程序,需要首先對(duì)封包內(nèi)的數(shù)據(jù)進(jìn)行加密,然后將加密后的封包通過數(shù)據(jù)通信連接發(fā)送至服務(wù)器。對(duì)于未采用加密算法的應(yīng)用程序,則直接將修改后的封包進(jìn)行發(fā)送即可。步驟S105,根據(jù)所述服務(wù)器收到所述修改后的封包后針對(duì)所述應(yīng)用程序產(chǎn)生的響 應(yīng)情況,判斷所述服務(wù)器是否存在漏洞。具體地,服務(wù)器收到應(yīng)用程序發(fā)送的修改后的封包后,將根據(jù)該封包內(nèi)的數(shù)據(jù)做出響應(yīng)。由于封包內(nèi)被修改的數(shù)據(jù)已經(jīng)超出了其正常的數(shù)值范圍,那么,當(dāng)服務(wù)器針對(duì)應(yīng)用程序產(chǎn)生如下響應(yīng)情況時(shí),可以判斷該服務(wù)器存在漏洞(I)服務(wù)器未能檢測(cè)出封包內(nèi)存在異常的數(shù)據(jù),繼續(xù)正常對(duì)應(yīng)用程序提供服務(wù),(2)服務(wù)器在處理封包內(nèi)異常數(shù)據(jù)的過程中產(chǎn)生錯(cuò)誤,無法繼續(xù)正常工作,對(duì)運(yùn)行在多個(gè)不同終端上的所述應(yīng)用程序均停止響應(yīng)(也就是通常所說的服務(wù)器癱瘓),從而導(dǎo)致正在使用該應(yīng)用程序的所有用戶無法繼續(xù)正常使用。當(dāng)出現(xiàn)上述兩種情況時(shí),說明了服務(wù)器自身存在一定的漏洞,不能對(duì)異常數(shù)據(jù)做出正確的響應(yīng),因此需要服務(wù)器的開發(fā)者對(duì)其進(jìn)行相應(yīng)的修正。如果服務(wù)器收到數(shù)據(jù)異常的封包后,向應(yīng)用程序提示異常信息、或者僅僅停止對(duì)該應(yīng)用程序的響應(yīng),則認(rèn)為服務(wù)器在對(duì)該封包的處理方面不存在漏洞。進(jìn)一步地,當(dāng)判斷服務(wù)器存在漏洞后,記錄導(dǎo)致服務(wù)器異常的行為信息,形成存儲(chǔ)日志。其中,該存儲(chǔ)日志包括導(dǎo)致服務(wù)器異常的封包、該封包內(nèi)被修改的特定數(shù)據(jù)、以及針對(duì)所述特定數(shù)據(jù)的修改行為的描述信息。仍以檢測(cè)游戲人物開火行為為例,與開火行為相對(duì)應(yīng)的封包內(nèi)偏移量為5的特定數(shù)據(jù)表示開火強(qiáng)度,在攔截了與該開火行為相對(duì)應(yīng)的封包后,將封包內(nèi)偏移量為5的數(shù)據(jù)10改為異常值FF,然后發(fā)送至服務(wù)器并引發(fā)了服務(wù)器的異常響應(yīng),此時(shí),將該封包所攜帶的數(shù)據(jù)、特定數(shù)據(jù)的偏移量(即5)、以及將特定數(shù)據(jù)修改后的結(jié)果(即FF)記錄至存儲(chǔ)日志內(nèi)。當(dāng)然,存儲(chǔ)日志不僅僅限于上述內(nèi)容,根據(jù)實(shí)際情況還可以包括其他信息,例如對(duì)形成封包的行為的描述等。存儲(chǔ)日志的存在利于服務(wù)器的開發(fā)人員快速重現(xiàn)異常、定位漏洞并進(jìn)行相應(yīng)地修改。使用本發(fā)明所提供的檢測(cè)方法可定制性地針對(duì)特定數(shù)據(jù)修改的情況對(duì)服務(wù)器進(jìn)行檢測(cè),并快速準(zhǔn)確地找出服務(wù)器自身存在的漏洞。相應(yīng)地,本發(fā)明還提供了一種提供數(shù)據(jù)交互服務(wù)的服務(wù)器的漏洞檢測(cè)工具。圖2為根據(jù)本發(fā)明的提供數(shù)據(jù)交互服務(wù)的服務(wù)器的漏洞檢測(cè)工具的示意圖,如圖所示,所述檢測(cè)工具20包括封包攔截模塊201,在提供數(shù)據(jù)交互服務(wù)的服務(wù)器與本地運(yùn)行的應(yīng)用程序建立數(shù)據(jù)通信連接后,用于攔截所述應(yīng)用程序通過所述數(shù)據(jù)通信連接向所述服務(wù)器發(fā)送的封包;
線程控制模塊202,用于暫停所述應(yīng)用程序的全部或部分線程,對(duì)所述封包內(nèi)攜帶的特定數(shù)據(jù)進(jìn)行修改,以及恢復(fù)所述應(yīng)用程序被暫停的線程,以便該線程將修改后的所述封包發(fā)送至所述服務(wù)器。在對(duì)上述模塊的工作過程進(jìn)行詳細(xì)描述之前,首先對(duì)本發(fā)明所提供的檢測(cè)工具的應(yīng)用情景進(jìn)行說明。在使用本發(fā)明所提供的檢測(cè)工具之前,需要在本地終端上運(yùn)行應(yīng)用程序,并使該應(yīng)用程序與提供相應(yīng)數(shù)據(jù)交互服務(wù)的服務(wù)器建立數(shù)據(jù)通信連接。其中,所述本地終端可以是計(jì)算機(jī)、平板電腦、智能手機(jī)或其他具有數(shù)據(jù)通信功能的電子設(shè)備。所述應(yīng)用程序是運(yùn)行在本地終端上、并且需要通過與服務(wù)器交互才能實(shí)現(xiàn)其功能的程序,其可以是基于瀏覽器(Browser)運(yùn)行的應(yīng)用程序,例如網(wǎng)頁Flash游戲、網(wǎng)頁3D游戲;也可以設(shè)計(jì)為客戶端(Client)形式的應(yīng)用程序,例如網(wǎng)絡(luò)游戲軟件客戶端,該客戶端安裝在終端提供的合適的操作系統(tǒng)內(nèi),并調(diào)用所述終端的軟件資源和硬件資源以實(shí)現(xiàn)正常運(yùn)行。與應(yīng)用程序相 對(duì)應(yīng)的服務(wù)器要針對(duì)該應(yīng)用程序所實(shí)現(xiàn)的功能提供相應(yīng)的數(shù)據(jù)交互服務(wù)。在本實(shí)施例中,所述應(yīng)用程序?yàn)榫W(wǎng)頁游戲,所述提供數(shù)據(jù)交互服務(wù)則為針對(duì)所述網(wǎng)頁游戲的數(shù)據(jù)交互服務(wù),所述提供數(shù)據(jù)交互服務(wù)的服務(wù)器則為網(wǎng)頁游戲服務(wù)器。本領(lǐng)域的技術(shù)人員可以理解的是,上述舉例僅為示意,本發(fā)明所提供的漏洞檢測(cè)工具也適用于提供其他數(shù)據(jù)交互服務(wù)的服務(wù)器,為了簡明起見,在此不再一一列舉。下面,對(duì)本發(fā)明所提供的檢測(cè)工具的各個(gè)模塊的工作過程進(jìn)行詳細(xì)說明。具體地,應(yīng)用程序與提供相應(yīng)數(shù)據(jù)交互服務(wù)的服務(wù)器之間的數(shù)據(jù)通信是以封包的形式進(jìn)行的。所述應(yīng)用程序通過調(diào)用特定的函數(shù)來發(fā)送封包,例如調(diào)用Windows平臺(tái)下的Send、WSASencUSendt0等函數(shù)。所述封包攔截模塊201用于攔截所述應(yīng)用程序向所述服務(wù)器發(fā)送的封包,其進(jìn)一步包括函數(shù)標(biāo)記單元2011和獲取攔截單元2012。其中,函數(shù)標(biāo)記單元2011用于標(biāo)記所述應(yīng)用程序調(diào)用的特定函數(shù)(通常也稱為與函數(shù)掛鉤)。需要說明的是,如果應(yīng)用程序?qū)Υl(fā)送的數(shù)據(jù)采用加密算法進(jìn)行加密,函數(shù)標(biāo)記單元2011則需要獲取該應(yīng)用程序?qū)λ鎏囟ê瘮?shù)進(jìn)行加密前該特定函數(shù)的明文,然后對(duì)該特定函數(shù)的明文進(jìn)行標(biāo)記;如果應(yīng)用程序?qū)Υl(fā)送的數(shù)據(jù)未采用加密算法,函數(shù)標(biāo)記單元2011則可以直接對(duì)該特定函數(shù)的明文進(jìn)行標(biāo)記。函數(shù)標(biāo)記單元2011對(duì)應(yīng)用程序調(diào)用的特定函數(shù)進(jìn)行標(biāo)記后,獲取攔截單元2012去截獲與該特定函數(shù)封包相關(guān)的封包。在一些情況下,如果僅僅需要對(duì)應(yīng)用程序運(yùn)行過程中的某一特定行為進(jìn)行檢測(cè),例如檢測(cè)服務(wù)器對(duì)游戲人物開火行為的響應(yīng)是否正常,獲取攔截單元2012則需要對(duì)應(yīng)用程序發(fā)送的封包進(jìn)行過濾,獲取并攔截與待檢測(cè)行為相關(guān)的目標(biāo)封包。在封包所攜帶的數(shù)據(jù)信息中,包括一個(gè)特征碼,該特征碼用于標(biāo)識(shí)應(yīng)用程序在運(yùn)行中的行為。應(yīng)用程序不同的行為對(duì)應(yīng)不同的特征碼,服務(wù)器收到封包后,根據(jù)封包內(nèi)的特征碼就可以確定應(yīng)用程序執(zhí)行了什么行為,然后做出相應(yīng)的響應(yīng)。以網(wǎng)頁游戲?yàn)槔绻螒蛉宋镩_火行為的特征碼為FFF0,游戲人物前進(jìn)行為的特征碼為1110,那么游戲人物開火后,網(wǎng)頁游戲發(fā)送給服務(wù)器的封包其特征碼即為FFF0,而服務(wù)器如果收到的封包其特征碼為1110,則說明游戲人物正在前進(jìn)。其中,應(yīng)用程序的行為與其相對(duì)應(yīng)的特征碼之間的關(guān)系可以通過統(tǒng)計(jì)分析而預(yù)先獲得。如此一來,當(dāng)需要過濾特定封包時(shí),獲取攔截單元2012可以根據(jù)該預(yù)設(shè)的特征碼從應(yīng)用程序所發(fā)送的封包中篩選出目標(biāo)封包,并攔截該目標(biāo)封包。仍以上述網(wǎng)頁游戲?yàn)槔?,需要檢測(cè)游戲人物執(zhí)行開火行為后網(wǎng)頁游戲服務(wù)器是否可以正常響應(yīng),獲取攔截單元2012以FFFO為預(yù)設(shè)的特征碼對(duì)所有封包進(jìn)行篩選,一旦發(fā)現(xiàn)特征碼同樣為FFFO的封包,則將該封包攔截下來。應(yīng)用程序在運(yùn)行的過程中,通常需要同時(shí)執(zhí)行多個(gè)線程來實(shí)現(xiàn)不同的任務(wù)。其中,與被獲取攔截單元2012所攔截的封包相關(guān)的線程被稱為黑名單線程。當(dāng)封包被攔截后,所述線程控制模塊202以該封包所攜帶的特征碼為篩選標(biāo)準(zhǔn),從應(yīng)用程序的全部線程中篩選出與該封包具有相同特征碼的線程,該線程即為黑名單線程。為了達(dá)到對(duì)封包進(jìn)行修改的目的,所述線程控制模塊202首先需要暫停黑名單線程,使應(yīng)用程序停止對(duì)該封包的操作,然后對(duì)封包內(nèi)攜帶的特定數(shù)據(jù)進(jìn)行修改。通常情況下,通過預(yù)先的統(tǒng)計(jì)分析,可以確定封包所攜帶的特定數(shù)據(jù)在該封包內(nèi)的偏移量。仍以網(wǎng)頁游戲?yàn)槔?,在與開火行為相對(duì)應(yīng)的封包中,偏移量為5的數(shù)據(jù)為開火強(qiáng)度,而在與前進(jìn)行為相對(duì)應(yīng)的封包中,偏移量為6的數(shù)據(jù)為前行步數(shù),等等。如此一來,獲取攔截單元2012攔截封包后,所述線程控制模塊202只需根據(jù)預(yù)定的偏移量對(duì)封包內(nèi)相應(yīng)的數(shù)據(jù)進(jìn)行修改即可。在修改的時(shí)候,所述線程控制模塊202的修改需要超出特定數(shù)據(jù)的正常范圍,才能達(dá)到對(duì)服務(wù)器漏洞檢測(cè)的目的。

但是,在線程的執(zhí)行需要遵循一定順序的情況下,如果某些線程必須在黑名單線程執(zhí)行后才能執(zhí)行,那么,所述線程控制模塊202就不能僅僅暫停黑名單線程。在這種情況下,除了暫停黑名單線程,所述線程控制模塊202還需要暫停在執(zhí)行邏輯上與黑名單線程相關(guān)的其他線程。當(dāng)然了,所述線程控制模塊202也可以暫停正在運(yùn)行的全部線程。線程暫停后,所述線程控制模塊202對(duì)封包內(nèi)的特定數(shù)據(jù)進(jìn)行修改,修改的方法與前述相同,在此不再贅述。所述線程控制模塊202完成對(duì)封包內(nèi)特定數(shù)據(jù)的修改后,恢復(fù)應(yīng)用程序被暫停的全部線程或者黑名單線程。線程恢復(fù)后,應(yīng)用程序?qū)⒅匦抡_\(yùn)行,繼續(xù)對(duì)修改后的封包進(jìn)行處理。對(duì)于采用加密算法的應(yīng)用程序,應(yīng)用程序需要首先對(duì)封包內(nèi)的數(shù)據(jù)進(jìn)行加密,然后將加密后的封包通過數(shù)據(jù)通信連接發(fā)送至服務(wù)器。對(duì)于未采用加密算法的應(yīng)用程序,則直接將修改后的封包進(jìn)行發(fā)送即可。服務(wù)器收到應(yīng)用程序發(fā)送的修改后的封包后,將根據(jù)該封包內(nèi)的數(shù)據(jù)做出響應(yīng)。由于封包內(nèi)被修改的數(shù)據(jù)已經(jīng)超出了其正常的數(shù)值范圍,那么,當(dāng)服務(wù)器針對(duì)應(yīng)用程序產(chǎn)生如下響應(yīng)情況時(shí),可以判斷該服務(wù)器存在漏洞(1)服務(wù)器未能檢測(cè)出封包內(nèi)存在異常的數(shù)據(jù),繼續(xù)正常對(duì)應(yīng)用程序提供服務(wù),(2)服務(wù)器在處理封包內(nèi)異常數(shù)據(jù)的過程中產(chǎn)生錯(cuò)誤,無法繼續(xù)正常工作,對(duì)運(yùn)行在多個(gè)不同終端上的所述應(yīng)用程序均停止響應(yīng)(也就是通常所說的服務(wù)器癱瘓),從而導(dǎo)致正在使用該應(yīng)用程序的所有用戶無法繼續(xù)正常使用。當(dāng)出現(xiàn)上述兩種情況時(shí),說明了服務(wù)器自身存在一定的漏洞,不能對(duì)異常數(shù)據(jù)做出正確的響應(yīng),因此需要服務(wù)器的開發(fā)者對(duì)其進(jìn)行相應(yīng)的修正。如果服務(wù)器收到數(shù)據(jù)異常的封包后,向應(yīng)用程序提示異常信息、或者僅僅停止對(duì)該應(yīng)用程序的響應(yīng),則認(rèn)為服務(wù)器在對(duì)該封包的處理方面不存在漏洞。進(jìn)一步地,本發(fā)明所提供的漏洞檢測(cè)工具還包括日志模塊(未示出),當(dāng)判斷服務(wù)器存在漏洞后,用于記錄導(dǎo)致服務(wù)器異常的行為信息,形成存儲(chǔ)日志。其中,該存儲(chǔ)日志包括導(dǎo)致服務(wù)器異常的封包、該封包內(nèi)被修改的特定數(shù)據(jù)、以及針對(duì)所述特定數(shù)據(jù)的修改行為的描述信息。仍以檢測(cè)游戲人物開火行為為例,與開火行為相對(duì)應(yīng)的封包內(nèi)偏移量為5的特定數(shù)據(jù)表示開火強(qiáng)度,封包攔截模塊201在攔截了與該開火行為相對(duì)應(yīng)的封包后,線程控制模塊202將封包內(nèi)偏移量為5的數(shù)據(jù)10改為異常值FF,應(yīng)用程序?qū)⑿薷暮蟮姆獍l(fā)送至服務(wù)器后該封包引發(fā)了服務(wù)器的異常響應(yīng),此時(shí),日志模塊將該封包所攜帶的數(shù)據(jù)、特定數(shù)據(jù)的偏移量(即5)、以及將特定數(shù)據(jù)修改后的結(jié)果(即FF)記錄至存儲(chǔ)日志內(nèi)。當(dāng)然,存儲(chǔ)日志不僅僅限于上述內(nèi)容,根據(jù)實(shí)際情況還可以包括其他信息,例如對(duì)形成封包的行為的描述等。存儲(chǔ)日志的存在利于服務(wù)器的開發(fā)人員快速重現(xiàn)異常、定位漏洞并進(jìn)行相應(yīng)地修改。使用本發(fā)明所提供的檢測(cè)工具可定制性地針對(duì)特定數(shù)據(jù)修改的情況對(duì)服務(wù)器進(jìn)行檢測(cè),快速準(zhǔn)確地找出服務(wù)器自身存在的漏洞。本發(fā)明提供的一種提供數(shù)據(jù)交互服務(wù)的服務(wù)器的漏洞檢測(cè)方法可以使用可編程邏輯器件結(jié)合來實(shí)現(xiàn),也可以優(yōu)選地實(shí)施為計(jì)算機(jī)程序軟件,例如根據(jù)本發(fā)明的實(shí)施例可以是一種計(jì)算機(jī)程序產(chǎn)品,運(yùn)行該程序產(chǎn)品使計(jì)算機(jī)執(zhí)行用于所示范的方法。所述計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),該介質(zhì)上包含計(jì)算機(jī)程序邏輯或代碼部分,用于實(shí)現(xiàn)上述方法的各個(gè)步驟。所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是被安裝在計(jì)算機(jī)中的內(nèi)置介質(zhì)或者可從計(jì)算機(jī)主體拆卸的可移動(dòng)介質(zhì)(例如熱拔插技術(shù)存儲(chǔ)設(shè)備)。所述內(nèi)置介質(zhì)包括但不限 于可重寫的非易失性存儲(chǔ)器,例如RAM、R0M、快閃存儲(chǔ)器和硬盤。所述可移動(dòng)介質(zhì)包括但不限于光存儲(chǔ)媒體(例如CD-ROM和DVD)、磁光存儲(chǔ)媒體(例如MO)、磁存儲(chǔ)媒體(例如盒帶或移動(dòng)硬盤)、具有內(nèi)置的可重寫的非易失性存儲(chǔ)器的媒體(例如存儲(chǔ)卡)和具有內(nèi)置ROM的媒體(例如ROM盒)。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,任何具有適當(dāng)編程裝置的計(jì)算機(jī)系統(tǒng)都將能夠執(zhí)行包含在程序產(chǎn)品中的本發(fā)明的方法的諸步驟。盡管本說明書中描述的多數(shù)具體實(shí)施方式
都側(cè)重于軟件程序,但是作為固件和硬件實(shí)現(xiàn)本發(fā)明提供的方法的替代實(shí)施例同樣在本發(fā)明要求保護(hù)的范圍之內(nèi)。以上所揭露的僅為本發(fā)明的幾種較佳的實(shí)施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。
權(quán)利要求
1.一種提供數(shù)據(jù)交互服務(wù)的服務(wù)器的漏洞檢測(cè)方法,該檢測(cè)方法包括以下步驟 提供數(shù)據(jù)交互服務(wù)的服務(wù)器與本地運(yùn)行的應(yīng)用程序建立數(shù)據(jù)通信連接; 攔截所述應(yīng)用程序通過所述數(shù)據(jù)通信連接向所述服務(wù)器發(fā)送的封包; 暫停所述應(yīng)用程序的全部或部分線程,對(duì)所述封包內(nèi)攜帶的特定數(shù)據(jù)進(jìn)行修改; 恢復(fù)所述應(yīng)用程序被暫停的線程,以將修改后的封包發(fā)送至所述服務(wù)器; 根據(jù)所述服務(wù)器收到所述修改后的封包后針對(duì)所述應(yīng)用程序產(chǎn)生的響應(yīng)情況,判斷所述服務(wù)器是否存在漏洞。
2.根據(jù)權(quán)利要求I所述的檢測(cè)方法,其中,攔截所述應(yīng)用程序通過所述數(shù)據(jù)通信連接向所述服務(wù)器發(fā)送的封包包括 標(biāo)記所述應(yīng)用程序調(diào)用的特定函數(shù); 獲取并攔截與所述特定函數(shù)相關(guān)的目標(biāo)封包。
3.根據(jù)權(quán)利要求2所述的檢測(cè)方法,其中,標(biāo)記所述應(yīng)用程序調(diào)用的特定函數(shù)包括 獲取所述應(yīng)用程序?qū)λ鎏囟ê瘮?shù)進(jìn)行加密前該特定函數(shù)的明文,并標(biāo)記該特定函數(shù)的明文。
4.根據(jù)權(quán)利要求2所述的檢測(cè)方法,其中,獲取并攔截與所述特定函數(shù)相關(guān)的目標(biāo)封包包括 根據(jù)預(yù)設(shè)的特征碼篩選出所述目標(biāo)封包,并攔截該目標(biāo)封包。
5.根據(jù)權(quán)利要求I所述的檢測(cè)方法,其中,暫停所述應(yīng)用程序的全部或部分線程的方法包括 暫停所述應(yīng)用程序的全部線程;或 從所述應(yīng)用程序的全部線程中篩選出與所述封包具有相同特征碼的黑名單線程,并暫停所述黑名單線程。
6.根據(jù)權(quán)利要求I所述的檢測(cè)方法,其中,判斷所述服務(wù)器是否存在漏洞包括 若所述服務(wù)器繼續(xù)正常對(duì)所述應(yīng)用程序提供服務(wù),則判斷所述服務(wù)器存在漏洞; 若所述服務(wù)器對(duì)運(yùn)行在多個(gè)不同終端上的所述應(yīng)用程序均停止響應(yīng),則判斷所述服務(wù)器存在漏洞。
7.根據(jù)權(quán)利要求I所述的檢測(cè)方法,在判斷所述服務(wù)器是否存在漏洞步驟之后,若判斷結(jié)果為是,該方法還包括 存儲(chǔ)日志,該日志中包括所述封包、所述特定數(shù)據(jù)以及針對(duì)所述特定數(shù)據(jù)的修改行為的描述信息。
8.根據(jù)權(quán)利要求I至6任一項(xiàng)所述的檢測(cè)方法,其中 所述應(yīng)用程序?yàn)榫W(wǎng)頁游戲; 所述提供數(shù)據(jù)交互服務(wù)是針對(duì)所述網(wǎng)頁游戲的數(shù)據(jù)交互服務(wù)。
9.一種提供數(shù)據(jù)交互服務(wù)的服務(wù)器的漏洞檢測(cè)工具,包括 封包攔截模塊,在提供數(shù)據(jù)交互服務(wù)的服務(wù)器與本地運(yùn)行的應(yīng)用程序建立數(shù)據(jù)通信連接后,用于攔截所述應(yīng)用程序通過所述數(shù)據(jù)通信連接向所述服務(wù)器發(fā)送的封包; 線程控制模塊,用于暫停所述應(yīng)用程序的全部或部分線程,對(duì)所述封包內(nèi)攜帶的特定數(shù)據(jù)進(jìn)行修改,以及恢復(fù)所述應(yīng)用程序被暫停的線程,以便該線程將修改后的封包發(fā)送至所述服務(wù)器。
10.根據(jù)權(quán)利要求9所述的檢測(cè)工具,其中,所述封包攔截模塊進(jìn)一步包括 函數(shù)標(biāo)記單元,用于標(biāo)記所述應(yīng)用程序調(diào)用的特定函數(shù); 獲取攔截單元,用于獲取并攔截與所述特定函數(shù)相關(guān)的目標(biāo)封包。
11.根據(jù)權(quán)利要求10所述的檢測(cè)工具,其中 所述函數(shù)標(biāo)記單元獲取所述應(yīng)用程序?qū)λ鎏囟ê瘮?shù)進(jìn)行加密前該特定函數(shù)的明文,并標(biāo)記該特定函數(shù)的明文。
12.根據(jù)權(quán)利要求10所述的檢測(cè)工具,其中 所述獲取攔截單元根據(jù)預(yù)設(shè)的特征碼篩選出所述目標(biāo)封包,并攔截該目標(biāo)封包。
13.根據(jù)權(quán)利要求9所述的檢測(cè)工具,其中 所述線程控制模塊暫停所述應(yīng)用程序的全部線程;或 所述線程控制模塊從所述應(yīng)用程序的全部線程中篩選出與所述封包具有相同特征碼的黑名單線程,并暫停所述黑名單線程。
14.根據(jù)權(quán)利要求9所述的檢測(cè)工具,其中,該檢測(cè)工具還包括 日志模塊,用于存儲(chǔ)日志,該日志中包括所述封包、所述特定數(shù)據(jù)以及針對(duì)所述特定數(shù)據(jù)的修改行為的描述信息。
15.根據(jù)權(quán)利要求9至13任一項(xiàng)所述的檢測(cè)工具,其中 所述應(yīng)用程序?yàn)榫W(wǎng)頁游戲; 所述提供數(shù)據(jù)交互服務(wù)是針對(duì)所述網(wǎng)頁游戲的數(shù)據(jù)交互服務(wù)。
全文摘要
本發(fā)明提供了一種提供數(shù)據(jù)交互服務(wù)的服務(wù)器的漏洞檢測(cè)方法,該方法包括提供數(shù)據(jù)交互服務(wù)的服務(wù)器與本地運(yùn)行的應(yīng)用程序建立數(shù)據(jù)通信連接;攔截所述應(yīng)用程序通過所述數(shù)據(jù)通信連接向所述服務(wù)器發(fā)送的封包;暫停所述應(yīng)用程序的全部或部分線程,對(duì)所述封包內(nèi)攜帶的特定數(shù)據(jù)進(jìn)行修改;恢復(fù)所述應(yīng)用程序被暫停的線程,以將修改后的所述封包發(fā)送至所述服務(wù)器;根據(jù)所述服務(wù)器收到所述修改后的封包后針對(duì)所述應(yīng)用程序產(chǎn)生的響應(yīng)情況,判斷所述服務(wù)器是否存在漏洞。相應(yīng)地,本發(fā)明還提供了一種提供數(shù)據(jù)交互服務(wù)的服務(wù)器的漏洞檢測(cè)工具。本發(fā)明可定制性地針對(duì)特定數(shù)據(jù)修改的情況對(duì)服務(wù)器進(jìn)行檢測(cè),并快速準(zhǔn)確地找出服務(wù)器自身存在的漏洞。
文檔編號(hào)H04L29/06GK102868699SQ20121036517
公開日2013年1月9日 申請(qǐng)日期2012年9月26日 優(yōu)先權(quán)日2012年9月26日
發(fā)明者董志 申請(qǐng)人:北京聯(lián)眾互動(dòng)網(wǎng)絡(luò)股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1