一種取證式網(wǎng)站漏洞掃描方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及網(wǎng)絡(luò)應(yīng)用安全領(lǐng)域,旨在提供一種取證式網(wǎng)站漏洞掃描方法和系統(tǒng)。該方法包括步驟:頁面抓取、漏洞掃描、自動(dòng)取證、信息收集、手工取證;該系統(tǒng)包括頁面抓取模塊、漏洞掃描模塊、自動(dòng)取證模塊、信息收集模塊、手工取證模塊、任務(wù)下發(fā)及管理模塊、掃描結(jié)果顯示及管理模塊、報(bào)表模塊、系統(tǒng)數(shù)據(jù)庫(kù)模塊、項(xiàng)目文件管理模塊。本發(fā)明可以自動(dòng)地對(duì)漏洞進(jìn)行過濾,采用這種方法,用戶可以在自動(dòng)掃描結(jié)束時(shí)就拿到一份更加可信的報(bào)告,對(duì)于個(gè)別依然存在疑點(diǎn)的漏洞,可以采用本方法中所述的“手工取證”步驟,直接快速地對(duì)漏洞進(jìn)行再次確認(rèn)。
【專利說明】一種取證式網(wǎng)站漏洞掃描方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于網(wǎng)絡(luò)應(yīng)用安全領(lǐng)域,尤其涉及一種取證式網(wǎng)站漏洞掃描方法和系統(tǒng)?!颈尘凹夹g(shù)】
[0002]隨著互聯(lián)網(wǎng)的發(fā)展,各種網(wǎng)絡(luò)應(yīng)用層出不窮,極大程度地滿足了用戶的各種需求。但是,網(wǎng)絡(luò)應(yīng)用開發(fā)過程中往往更加注重功能上的實(shí)現(xiàn),卻遺留下各種各樣的安全問題,這一般是由于進(jìn)度壓力、程序員水平限制、設(shè)計(jì)不完善或一時(shí)疏忽導(dǎo)致的。常見網(wǎng)站安全問題包括:代碼對(duì)輸入數(shù)據(jù)的過濾不足導(dǎo)致的漏洞、服務(wù)器配置方面造成的漏洞、敏感信息泄露等。在應(yīng)用開發(fā)過程中一般很難完全杜絕這些漏洞。因此采用網(wǎng)站漏洞掃描工具對(duì)網(wǎng)站進(jìn)行安全評(píng)估是一個(gè)很好的選擇。
[0003]網(wǎng)站漏洞掃描系統(tǒng)一般抓取網(wǎng)站所有頁面,然后對(duì)抓取到的頁面進(jìn)行逐個(gè)分析,發(fā)現(xiàn)盡可能多的安全問題。然而幾個(gè)因素導(dǎo)致這樣的掃描方式非常容易造成誤報(bào),報(bào)告一些實(shí)際上并不存在的漏洞,對(duì)網(wǎng)站開發(fā)和維護(hù)人員造成時(shí)間和精力上的浪費(fèi)。這些因素包括:1)很多網(wǎng)頁的動(dòng)態(tài)性,造成網(wǎng)站漏洞掃描系統(tǒng)判斷錯(cuò)誤;2)網(wǎng)站漏洞掃描系統(tǒng)本身的判斷邏輯不完善;3)目前的應(yīng)用環(huán)境非常復(fù)雜,網(wǎng)站漏洞掃描系統(tǒng)的判斷邏輯往往無法覆蓋所有可能出現(xiàn)的情況。
[0004]在現(xiàn)有已知的技術(shù)中,與本方法較為接近的技術(shù)是一種名為“基于滲透技術(shù)的Web漏洞掃描方法”,其關(guān)鍵步驟是“包括掃描和分析兩個(gè)階段”。該技術(shù)主要實(shí)現(xiàn)了網(wǎng)站漏洞發(fā)現(xiàn)的方法。但如前面所述,這樣的方法容易產(chǎn)生誤報(bào),但沒有提供很好的過濾誤報(bào)的方法。工作人員可以采用這種方法掃描到一些漏洞,但可能一部分是確實(shí)存在的,一部分是誤報(bào)。他們只能選擇容忍這些誤報(bào),或人工對(duì)漏洞再次逐個(gè)分析。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的是彌補(bǔ)現(xiàn)有網(wǎng)站漏洞掃描方法的不足,提供一種漏洞掃描方法和掃描系統(tǒng),采用自動(dòng)和手工取證方法,提高網(wǎng)站漏洞掃描系統(tǒng)掃描的準(zhǔn)確率,提交更加準(zhǔn)確可信的網(wǎng)站漏洞掃描結(jié)果。
[0006]提供一種取證式網(wǎng)站漏洞掃描方法,用于對(duì)被掃描網(wǎng)站進(jìn)行漏洞檢測(cè),包括以下步驟:
[0007]a)頁面抓取:從被掃描網(wǎng)站的初始頁面開始解析,獲取被掃描網(wǎng)站的頁面鏈接,然后將頁面鏈接存入系統(tǒng)數(shù)據(jù)庫(kù)模塊,并保證相同頁面鏈接不重復(fù)存入,再?gòu)南到y(tǒng)數(shù)據(jù)庫(kù)模塊中提取已保存的并且未經(jīng)過頁面抓取步驟處理的頁面鏈接,進(jìn)行頁面訪問,并提取新的頁面鏈接存入到系統(tǒng)數(shù)據(jù)庫(kù)模塊,直至抓取完被掃描網(wǎng)站的所有頁面;
[0008]b)漏洞掃描:在步驟a抓取到的頁面中,判斷是否還有尚未進(jìn)行漏洞檢測(cè)的頁面,若已沒有尚未進(jìn)行漏洞檢測(cè)的頁面,則轉(zhuǎn)步驟e,否則執(zhí)行:選擇一個(gè)尚未進(jìn)行漏洞檢測(cè)的頁面進(jìn)行漏洞檢測(cè),針對(duì)這個(gè)頁面,根據(jù)不同漏洞各自所對(duì)應(yīng)的檢測(cè)邏輯進(jìn)行漏洞分析(漏洞的種類非常多,每種漏洞都有不同的檢測(cè)方法,部分相關(guān)技術(shù)已屬于業(yè)界公知),如果發(fā)現(xiàn)漏洞轉(zhuǎn)步驟C,否則重復(fù)執(zhí)行步驟b ;
[0009]c)自動(dòng)取證:對(duì)步驟b中發(fā)現(xiàn)的漏洞,根據(jù)不同漏洞的取證邏輯進(jìn)行自動(dòng)取證,并自動(dòng)過濾掉誤報(bào),獲得能夠證明該漏洞存在的取證結(jié)果;
[0010]d)信息收集:根據(jù)步驟b發(fā)現(xiàn)的漏洞,針對(duì)不同漏洞能采取的手工取證方法,自動(dòng)收集手工取證方法所需要的取證信息并進(jìn)行保存,完成后轉(zhuǎn)步驟b對(duì)其他頁面進(jìn)行漏洞檢測(cè);
[0011]e)手工取證:使用步驟d收集的取證信息,根據(jù)不同漏洞能采取的相應(yīng)的手工取證方法進(jìn)行手工取證,并獲得用于確認(rèn)漏洞的真實(shí)性的手工取證結(jié)果。
[0012]在本發(fā)明中,根據(jù)不同類型的網(wǎng)站漏洞,所述步驟c和步驟e中的取證結(jié)果包括以下數(shù)據(jù):頁面長(zhǎng)度、HTTP響應(yīng)碼、頁面請(qǐng)求響應(yīng)時(shí)間、頁面請(qǐng)求過程收發(fā)的報(bào)文、HTTP頭、會(huì)話及Cookie、頁面內(nèi)容、多個(gè)頁面請(qǐng)求之間的差異性(如頁面響應(yīng)碼的差異、頁面長(zhǎng)度的差異、內(nèi)容的差異等)、頁面在瀏覽器中的實(shí)際顯示效果及其截圖(部分漏洞可以使用瀏覽器進(jìn)行取證,不同的漏洞在瀏覽器中輸入是不一樣的,比如“跨站腳本”可以修改界面的標(biāo)題或彈出一個(gè)對(duì)話框,“目錄瀏覽”的顯示效果則是在瀏覽器中顯示一個(gè)目錄下的所有子目錄和子文件,不同的情況還有很多,不再一一列舉)。
[0013]在本發(fā)明中,所述步驟d中的取證信息包括以下數(shù)據(jù):自動(dòng)構(gòu)造的用于進(jìn)一步取證的URL、HTTP頭、會(huì)話及Cookie、表單提交數(shù)據(jù)、HTTP請(qǐng)求數(shù)據(jù)包、HTTP響應(yīng)數(shù)據(jù)包。
[0014]在本發(fā)明中,所述步驟c中的自動(dòng)取證包括以下方法:
[0015]I)直接將漏洞所在頁面的響應(yīng)內(nèi)容長(zhǎng)度、響應(yīng)碼、響應(yīng)時(shí)間、報(bào)文、頁面內(nèi)容作為取證結(jié)果,并以此判斷漏洞是否存在;
[0016]2)在原始頁面請(qǐng)求的基礎(chǔ)上進(jìn)行修改,自動(dòng)構(gòu)造至少一個(gè)新的http請(qǐng)求,并對(duì)這些不同請(qǐng)求的數(shù)據(jù)(包括響應(yīng)內(nèi)容長(zhǎng)度、響應(yīng)碼、響應(yīng)時(shí)間、報(bào)文、頁面內(nèi)容)進(jìn)行對(duì)比,把對(duì)比獲得的差異性作為取證結(jié)果,并以此判斷漏洞是否存在;
[0017]3)在漏洞所在頁面的返回內(nèi)容中匹配符合特征的文本,將匹配到的內(nèi)容作為取證結(jié)果,并以此判斷漏洞是否存在;
[0018]4)自動(dòng)模擬表單提交并獲取請(qǐng)求結(jié)果,并以此判斷漏洞是否存在;
[0019]5)使用瀏覽器內(nèi)核及瀏覽器對(duì)頁面的內(nèi)容進(jìn)行解析和排版,執(zhí)行頁面內(nèi)容中的腳本,將解析和排版的輸出結(jié)果作為取證的結(jié)果,并以此判斷漏洞是否存在。
[0020]在本發(fā)明中,所述步驟e的手工取證是可選的,能夠根據(jù)需要選擇性地執(zhí)行步驟e (手工取證在人的參與下,能夠比自動(dòng)取證更準(zhǔn)確);所述手工取證包括以下方法:
[0021]I)使用步驟d中獲取的自動(dòng)構(gòu)造的用于進(jìn)一步取證的URL,在瀏覽器中訪問,查看實(shí)際的URL執(zhí)行和顯示結(jié)果,結(jié)合漏洞的特征,判斷漏洞是否存在,且能將顯示結(jié)果截圖保存;
[0022]2)使用HTTP模擬發(fā)包器,將用于進(jìn)一步取證的URL,以及步驟d中獲取的HTTP頭、會(huì)話及Cookie、表單提交數(shù)據(jù)信息,填入HTTP模擬發(fā)包器中,并發(fā)送HTTP請(qǐng)求,查看返回的頁面內(nèi)容,結(jié)合漏洞的特征,判斷漏洞是否存在;
[0023]3)在瀏覽器中,將步驟d中獲取的表單提交數(shù)據(jù),填入漏洞所在頁面的表單中,并提交表單,查看提交表單后的頁面顯示結(jié)果,結(jié)合漏洞的特征,判斷漏洞是否存在;
[0024]4)利用專用工具,所述專用工具是指漏洞取證或滲透測(cè)試的工具,將進(jìn)一步取證的URL、步驟d中獲取的HTTP頭、會(huì)話及Cookie、表單提交數(shù)據(jù)信息,填入專用工具中進(jìn)一步取證或滲透,并查看結(jié)果,結(jié)合漏洞的特征,判斷漏洞是否存在;
[0025]5)將步驟d中獲取的HTTP請(qǐng)求數(shù)據(jù)包和HTTP響應(yīng)數(shù)據(jù)包顯示在用戶界面上,并使用高亮、字體加粗方法將重要內(nèi)容突出顯示,結(jié)合漏洞的特征,人工判斷漏洞是否存在。
[0026]在本發(fā)明中,能將網(wǎng)站漏洞和取證結(jié)果同時(shí)顯示在程序或系統(tǒng)的用戶界面中,或同時(shí)輸出到報(bào)表中;用戶根據(jù)這些信息判斷漏洞是否存在,以及漏洞的性質(zhì)和危害性。
[0027]在本發(fā)明中,所述一種取證式網(wǎng)站漏洞掃描方法具有學(xué)習(xí)功能:用戶判斷漏洞是否誤報(bào),系統(tǒng)對(duì)用戶的判斷結(jié)果進(jìn)行記錄,在后續(xù)的掃描中再次出現(xiàn)相同漏洞時(shí),根據(jù)記錄中的用戶判斷結(jié)果過濾掉誤報(bào)的漏洞,即實(shí)現(xiàn)步驟c中的自動(dòng)過濾掉誤報(bào)。
[0028]提供基于所述掃描方法的取證式網(wǎng)站漏洞掃描系統(tǒng),包括頁面抓取模塊、漏洞掃描模塊、自動(dòng)取證模塊、信息收集模塊、手工取證模塊、任務(wù)下發(fā)及管理模塊、掃描結(jié)果顯示及管理模塊、報(bào)表模塊、系統(tǒng)數(shù)據(jù)庫(kù)模塊、項(xiàng)目文件管理模塊;
[0029]所述頁面抓取模塊用于從被掃描網(wǎng)站的初始頁面或者系統(tǒng)數(shù)據(jù)庫(kù)模塊保存的頁面鏈接中,解析獲取新的頁面鏈接,然后將獲取的頁面鏈接存入系統(tǒng)數(shù)據(jù)庫(kù)模塊中,并保證相同頁面鏈接不重復(fù)存入(頁面抓取模塊中的系統(tǒng)數(shù)據(jù)庫(kù)模塊也能用項(xiàng)目文件來代替);
[0030]所述漏洞掃描模塊用于判斷頁面是否有經(jīng)過漏洞檢測(cè),并對(duì)未經(jīng)過漏洞檢測(cè)的頁面進(jìn)行檢測(cè);
[0031]所述自動(dòng)取證模塊用于對(duì)漏洞掃描模塊中發(fā)現(xiàn)的漏洞進(jìn)行自動(dòng)取證,并自動(dòng)過濾掉誤報(bào),獲得能夠證明該漏洞存在的取證結(jié)果;
[0032]所述信息收集模塊用于對(duì)漏洞掃描模塊中發(fā)現(xiàn)的漏洞,自動(dòng)收集并保存用于手工取證的取證信息;
[0033]所述手工取證模塊用于利用信息收集模塊收集的取證信息,進(jìn)行手工取證,并獲得用于確認(rèn)漏洞的真實(shí)性的手工取證結(jié)果;
[0034]所述任務(wù)下發(fā)及管理模塊用于提供給用戶啟動(dòng)掃描網(wǎng)站過程的操作手段,達(dá)到漏洞發(fā)現(xiàn)和取證的最終目的,通過支持用戶在用戶操作界面上下發(fā)掃描任務(wù),并對(duì)其進(jìn)行管理,包括暫停、停止、刪除、配置;
[0035]所述掃描結(jié)果顯示及管理模塊用于在掃描過程中以及掃描完成后,將掃描數(shù)據(jù)顯示在界面上,并支持用戶對(duì)掃描數(shù)據(jù)、手工取證結(jié)果和輸出報(bào)告進(jìn)行查看,掃描數(shù)據(jù)包括發(fā)現(xiàn)的漏洞、相應(yīng)網(wǎng)站的頁面鏈接、手工取證信息;
[0036]所述報(bào)表模塊用于將漏洞檢測(cè)的結(jié)果輸出到獨(dú)立文件中,獨(dú)立文件作為工作人員之間的交流、存檔或作為改進(jìn)網(wǎng)站系統(tǒng)的依據(jù),獨(dú)立文件能被導(dǎo)入到第三方系統(tǒng)中作進(jìn)一步的處理;
[0037]所述系統(tǒng)數(shù)據(jù)庫(kù)模塊用于存儲(chǔ)系統(tǒng)的配置信息、網(wǎng)站的漏洞、頁面鏈接,系統(tǒng)的配置信息包括賬號(hào)和日志信息;
[0038]所述項(xiàng)目文件管理模塊用于對(duì)項(xiàng)目文件進(jìn)行管理,包括創(chuàng)建、刪除、寫入數(shù)據(jù);項(xiàng)目文件是指能存儲(chǔ)頁面鏈接和漏洞數(shù)據(jù)的文件,每個(gè)任務(wù)下發(fā)及管理模塊所下發(fā)的任務(wù),都有一個(gè)對(duì)應(yīng)的項(xiàng)目文件。
[0039]本發(fā)明的原理是:在掃描到漏洞后,利用漏洞本身的特征以及頁面的返回?cái)?shù)據(jù),對(duì)該漏洞進(jìn)行再次或多次的驗(yàn)證,排除誤報(bào)的漏洞。[0040]與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:
[0041]本發(fā)明提供了一種準(zhǔn)確率更高的網(wǎng)站漏洞掃描方法,讓工作人員可以輕松地產(chǎn)生一份更加可信的網(wǎng)站漏洞報(bào)告,無需再使用其他手段來判斷漏洞的真實(shí)性,可以很大程度上提高工作效率。
[0042]取證式掃描方法可以自動(dòng)地對(duì)漏洞進(jìn)行過濾。采用這種方法,用戶可以在自動(dòng)掃描結(jié)束時(shí)就拿到一份更加可信的報(bào)告。對(duì)于個(gè)別依然存在疑點(diǎn)的漏洞,可以采用本方法中所述的“手工取證”步驟,直接快速地對(duì)漏洞進(jìn)行再次確認(rèn)。
【專利附圖】
【附圖說明】
[0043]圖1是本發(fā)明中的取證式網(wǎng)站漏洞掃描系統(tǒng)的主要模塊結(jié)構(gòu)圖。
[0044]圖2是本發(fā)明中的取證式網(wǎng)站漏洞掃描方法的流程。
【具體實(shí)施方式】
[0045]首先需要說明的是,本發(fā)明涉及Web和數(shù)據(jù)庫(kù)技術(shù),是計(jì)算機(jī)技術(shù)在信息安全【技術(shù)領(lǐng)域】的一種應(yīng)用。在本發(fā)明的實(shí)現(xiàn)過程中,會(huì)涉及到多個(gè)軟件功能模塊的應(yīng)用。 申請(qǐng)人:認(rèn)為,如在仔細(xì)閱讀申請(qǐng)文件、準(zhǔn)確理解本發(fā)明的實(shí)現(xiàn)原理和發(fā)明目的以后,在結(jié)合現(xiàn)有公知技術(shù)的情況下,本領(lǐng)域技術(shù)人員完全可以運(yùn)用其掌握的軟件編程技能實(shí)現(xiàn)本發(fā)明。前述軟件功能模塊包括但不限于:頁面抓取模塊、漏洞掃描模塊、自動(dòng)取證模塊、信息收集模塊、手工取證模塊、任務(wù)下發(fā)及管理模塊、掃描結(jié)果顯示及管理模塊、報(bào)表模塊、系統(tǒng)數(shù)據(jù)庫(kù)模塊、項(xiàng)目文件管理模塊等,凡本發(fā)明申請(qǐng)文件提及的均屬此范疇, 申請(qǐng)人:不再一一列舉。
[0046]本發(fā)明的目的是提供一種準(zhǔn)確率更高的網(wǎng)站漏洞掃描方法。通過取證的方法,過濾誤報(bào)的漏洞。取證主要包含自動(dòng)取證和手工取證兩個(gè)步驟,其中自動(dòng)取證是在掃描過程中自動(dòng)完成的。
[0047]取證式網(wǎng)站漏洞掃描方法具體包括以下步驟:
[0048]a)頁面抓取:從被掃描網(wǎng)站的初始頁面開始解析,獲取被掃描網(wǎng)站的頁面鏈接,然后將頁面鏈接存入系統(tǒng)數(shù)據(jù)庫(kù)模塊,并保證相同頁面鏈接不重復(fù)存入,再?gòu)南到y(tǒng)數(shù)據(jù)庫(kù)模塊中提取已保存的并且未經(jīng)過頁面抓取步驟處理的頁面鏈接,進(jìn)行頁面訪問,并提取新的頁面鏈接存入到系統(tǒng)數(shù)據(jù)庫(kù)模塊,直至抓取完被掃描網(wǎng)站的所有頁面。可以采用網(wǎng)絡(luò)爬蟲、正則表達(dá)式、模擬解析等多種方式,或多種方式相結(jié)合來進(jìn)行,也可以采用目前現(xiàn)有開源的網(wǎng)絡(luò)爬蟲,如LabiruNurch等都是知名度較高的開源網(wǎng)絡(luò)爬蟲項(xiàng)目。
[0049]b)漏洞掃描:在步驟a抓取到的頁面中,判斷是否還有尚未進(jìn)行漏洞檢測(cè)的頁面,若已沒有尚未進(jìn)行漏洞檢測(cè)的頁面,則轉(zhuǎn)步驟e,否則執(zhí)行:選擇一個(gè)尚未進(jìn)行漏洞檢測(cè)的頁面進(jìn)行漏洞檢測(cè),針對(duì)這個(gè)頁面,根據(jù)不同漏洞各自所對(duì)應(yīng)的檢測(cè)邏輯進(jìn)行漏洞分析(漏洞的種類非常多,每種漏洞都有不同的檢測(cè)方法,部分相關(guān)技術(shù)已屬于業(yè)界公知),如果發(fā)現(xiàn)漏洞轉(zhuǎn)步驟C,否則重復(fù)執(zhí)行步驟b。由于漏洞的多樣性,本發(fā)明采用策略庫(kù)實(shí)現(xiàn)漏洞檢測(cè)邏輯的編寫,策略庫(kù)提供統(tǒng)一的漏洞檢測(cè)框架,將每條漏洞分別編寫成策略庫(kù)中的一條策略。用戶下發(fā)任務(wù)時(shí),可以選擇要執(zhí)行策略庫(kù)中的哪些策略。掃描過程中,對(duì)于每個(gè)頁面,都會(huì)執(zhí)行一遍用戶所選擇的所有策略。在本發(fā)明中,當(dāng)前步驟應(yīng)該盡可能多地發(fā)現(xiàn)漏洞,減少漏報(bào)。網(wǎng)站漏洞方法中誤報(bào)和漏報(bào)往往是一對(duì)矛盾,需要在掃描策略中做出平衡。但在這一步驟中,需要優(yōu)先考慮的是減少漏報(bào)率。
[0050]c)自動(dòng)取證:對(duì)步驟b中發(fā)現(xiàn)的漏洞,根據(jù)不同漏洞的取證邏輯進(jìn)行自動(dòng)取證,并自動(dòng)過濾掉誤報(bào),獲得能夠證明該漏洞存在的取證結(jié)果。自動(dòng)取證是在掃描過程中自動(dòng)完成的,在所述的策略庫(kù)中的每條策略執(zhí)行完成后,如果發(fā)現(xiàn)可能存在的漏洞,就開始自動(dòng)過濾和取證的過程,如果判斷為誤報(bào),該結(jié)果自動(dòng)被丟棄,否則存入數(shù)據(jù)庫(kù)中。自動(dòng)取證的依據(jù)和結(jié)果可能包括但不限于以下信息:頁面長(zhǎng)度、HTTP響應(yīng)碼、頁面請(qǐng)求響應(yīng)時(shí)間、頁面請(qǐng)求過程收發(fā)的報(bào)文、HTTP頭、會(huì)話及Cookie、頁面內(nèi)容等,另外還可以包括多個(gè)頁面請(qǐng)求之間的差異性,如頁面響應(yīng)碼的差異、頁面長(zhǎng)度的差異和內(nèi)容的差異等。除了數(shù)據(jù)化的內(nèi)容夕卜,取證結(jié)果還可以包括頁面在瀏覽器中的實(shí)際顯示效果及其截圖,部分漏洞可以使用瀏覽器進(jìn)行取證,不同的漏洞在瀏覽器中輸入是不一樣的,比如“跨站腳本”可以修改界面的標(biāo)題或彈出一個(gè)對(duì)話框,“目錄瀏覽”的顯示效果則是在瀏覽器中顯示一個(gè)目錄下的所有子目錄和子文件,不同的情況還有很多,不再一一列舉。自動(dòng)取證包括但不限于以下方法:1)直接將漏洞所在頁面的響應(yīng)內(nèi)容長(zhǎng)度、響應(yīng)碼、響應(yīng)時(shí)間、報(bào)文、頁面內(nèi)容作為取證結(jié)果,并以此判斷漏洞是否存在;2)在原始頁面請(qǐng)求的基礎(chǔ)上進(jìn)行修改,自動(dòng)構(gòu)造一個(gè)或多個(gè)新的http請(qǐng)求,并對(duì)這些不同請(qǐng)求的響應(yīng)內(nèi)容長(zhǎng)度、響應(yīng)碼、響應(yīng)時(shí)間、報(bào)文、頁面內(nèi)容等數(shù)據(jù)進(jìn)行對(duì)比,把對(duì)比獲得的差異性作為取證結(jié)果,并以此判斷漏洞是否存在;3)在漏洞所在頁面的返回內(nèi)容中匹配符合特征的文本,將匹配到的內(nèi)容作為取證結(jié)果,并以此判斷漏洞是否存在;4)自動(dòng)模擬表單提交并獲取請(qǐng)求結(jié)果,并以此判斷漏洞是否存在。5)使用瀏覽器內(nèi)核及瀏覽器對(duì)頁面的內(nèi)容進(jìn)行解析和排版,執(zhí)行頁面內(nèi)容中的腳本。將解析和排版的輸出結(jié)果作為取證的結(jié)果,并以此判斷漏洞是否存在。
[0051]d)信息收集:根據(jù)步驟b發(fā)現(xiàn)的漏洞,針對(duì)該漏洞可以采取的相應(yīng)的手工取證方法,將所需要的取證信息收集并保存,完成后轉(zhuǎn)步驟b對(duì)其他頁面進(jìn)行漏洞檢測(cè)。相關(guān)的數(shù)據(jù)來源可以來自于頁面本身,收發(fā)的HTTP數(shù)據(jù)包以及程序自動(dòng)分析的結(jié)果。對(duì)于已經(jīng)發(fā)現(xiàn)的可能存在的漏洞,經(jīng)過自動(dòng)過濾后,由于檢測(cè)技術(shù)的復(fù)雜性,依然不能完全保證準(zhǔn)確率,因此可能存在需要人工輔助來判斷。所述的漏洞檢測(cè)策略完成后,相關(guān)的信息被自動(dòng)收集,這些信息將會(huì)被作為手工取證的來源和依據(jù)。用戶在需要的時(shí)候,可以依據(jù)這些信息來判斷漏洞的真實(shí)性,并將判斷結(jié)果存儲(chǔ)或輸出。可能被收集的信息包括但不限于:自動(dòng)構(gòu)造的用于進(jìn)一步取證的URL、HTTP頭、會(huì)話及Cookie、表單提交數(shù)據(jù)、HTTP請(qǐng)求數(shù)據(jù)包、HTTP響應(yīng)數(shù)據(jù)包等。
[0052]e)手工取證:使用步驟d收集的取證信息,根據(jù)該漏洞可以采取的相應(yīng)的手工取證方法進(jìn)行手工取證,并獲得用于確認(rèn)漏洞的真實(shí)性的手工取證結(jié)果。手工取證主要是用于手工操作,肉眼觀察為主,因此除了所述的步驟d中獲取的信息,本發(fā)明的系統(tǒng)中還應(yīng)該包含一些工具,方便用戶人工操作,如:瀏覽器、基于HTTP協(xié)議的模擬發(fā)包器、漏洞驗(yàn)證工具、Web應(yīng)用滲透測(cè)試工具、網(wǎng)絡(luò)數(shù)據(jù)包抓取和解析工具等。還應(yīng)該將相關(guān)信息顯示在用戶界面上,便于用戶查看。根據(jù)不同類型的漏洞,手工取證也應(yīng)當(dāng)使用不同的方法??梢允褂玫姆椒òǖ幌抻?1)使用步驟d中獲取的自動(dòng)構(gòu)造的用于進(jìn)一步取證的URL,在瀏覽器中訪問,查看實(shí)際的URL執(zhí)行和顯示結(jié)果,結(jié)合漏洞的特征,判斷漏洞是否存在。同時(shí)可以將顯示結(jié)果截圖保存;2)使用HTTP模擬發(fā)包器,將用于進(jìn)一步取證的URL,以及步驟d中獲取的HTTP頭、會(huì)話及Cookie、表單提交數(shù)據(jù)等信息,填入HTTP模擬發(fā)包器中,并發(fā)送HTTP請(qǐng)求,查看返回的頁面內(nèi)容,結(jié)合漏洞的特征,判斷漏洞是否存在;3)在瀏覽器中,將步驟d中獲取的表單提交數(shù)據(jù),填入漏洞所在頁面的表單中,并提交表單,查看提交表單后的頁面顯示結(jié)果,結(jié)合漏洞的特征,判斷漏洞是否存在;4)利用其他專用的漏洞取證或滲透測(cè)試工具,用于進(jìn)一步取證的URL,以及步驟d中獲取的HTTP頭、會(huì)話及Cookie、表單提交數(shù)據(jù)等信息,填入專用工具中進(jìn)一步取證或滲透,并查看結(jié)果,結(jié)合漏洞的特征,判斷漏洞是否存在;5)將步驟d中獲取的HTTP請(qǐng)求數(shù)據(jù)包和HTTP響應(yīng)數(shù)據(jù)包顯示在用戶界面上,并使用高亮、字體加粗等方法將重要內(nèi)容突出顯示,結(jié)合漏洞的特征,人工判斷漏洞是否存在。
[0053]步驟e的手工取證是可選的,如果用戶依然對(duì)報(bào)表中所報(bào)告的漏洞信心不足,可以根據(jù)需要選擇執(zhí)行步驟e。
[0054]取證式網(wǎng)站漏洞掃描方法,可以將網(wǎng)站漏洞和取證結(jié)果同時(shí)顯示在程序或系統(tǒng)的用戶界面中,或同時(shí)輸出到報(bào)表中;用戶根據(jù)這些信息判斷漏洞是否存在,以及判斷漏洞的性質(zhì)和危害性。取證式網(wǎng)站漏洞掃描方法,還具有學(xué)習(xí)功能:用戶判斷漏洞是否誤報(bào),系統(tǒng)對(duì)用戶的判斷結(jié)果進(jìn)行記錄,在后續(xù)的掃描中再次出現(xiàn)相同漏洞時(shí),根據(jù)記錄中的用戶判斷結(jié)果過濾掉誤報(bào)的漏洞。
[0055]基于所述掃描方法的取證式網(wǎng)站漏洞掃描系統(tǒng),可以包括但不限于以下模塊:頁面抓取模塊、漏洞掃描模塊、自動(dòng)取證模塊、信息收集模塊、手工取證模塊、任務(wù)下發(fā)及管理模塊、掃描結(jié)果顯示及管理模塊、報(bào)表模塊、系統(tǒng)數(shù)據(jù)庫(kù)模塊、項(xiàng)目文件管理模塊等。
[0056]以下對(duì)各模塊進(jìn)一步說明:
[0057]I)頁面抓取模塊用于從被掃描網(wǎng)站的初始頁面或者系統(tǒng)數(shù)據(jù)庫(kù)模塊保存的頁面鏈接中,解析獲取新的頁面鏈接,然后將獲取的頁面鏈接存入系統(tǒng)數(shù)據(jù)庫(kù)模塊中,并保證相同頁面鏈接不重復(fù)存入,這里所述的數(shù)據(jù)庫(kù)也可以用項(xiàng)目文件來代替。
[0058]2)漏洞掃描模塊用于判斷頁面是否有經(jīng)過漏洞檢測(cè),并對(duì)未經(jīng)過漏洞檢測(cè)的頁面進(jìn)行檢測(cè),不同的漏洞有不同的檢測(cè)方法。
[0059]3)自動(dòng)取證模塊用于對(duì)漏洞掃描模塊中發(fā)現(xiàn)的漏洞進(jìn)行自動(dòng)取證,并自動(dòng)過濾掉誤報(bào),獲得能夠證明該漏洞存在的取證結(jié)果。
[0060]4)信息收集模塊用于對(duì)漏洞掃描模塊中發(fā)現(xiàn)的漏洞,自動(dòng)收集并保存用于手工取證的取證信息。
[0061]5)手工取證模塊用于利用信息收集模塊收集的取證信息,進(jìn)行手工取證,并獲得用于確認(rèn)漏洞的真實(shí)性的手工取證結(jié)果。關(guān)于這個(gè)模塊的操作,用戶是可選的,可以根據(jù)需要進(jìn)行。
[0062]6)任務(wù)下發(fā)及管理模塊是指用戶在用戶操作界面上下發(fā)掃描任務(wù),并對(duì)其進(jìn)行管理,如暫停、停止、刪除、配置等。其目的是提供給用戶啟動(dòng)掃描網(wǎng)站過程的操作手段,達(dá)到漏洞發(fā)現(xiàn)和取證的最終目的。
[0063]7)掃描結(jié)果顯示及管理模塊是指在掃描過程中以及掃描完成后,將發(fā)現(xiàn)的漏洞、相應(yīng)網(wǎng)站的頁面鏈接、手工取證信息等內(nèi)容,顯示在界面上。用戶可以查看相關(guān)數(shù)據(jù),手工取證以及輸出報(bào)告。
[0064]8)報(bào)表模塊是指將漏洞檢測(cè)的結(jié)果輸出到獨(dú)立的文件中,用于工作人員之間的交流、存檔或作為改進(jìn)網(wǎng)站系統(tǒng)的依據(jù),輸出的文件也可以被導(dǎo)入到第三方系統(tǒng)中用于進(jìn)一步的處理。[0065]9)系統(tǒng)數(shù)據(jù)庫(kù)模塊用于存儲(chǔ)系統(tǒng)的配置信息,賬號(hào)和日志信息等,也可以存儲(chǔ)網(wǎng)站的漏洞和頁面鏈接等信息。
[0066]10)項(xiàng)目文件管理模塊,其中項(xiàng)目文件是指可以存儲(chǔ)頁面鏈接和漏洞等數(shù)據(jù)的文件,每個(gè)任務(wù)下發(fā)及管理模塊所下發(fā)的任務(wù),都可以有一個(gè)對(duì)應(yīng)的項(xiàng)目文件。所述的項(xiàng)目文件管理模塊是指對(duì)項(xiàng)目文件進(jìn)行管理的模塊,如創(chuàng)建、刪除、寫入數(shù)據(jù)等。
[0067]在系統(tǒng)中,用戶的掃描過程如下:用戶首先下發(fā)任務(wù)并等待掃描完成。掃描過程中或掃描結(jié)束后,用戶可以查看掃描結(jié)果,進(jìn)行手工取證。最后根據(jù)需要將掃描結(jié)果和取證結(jié)果輸出到報(bào)表。
[0068]通過取證式網(wǎng)站漏洞掃描方法在取證式網(wǎng)站漏洞掃描系統(tǒng)中加以實(shí)現(xiàn),便可以完成取證式網(wǎng)站漏洞掃描的功能。
[0069]最后,需要注意的是,以上列舉的僅是本發(fā)明的具體實(shí)施例。顯然,本發(fā)明不限于以上實(shí)施例,還可以有很多變形。本領(lǐng)域的普通技術(shù)人員能從本發(fā)明公開的內(nèi)容中直接導(dǎo)出或聯(lián)想到的所有變形,均應(yīng)認(rèn)為是本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種取證式網(wǎng)站漏洞掃描方法,用于對(duì)被掃描網(wǎng)站進(jìn)行漏洞檢測(cè),其特征在于,包括以下步驟: a)頁面抓取:從被掃描網(wǎng)站的初始頁面開始解析,獲取被掃描網(wǎng)站的頁面鏈接,然后將頁面鏈接存入系統(tǒng)數(shù)據(jù)庫(kù)模塊,并保證相同頁面鏈接不重復(fù)存入,再?gòu)南到y(tǒng)數(shù)據(jù)庫(kù)模塊中提取已保存的并且未經(jīng)過頁面抓取步驟處理的頁面鏈接,進(jìn)行頁面訪問,并提取新的頁面鏈接存入到系統(tǒng)數(shù)據(jù)庫(kù)模塊,直至抓取完被掃描網(wǎng)站的所有頁面; b)漏洞掃描:在步驟a抓取到的頁面中,判斷是否還有尚未進(jìn)行漏洞檢測(cè)的頁面,若已沒有尚未進(jìn)行漏洞檢測(cè)的頁面,則轉(zhuǎn)步驟e,否則執(zhí)行:選擇一個(gè)尚未進(jìn)行漏洞檢測(cè)的頁面進(jìn)行漏洞檢測(cè),針對(duì)這個(gè)頁面,根據(jù)不同漏洞各自所對(duì)應(yīng)的檢測(cè)邏輯進(jìn)行漏洞分析,如果發(fā)現(xiàn)漏洞轉(zhuǎn)步驟C,否則重復(fù)執(zhí)行步驟b ; c)自動(dòng)取證:對(duì)步驟b中發(fā)現(xiàn)的漏洞,根據(jù)不同漏洞的取證邏輯進(jìn)行自動(dòng)取證,并自動(dòng)過濾掉誤報(bào),獲得能夠證明該漏洞存在的取證結(jié)果; d)信息收集:根據(jù)步驟b發(fā)現(xiàn)的漏洞,針對(duì)不同漏洞能采取的手工取證方法,自動(dòng)收集手工取證方法所需要的取證信息并進(jìn)行保存,完成后轉(zhuǎn)步驟b對(duì)其他頁面進(jìn)行漏洞檢測(cè); e)手工取證:使用步驟d收集的取證信息,根據(jù)不同漏洞能采取的相應(yīng)的手工取證方法進(jìn)行手工取證,并獲得用于確認(rèn)漏洞的真實(shí)性的手工取證結(jié)果。
2.根據(jù)權(quán)利要求1所述的一種取證式網(wǎng)站漏洞掃描方法,其特征在于,根據(jù)不同類型的網(wǎng)站漏洞,所述步驟c和步驟e中的取證結(jié)果包括以下數(shù)據(jù):頁面長(zhǎng)度、HTTP響應(yīng)碼、頁面請(qǐng)求響應(yīng)時(shí)間、頁面請(qǐng)求過程收發(fā)的報(bào)文、HTTP頭、會(huì)話及Cookie、頁面內(nèi)容、多個(gè)頁面請(qǐng)求之間的差異性(如頁面響應(yīng)碼的差異、頁面長(zhǎng)度的差異、內(nèi)容的差異等)、頁面在瀏覽器中的實(shí)際顯示效果及其截圖(部分漏洞可以使用瀏覽器進(jìn)行取證,不同的漏洞在瀏覽器中輸入是不一樣的,比如“跨站腳本”可以修改界面的標(biāo)題或彈出一個(gè)對(duì)話框,“目錄瀏覽”的顯示效果則是在瀏覽器中顯示一個(gè)目錄下的所有子目錄和子文件,不同的情況還有很多,不再列舉)。
3.根據(jù)權(quán)利要求1所述的一種取證式網(wǎng)站漏洞掃描方法,其特征在于,所述步驟d中的取證信息包括以下數(shù)據(jù):自動(dòng)構(gòu)造的用于進(jìn)一步取證的URL、HTTP頭、會(huì)話及Cookie、表單提交數(shù)據(jù)、HTTP請(qǐng)求數(shù)據(jù)包、HTTP響應(yīng)數(shù)據(jù)包。
4.根據(jù)權(quán)利要求1所述的一種取證式網(wǎng)站漏洞掃描方法,其特征在于,所述步驟c中的自動(dòng)取證包括以下方法: 1)直接將漏洞所在頁面的響應(yīng)內(nèi)容長(zhǎng)度、響應(yīng)碼、響應(yīng)時(shí)間、報(bào)文、頁面內(nèi)容作為取證結(jié)果,并以此判斷漏洞是否存在; 2)在原始頁面請(qǐng)求的基礎(chǔ)上進(jìn)行修改,自動(dòng)構(gòu)造至少一個(gè)新的http請(qǐng)求,并對(duì)這些不同請(qǐng)求的數(shù)據(jù)(包括響應(yīng)內(nèi)容長(zhǎng)度、響應(yīng)碼、響應(yīng)時(shí)間、報(bào)文、頁面內(nèi)容)進(jìn)行對(duì)比,把對(duì)比獲得的差異性作為取證結(jié)果,并以此判斷漏洞是否存在; 3)在漏洞所在頁面的返回內(nèi)容中匹配符合特征的文本,將匹配到的內(nèi)容作為取證結(jié)果,并以此判斷漏洞是否存在; 4)自動(dòng)模擬表單提交并獲取請(qǐng)求結(jié)果,并以此判斷漏洞是否存在; 5)使用瀏覽器內(nèi)核及瀏覽器對(duì)頁面的內(nèi)容進(jìn)行解析和排版,執(zhí)行頁面內(nèi)容中的腳本,將解析和排版的輸 出結(jié)果作為取證的結(jié)果,并以此判斷漏洞是否存在。
5.根據(jù)權(quán)利要求3所述的一種取證式網(wǎng)站漏洞掃描方法,其特征在于,所述步驟e的手工取證是可選的,能夠根據(jù)需要選擇性地執(zhí)行步驟e ;所述手工取證包括以下方法: 1)使用步驟d中獲取的自動(dòng)構(gòu)造的用于進(jìn)一步取證的URL,在瀏覽器中訪問,查看實(shí)際的URL執(zhí)行和顯示結(jié)果,結(jié)合漏洞的特征,判斷漏洞是否存在,且能將顯示結(jié)果截圖保存; 2)使用HTTP模擬發(fā)包器,將用于進(jìn)一步取證的URL,以及步驟d中獲取的HTTP頭、會(huì)話及Cookie、表單提交數(shù)據(jù)信息,填入HTTP模擬發(fā)包器中,并發(fā)送HTTP請(qǐng)求,查看返回的頁面內(nèi)容,結(jié)合漏洞的特征,判斷漏洞是否存在; 3)在瀏覽器中,將步驟d中獲取的表單提交數(shù)據(jù),填入漏洞所在頁面的表單中,并提交表單,查看提交表單后的頁面顯示結(jié)果,結(jié)合漏洞的特征,判斷漏洞是否存在; 4)利用專用工具,所述專用工具是指漏洞取證或滲透測(cè)試的工具,將進(jìn)一步取證的URL、步驟d中獲取的HTTP頭、會(huì)話及Cookie、表單提交數(shù)據(jù)信息,填入專用工具中進(jìn)一步取證或滲透,并查看結(jié)果, 結(jié)合漏洞的特征,判斷漏洞是否存在; 5)將步驟d中獲取的HTTP請(qǐng)求數(shù)據(jù)包和HTTP響應(yīng)數(shù)據(jù)包顯示在用戶界面上,并使用高亮、字體加粗方法將重要內(nèi)容突出顯示,結(jié)合漏洞的特征,人工判斷漏洞是否存在。
6.根據(jù)權(quán)利要求1所述的一種取證式網(wǎng)站漏洞掃描方法,其特征在于,能將網(wǎng)站漏洞和取證結(jié)果同時(shí)顯示在程序或系統(tǒng)的用戶界面中,或同時(shí)輸出到報(bào)表中;用戶根據(jù)這些信息判斷漏洞是否存在,以及漏洞的性質(zhì)和危害性。
7.根據(jù)權(quán)利要求1所述的一種取證式網(wǎng)站漏洞掃描方法,其特征在于,所述一種取證式網(wǎng)站漏洞掃描方法具有學(xué)習(xí)功能:用戶判斷漏洞是否誤報(bào),系統(tǒng)對(duì)用戶的判斷結(jié)果進(jìn)行記錄,在后續(xù)的掃描中再次出現(xiàn)相同漏洞時(shí),根據(jù)記錄中的用戶判斷結(jié)果過濾掉誤報(bào)的漏洞,即實(shí)現(xiàn)步驟c中的自動(dòng)過濾掉誤報(bào)。
8.基于權(quán)利要求1所述掃描方法的取證式網(wǎng)站漏洞掃描系統(tǒng),其特征在于,包括頁面抓取模塊、漏洞掃描模塊、自動(dòng)取證模塊、信息收集模塊、手工取證模塊、任務(wù)下發(fā)及管理模塊、掃描結(jié)果顯示及管理模塊、報(bào)表模塊、系統(tǒng)數(shù)據(jù)庫(kù)模塊、項(xiàng)目文件管理模塊; 所述頁面抓取模塊用于從被掃描網(wǎng)站的初始頁面或者系統(tǒng)數(shù)據(jù)庫(kù)模塊保存的頁面鏈接中,解析獲取新的頁面鏈接,然后將獲取的頁面鏈接存入系統(tǒng)數(shù)據(jù)庫(kù)模塊中,并保證相同頁面鏈接不重復(fù)存入(頁面抓取模塊中的系統(tǒng)數(shù)據(jù)庫(kù)模塊也能用項(xiàng)目文件來代替); 所述漏洞掃描模塊用于判斷頁面是否有經(jīng)過漏洞檢測(cè),并對(duì)未經(jīng)過漏洞檢測(cè)的頁面進(jìn)行檢測(cè); 所述自動(dòng)取證模塊用于對(duì)漏洞掃描模塊中發(fā)現(xiàn)的漏洞進(jìn)行自動(dòng)取證,并自動(dòng)過濾掉誤報(bào),獲得能夠證明該漏洞存在的取證結(jié)果; 所述信息收集模塊用于對(duì)漏洞掃描模塊中發(fā)現(xiàn)的漏洞,自動(dòng)收集并保存用于手工取證的取證信息; 所述手工取證模塊用于利用信息收集模塊收集的取證信息,進(jìn)行手工取證,并獲得用于確認(rèn)漏洞的真實(shí)性的手工取證結(jié)果; 所述任務(wù)下發(fā)及管理模塊用于提供給用戶啟動(dòng)掃描網(wǎng)站過程的操作手段,達(dá)到漏洞發(fā)現(xiàn)和取證的最終目的,通過支持用戶在用戶操作界面上下發(fā)掃描任務(wù),并對(duì)其進(jìn)行管理,包括暫停、停止、刪除、配置; 所述掃描結(jié)果顯示及管理模塊用于在掃描過程中以及掃描完成后,將掃描數(shù)據(jù)顯示在界面上,并支持用戶對(duì)掃描數(shù)據(jù)、手工取證結(jié)果和輸出報(bào)告進(jìn)行查看,掃描數(shù)據(jù)包括發(fā)現(xiàn)的漏洞、相應(yīng)網(wǎng)站的頁面鏈接、手工取證信息; 所述報(bào)表模塊用于將漏洞檢測(cè)的結(jié)果輸出到獨(dú)立文件中,獨(dú)立文件作為工作人員之間的交流、存檔或作為改進(jìn)網(wǎng)站系統(tǒng)的依據(jù),獨(dú)立文件能被導(dǎo)入到第三方系統(tǒng)中作進(jìn)一步的處理; 所述系統(tǒng)數(shù)據(jù)庫(kù)模塊用于存儲(chǔ)系統(tǒng)的配置信息、網(wǎng)站的漏洞、頁面鏈接,系統(tǒng)的配置信息包括賬號(hào)和日志信息; 所述項(xiàng)目文件管理模塊用于對(duì)項(xiàng)目文件進(jìn)行管理,包括創(chuàng)建、刪除、寫入數(shù)據(jù);項(xiàng)目文件是指能存儲(chǔ)頁面鏈接和漏洞數(shù)據(jù)的文件,每個(gè)任務(wù)下發(fā)及管理模塊所下發(fā)的任務(wù),都有一個(gè)對(duì)應(yīng)的項(xiàng) 目文件。
【文檔編號(hào)】G06F21/57GK103942497SQ201410185544
【公開日】2014年7月23日 申請(qǐng)日期:2014年4月30日 優(yōu)先權(quán)日:2013年9月11日
【發(fā)明者】林章峰, 范淵, 楊永清 申請(qǐng)人:杭州安恒信息技術(shù)有限公司