一種跨站漏洞掃描方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)安全技術(shù)領(lǐng)域,特別涉及一種跨站漏洞掃描方法及系統(tǒng)。
【背景技術(shù)】
[0002]近年來,隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,越來越多的用戶將其關(guān)鍵業(yè)務(wù)基于Web應(yīng)用。在通過使用瀏覽器實(shí)現(xiàn)各式各樣信息的展現(xiàn)和與Web服務(wù)器交互的同時,這些關(guān)鍵業(yè)務(wù)所受到的安全威脅也隨之而來。除此之外,由于用戶業(yè)務(wù)系統(tǒng)的復(fù)雜性及網(wǎng)絡(luò)環(huán)境的可變性,Web安全問題也被越來越多的用戶所重視。
[0003]跨站漏洞和SQL注入漏洞已經(jīng)成為威脅Web安全的兩大頭等漏洞。通過跨站漏洞可以實(shí)施掛馬、竊取各類系統(tǒng)的賬號、篡改或刪除后臺數(shù)據(jù)、竊取系統(tǒng)敏感數(shù)據(jù)、釣魚攻擊等,危害用戶的數(shù)據(jù)安全。
[0004]目前,檢測跨站漏洞主要采用靜態(tài)掃描和規(guī)則庫比對技術(shù),分別存在以下問題:
[0005](I)靜態(tài)掃描:跨站代碼基于HTML語言,HTML語言具有語法松散的特點(diǎn),跨站代碼實(shí)現(xiàn)有多種方法。隨著HTML5技術(shù)的應(yīng)用與發(fā)展,越來越多的屬性和方法應(yīng)用在Web應(yīng)用中,豐富了用戶體驗(yàn)。但與此同時也增加了更多的跨站攻擊方法??缯敬a屬于腳本語言,運(yùn)行于客戶端(瀏覽器)中,采用的是動態(tài)運(yùn)行機(jī)制,靜態(tài)掃描技術(shù)無法檢測到DOM型跨站漏洞。
[0006](2)規(guī)則庫比對技術(shù)無法針對變形跨站代碼與新增的跨站攻擊方法。
[0007]綜上,常規(guī)的跨站漏洞檢測技術(shù)具有漏報(bào)率高、誤報(bào)率高的缺陷。并且現(xiàn)有的跨站漏洞掃描工具基于單線程或單線程,效率低下,只能針對單一網(wǎng)址,不能針對整站檢測跨站漏洞。
【發(fā)明內(nèi)容】
[0008]本發(fā)明的目的旨在至少解決所述技術(shù)缺陷之一。
[0009]為此,本發(fā)明的目的在于提出一種跨站漏洞掃描方法及系統(tǒng),可以實(shí)現(xiàn)高效率、誤報(bào)率低、掃描全面的跨站漏洞檢測。
[0010]為了實(shí)現(xiàn)上述目的,本發(fā)明一方面的實(shí)施例提供一種跨站漏洞掃描方法,包括如下步驟:
[0011]對目標(biāo)站點(diǎn)的全站或單頁面的鏈接進(jìn)行爬??;
[0012]對爬取得到的鏈接以預(yù)設(shè)條件進(jìn)行過濾,以得到多個潛在跨站漏洞鏈接;
[0013]采用攻擊向量對每個所述潛在跨站漏洞鏈接進(jìn)行模糊測試;
[0014]在模糊測試過程中,采用瀏覽器內(nèi)核對每個所述潛在跨站漏洞鏈接的網(wǎng)頁源碼進(jìn)行動態(tài)解析,以判斷所述潛在跨站漏洞鏈接是否存在跨站漏洞;
[0015]將存在跨站漏洞的鏈接和對應(yīng)加載的攻擊向量保存至數(shù)據(jù)庫。
[0016]在本發(fā)明的一個實(shí)施例中,對爬取得到的鏈接以域名字段進(jìn)行分組保存。
[0017]在本發(fā)明的又一個實(shí)施例中,所述預(yù)設(shè)條件包括:重復(fù)功能鏈接、不具有可控輸入點(diǎn)的鏈接、不屬于目標(biāo)站點(diǎn)的鏈接,過濾掉符合所述預(yù)設(shè)條件的鏈接,將剩余鏈接設(shè)為潛在跨站漏洞鏈接。
[0018]在本發(fā)明的在一個實(shí)施例中,對每個所述潛在跨站漏洞鏈接,采用攻擊向量從攻擊向量規(guī)則庫選取對應(yīng)的測試規(guī)則進(jìn)行模糊測試,直至瀏覽器內(nèi)核判斷所述潛在跨站漏洞鏈接存在跨站漏洞,將存在跨站漏洞的鏈接和對應(yīng)加載的攻擊向量保存至數(shù)據(jù)庫;
[0019]如果所述潛在跨站漏洞鏈接在經(jīng)過攻擊向量規(guī)則庫中的所有測試規(guī)則的模糊測試后,所述瀏覽器內(nèi)核仍判斷所述潛在跨站漏洞鏈接不存在跨站漏洞,則結(jié)束對該潛在漏洞連接的模糊測試,將該不存在跨站漏洞的鏈接保存至數(shù)據(jù)庫;
[0020]其中,攻擊向量對所述潛在跨站漏洞鏈接進(jìn)行模糊測試,包括:偽造并向所述潛在跨站漏洞鏈接發(fā)送帶有攻擊向量請求,當(dāng)所述瀏覽器內(nèi)核判斷所述潛在跨站漏洞鏈接存在跨站漏洞時,則停止模糊測試,否則從所述攻擊向量規(guī)則庫中選擇下一條測試規(guī)則對該潛在跨站漏洞鏈接進(jìn)行模糊測試。
[0021]在本發(fā)明的一個實(shí)施例中,還包括如下步驟:模糊測試過程結(jié)束后,根據(jù)模糊測試結(jié)果生成檢測報(bào)告,其中,所述檢測報(bào)告包括:存在跨站漏洞的鏈接和對應(yīng)加載的攻擊向量,不存在跨站漏洞的鏈接。
[0022]本發(fā)明另一方面實(shí)施例提供一種跨站漏洞掃描系統(tǒng),包括:網(wǎng)頁爬蟲模塊,用于對目標(biāo)站點(diǎn)的全站或單頁面的鏈接進(jìn)行爬??;鏈接過濾試探模塊,用于對爬取得到的鏈接以預(yù)設(shè)條件進(jìn)行過濾,以得到多個潛在跨站漏洞鏈接;攻擊向量測試模塊,用于采用攻擊向量從內(nèi)置的攻擊向量規(guī)則庫中選取對應(yīng)的測試規(guī)則,對每個所述潛在跨站漏洞鏈接進(jìn)行模糊測試;瀏覽器內(nèi)核,用于在模糊測試過程中對每個所述潛在跨站漏洞鏈接的網(wǎng)頁源碼進(jìn)行動態(tài)解析,以判斷所述潛在跨站漏洞鏈接是否存在跨站漏洞;數(shù)據(jù)庫,用于存儲存在跨站漏洞的鏈接和對應(yīng)加載的攻擊向量。
[0023]在本發(fā)明的一個實(shí)施例中,所述網(wǎng)頁爬蟲模塊還用于對爬取得到的鏈接以域名字段進(jìn)行分組保存。
[0024]在本發(fā)明的又一個實(shí)施例中,所述預(yù)設(shè)條件包括:重復(fù)功能鏈接、不具有可控輸入點(diǎn)的鏈接、不屬于目標(biāo)站點(diǎn)的鏈接,所述鏈接過濾試探模塊過濾掉符合所述預(yù)設(shè)條件的鏈接,將剩余鏈接設(shè)為潛在跨站漏洞鏈接。
[0025]在本發(fā)明的再一個實(shí)施例中,對每個所述潛在跨站漏洞鏈接,所述攻擊向量測試模塊采用攻擊向量從攻擊向量規(guī)則庫中選取對應(yīng)的測試規(guī)則進(jìn)行模糊測試,直至所述瀏覽器內(nèi)核判斷所述潛在跨站漏洞鏈接存在跨站漏洞,將存在跨站漏洞的鏈接和對應(yīng)加載的攻擊向量保存至數(shù)據(jù)庫;如果所述潛在跨站漏洞鏈接在經(jīng)過攻擊向量規(guī)則庫中的所有測試規(guī)則的模糊測試后,所述瀏覽器內(nèi)核仍判斷所述潛在跨站漏洞鏈接不存在跨站漏洞,則所述攻擊向量測試模塊結(jié)束對該潛在漏洞連接的模糊測試,將該不存在跨站漏洞的鏈接保存至數(shù)據(jù)庫;其中,所述攻擊向量測試模塊采用攻擊向量對所述潛在跨站漏洞鏈接進(jìn)行模糊測試,包括:偽造并向所述潛在跨站漏洞鏈接發(fā)送帶有攻擊向量請求,當(dāng)所述瀏覽器內(nèi)核判斷所述潛在跨站漏洞鏈接存在跨站漏洞時,則停止模糊測試,否則從所述攻擊向量規(guī)則庫中選擇下一條測試規(guī)則對該潛在跨站漏洞鏈接進(jìn)行模糊測試。
[0026]在本發(fā)明的一個實(shí)施例中,還包括:報(bào)告生成模塊,用于在所述攻擊向量測試模塊模糊測試過程結(jié)束后,根據(jù)模糊測試結(jié)果生成檢測報(bào)告,其中,所述檢測報(bào)告包括:存在跨站漏洞的鏈接和對應(yīng)加載的攻擊向量,不存在跨站漏洞的鏈接。
[0027]根據(jù)本發(fā)明實(shí)施例的跨站漏洞掃描方法及系統(tǒng),可覆蓋各類網(wǎng)站的業(yè)務(wù),同爬取、鏈接過濾部分、攻擊向量測試等相互融合,協(xié)調(diào)工作,以掃描目標(biāo)網(wǎng)站環(huán)境,檢測跨站漏洞,具有效率高、誤報(bào)率低、掃描全面的特點(diǎn),可以為企業(yè)與個人提供技術(shù)支持,保障網(wǎng)站安全。
[0028]本發(fā)明提供的跨站漏洞掃描方法及系統(tǒng)具有以下有益效果:
[0029](I)誤報(bào)率低,引入WebKit瀏覽器引擎,通過WebKit瀏覽器引擎模擬腳本代碼執(zhí)行,接管WebKit底層函數(shù),可以非常準(zhǔn)確地判定輸入流是否存在跨站漏洞;
[0030](2)漏報(bào)率低,根據(jù)開發(fā)者對Web安全和跨站漏洞的多年研發(fā),總結(jié)出檢測跨站的大量心得與測試用例,結(jié)合開源的測試用例,可以組建強(qiáng)大的攻擊向量規(guī)則庫;
[0031](3)檢測效率高在整站爬取中采用多線程技術(shù),在跨站漏洞檢測中采用了多進(jìn)程+多線程的檢測技術(shù)。在短時間內(nèi)可以檢測更多的跨站漏洞,節(jié)省時間,提高工作效率。在鏈接過濾中運(yùn)用了 URL相似度檢測算法,去除重復(fù)或特征串類似的鏈接,可以節(jié)省漏洞檢測的時間,提高工作效率;
[0032](4)詳盡的日志報(bào)表,在掃描結(jié)束后,給出整站或單一目標(biāo)的所有跨站類型統(tǒng)計(jì),跨站攻擊測試用例,以及整改方案,方便企業(yè)與個人制定WEB加固措施。
[0033]本發(fā)明附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實(shí)踐了解到。
【附圖說明】
[0034]本發(fā)明的上述和/或附加的方面和優(yōu)點(diǎn)從結(jié)合下面附圖對實(shí)施例的描述中將變得明顯和容易理解,其中:
[0035]圖1為根據(jù)本發(fā)明優(yōu)選實(shí)施方式的跨站漏洞掃描方法的流程圖;
[0036]圖2為根據(jù)本發(fā)明另一種實(shí)施方式的跨站漏洞掃描方法的流程圖;
[0037]圖3為根據(jù)本發(fā)明又一種實(shí)施方式的跨站漏洞掃描方法的流程圖;
[0038]圖4為根據(jù)本發(fā)明優(yōu)選實(shí)施反式的跨站漏洞掃描系統(tǒng)的結(jié)構(gòu)圖;
[0039]圖5為根據(jù)本發(fā)明另一種實(shí)施方式的跨站漏洞掃描系統(tǒng)的結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0040]下面詳細(xì)描述本發(fā)明的實(shí)施例,實(shí)施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號表示相同或類似的元件或具有相同或類