跨站腳本漏洞的線下檢測方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)安全技術(shù)領(lǐng)域,尤其涉及跨站腳本漏洞(XSS)檢測的方法和系統(tǒng)。
【背景技術(shù)】
[0002]目前在Web程序項(xiàng)目的安全測試工作中,安全測試人員除了要對程序進(jìn)行安全測試,還要對程序的邏輯有充分的了解,才能盡可能對程序的安全測試進(jìn)行覆蓋。安全測試的覆蓋率始終低于功能測試的覆蓋率,導(dǎo)致不能測試所有可能的程序分支,出現(xiàn)線上安全漏洞。
[0003]現(xiàn)有技術(shù)一的技術(shù)方案如下:
[0004]獲取目標(biāo)頁面的源代碼并提取其中的腳本代碼,遍歷所有腳本代碼,利用預(yù)先定義的臟數(shù)據(jù)入口獲取腳本代碼中所有臟數(shù)據(jù)入口及臟數(shù)據(jù)入口傳遞的變量;再次遍歷所有腳本代碼,獲取所述腳本代碼中的輸出函數(shù),并提取輸出函數(shù)的參數(shù)與臟數(shù)據(jù)入口及臟數(shù)據(jù)入口傳遞的變量進(jìn)行匹配,若能匹配,則確定有漏洞存在。
[0005]現(xiàn)有技術(shù)一的缺點(diǎn)在于:
[0006]現(xiàn)在Web2.0網(wǎng)站已成主流,大量的網(wǎng)頁都是由腳本代碼動(dòng)態(tài)生成的網(wǎng)頁,跨站腳本可能存在于網(wǎng)頁的任何地方,僅僅通過源代碼進(jìn)行遍歷是不能對目前的網(wǎng)頁進(jìn)行全部漏洞檢測覆蓋。
[0007]跨網(wǎng)站腳本XSS的防御技術(shù)在網(wǎng)絡(luò)上五花八門,通過對輸出臟數(shù)據(jù)進(jìn)行簡單的匹配是無法獲得所有存在漏洞的網(wǎng)頁,容易造成誤報(bào)和漏報(bào)。XSS:跨網(wǎng)站腳本(Cross-sitescripting,通常簡稱為XSS或跨站腳本或跨站腳本攻擊)是一種網(wǎng)站應(yīng)用程序的安全漏洞攻擊,是代碼注入的一種。它允許惡意用戶將代碼注入到網(wǎng)頁上,其他用戶在觀看網(wǎng)頁時(shí)就會(huì)受到影響。這類攻擊通常包含了 HTML以及用戶端腳本語言。
[0008]現(xiàn)有技術(shù)二的技術(shù)方案如下:
[0009]基于爬蟲方式抓取頁面所有URL (統(tǒng)一資源定位符,Uniform Resource Locator)進(jìn)行驗(yàn)證攻擊測試。
[0010]現(xiàn)有技術(shù)二的缺點(diǎn)在于:
[0011]1、爬蟲可能抓取大量無用的頁面,且無法定制頁面;這樣,在擁有添加、刪除、修改操作的功能點(diǎn)上,使用多個(gè)漏洞驗(yàn)證腳本會(huì)產(chǎn)生大量的垃圾數(shù)據(jù),且會(huì)刪除掉正常的內(nèi)容;這不僅消耗大量的時(shí)間,而且會(huì)降低業(yè)務(wù)邏輯覆蓋率。
[0012]2、爬蟲的抓取率無法控制,并且現(xiàn)在很多Web 2.0的頁面是需要經(jīng)過瀏覽器解析或者需要交互才產(chǎn)生請求操作,這些URL是無法通過爬蟲獲取到的。
[0013]3、綜上,爬蟲的測試覆蓋率不能達(dá)到目前技術(shù)下的安全測試需求。
【發(fā)明內(nèi)容】
[0014]本發(fā)明的目的在于,提供一種跨站腳本漏洞的線下檢測方法和系統(tǒng),以將功能測試與安全測試進(jìn)行隔離,提升安全測試的覆蓋率。
[0015]為達(dá)上述目的,本發(fā)明一方面提供了一種跨站腳本漏洞的線下檢測方法,其包括:
[0016]自動(dòng)化檢測系統(tǒng)前端控制裝置接收安全測試指令,獲取功能測試服務(wù)器的IP和功能測試項(xiàng)目虛擬化網(wǎng)址HOST ;
[0017]自動(dòng)化測試環(huán)境資源隔離裝置接受所述自動(dòng)化檢測系統(tǒng)前端控制裝置的控制指令,將目標(biāo)功能測試環(huán)境進(jìn)行資源隔離,打包標(biāo)準(zhǔn)化的資源隔離鏡像,部署到安全測試環(huán)境中;
[0018]網(wǎng)絡(luò)流量轉(zhuǎn)發(fā)裝置接收所述自動(dòng)化檢測系統(tǒng)前端控制裝置的控制指令,部署在目標(biāo)功能測試環(huán)境中,將符合功能測試項(xiàng)目的網(wǎng)絡(luò)流量轉(zhuǎn)發(fā)到分布式調(diào)度裝置;
[0019]所述分布式調(diào)度裝置將各個(gè)目標(biāo)功能測試環(huán)境上的網(wǎng)絡(luò)流量轉(zhuǎn)發(fā)裝置轉(zhuǎn)發(fā)的網(wǎng)絡(luò)流量進(jìn)行數(shù)據(jù)封裝,并將封裝后的數(shù)據(jù)包分發(fā)到跨站腳本漏洞安全測試裝置;
[0020]所述跨站腳本漏洞安全測試裝置接收所述分布式調(diào)度裝置分發(fā)過來的封裝后的數(shù)據(jù)包,將所述封裝后的數(shù)據(jù)包還原成所述符合功能測試項(xiàng)目的網(wǎng)絡(luò)流量,發(fā)送攜帶所述符合功能測試項(xiàng)目的網(wǎng)絡(luò)流量的安全測試請求至已被資源隔離的所述安全測試環(huán)境,然后將所述安全測試環(huán)境返回的頁面進(jìn)行解析后,找出跨站腳本安全漏洞,并將發(fā)現(xiàn)的安全漏洞發(fā)送到所述自動(dòng)化檢測系統(tǒng)前端控制裝置;
[0021]所述自動(dòng)化檢測系統(tǒng)前端控制裝置根據(jù)所述功能測試服務(wù)器的IP和功能測試項(xiàng)目HOST,確定所述安全漏洞所歸屬的安全測試項(xiàng)目。
[0022]為達(dá)上述目的,本發(fā)明另一方面提供了一種跨站腳本漏洞的線下檢測系統(tǒng),其包括:
[0023]自動(dòng)化檢測系統(tǒng)前端控制裝置,用于接收安全測試指令,獲取功能測試服務(wù)器的IP和功能測試項(xiàng)目虛擬化網(wǎng)址HOST ;
[0024]自動(dòng)化測試環(huán)境資源隔離裝置,用于接收所述自動(dòng)化檢測系統(tǒng)前端控制裝置的控制指令,將目標(biāo)功能測試環(huán)境進(jìn)行資源隔離,打包標(biāo)準(zhǔn)化的資源隔離鏡像,部署到安全測試環(huán)境中;
[0025]網(wǎng)絡(luò)流量轉(zhuǎn)發(fā)裝置,用于接收所述自動(dòng)化檢測系統(tǒng)前端控制裝置的控制指令,部署在目標(biāo)功能測試環(huán)境中,將符合功能測試項(xiàng)目的網(wǎng)絡(luò)流量轉(zhuǎn)發(fā)到分布式調(diào)度裝置;
[0026]所述分布式調(diào)度裝置,用于將各個(gè)目標(biāo)功能測試環(huán)境上的網(wǎng)絡(luò)流量轉(zhuǎn)發(fā)裝置轉(zhuǎn)發(fā)的網(wǎng)絡(luò)流量進(jìn)行數(shù)據(jù)封裝,并將封裝后的數(shù)據(jù)包分發(fā)到跨站腳本漏洞安全測試裝置;
[0027]所述跨站腳本漏洞安全測試裝置,用于接收所述分布式調(diào)度裝置分發(fā)過來的封裝后的數(shù)據(jù)包,將所述封裝后的數(shù)據(jù)包還原成所述符合功能測試項(xiàng)目的網(wǎng)絡(luò)流量,發(fā)送攜帶所述符合功能測試項(xiàng)目的網(wǎng)絡(luò)流量的安全測試請求至已被資源隔離的所述安全測試環(huán)境,然后將所述安全測試環(huán)境返回的頁面進(jìn)行解析后,找出跨站腳本安全漏洞,并將發(fā)現(xiàn)的跨站腳本安全漏洞發(fā)送到所述自動(dòng)化檢測系統(tǒng)前端控制裝置;
[0028]所述自動(dòng)化檢測系統(tǒng)前端控制裝置,還用于根據(jù)所述功能測試服務(wù)器的IP和功能測試項(xiàng)目HOST,確定所述安全漏洞所歸屬的安全測試項(xiàng)目。
[0029]本發(fā)明提供的上述技術(shù)方案的有益技術(shù)效果在于:由于采用了基于資源隔離的跨站腳本漏洞線下檢測方法,使得線下跨級腳本安全測試實(shí)現(xiàn)了全部自動(dòng)化操作,并且臟數(shù)據(jù)不對目標(biāo)功能測試環(huán)境造成影響,可以使安全測試與功能測試同步進(jìn)行,大大提高了安全測試的覆蓋率和自動(dòng)化程度。
【附圖說明】
[0030]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0031]圖1為本發(fā)明的實(shí)施例的一種基于資源隔離的跨站腳本漏洞的線下檢測系統(tǒng)的功能框圖;
[0032]圖2為本發(fā)明的實(shí)施例的基于資源隔離的跨站腳本漏洞的線下檢測方法的流程圖。
【具體實(shí)施方式】
[0033]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0034]本發(fā)明的實(shí)施例通過抓取功能測試人員的測試訪問請求,將功能測試的覆蓋率直接轉(zhuǎn)移到安全測試,大大提升了安全測試的覆蓋率。并通過測試環(huán)境的資源隔離,將功能測試與安全測試進(jìn)行隔離,安全測試的臟數(shù)據(jù)不影響功能測試的環(huán)境,并且可以進(jìn)一步降低安全測試所消耗的計(jì)算資源和人力資源。在功能測試的同時(shí),進(jìn)行安全測試,提升了安全測試的進(jìn)度。以下將本發(fā)明的實(shí)施例中涉及的技術(shù)術(shù)語解釋如下:
[0035]HOST:軟件測試使用的虛擬化網(wǎng)址,通過IP和域名寫入服務(wù)器的/etc/hosts實(shí)現(xiàn)。通過該服務(wù)器訪問寫入的域名,會(huì)指向/etc/hosts文件中與該域名綁定的IP。
[0036]