資源隔離:資源隔離技術(shù)是使用LXC (Linux Container),基于進(jìn)程容器(Processcontainer)的輕量級虛擬化解決方案。將各種應(yīng)用程序和他們所依賴的運(yùn)行環(huán)境打包成標(biāo)準(zhǔn)的container/image,進(jìn)而發(fā)布到不同的平臺上運(yùn)行。
[0037]實(shí)施例一
[0038]圖1為本發(fā)明的實(shí)施例的一種基于資源隔離的跨站腳本漏洞的線下檢測系統(tǒng)的功能框圖。如圖1所示,該系統(tǒng)包括:自動化檢測系統(tǒng)前端控制裝置110、自動化測試環(huán)境資源隔離裝置120、網(wǎng)絡(luò)流量轉(zhuǎn)發(fā)裝置130、分布式調(diào)度裝置140、跨站腳本漏洞安全測試裝置 150。
[0039]自動化檢測系統(tǒng)前端控制裝置110,用于接收安全測試指令,獲取功能測試服務(wù)器的IP和功能測試項目HOST (虛擬化網(wǎng)址)。具體實(shí)施時,自動化檢測系統(tǒng)前端控制裝置110接收安全測試人員的指令,輸入功能測試服務(wù)器的IP和功能測試項目HOST、安全測試項目編號(可選)。該裝置110即會發(fā)送特定控制指令,控制其他裝置完成指定動作。并接收跨站腳本漏洞安全測試裝置150發(fā)送來的漏洞數(shù)據(jù),根據(jù)IP和HOST的唯一性,將漏洞信息指向到歸屬的安全測試項目中,實(shí)現(xiàn)全部自動化。其中,安全測試項目編號的作用是用于確定安全測試項目的具體內(nèi)容。
[0040]自動化測試環(huán)境資源隔離裝置120,用于接受自動化檢測系統(tǒng)前端控制裝置110的控制指令,將目標(biāo)功能測試環(huán)境進(jìn)行資源隔離,打包標(biāo)準(zhǔn)化的資源隔離鏡像,部署到安全測試環(huán)境中。通過在自動化檢測系統(tǒng)前端控制裝置110的控制下,將目標(biāo)功能測試環(huán)境進(jìn)行資源隔離和將目標(biāo)功能測試環(huán)境進(jìn)行標(biāo)準(zhǔn)化打包,發(fā)送到安全測試服務(wù)器上進(jìn)行安裝,從而實(shí)現(xiàn)了測試環(huán)境的資源隔離,安全測試不對功能測試造成數(shù)據(jù)污染。
[0041]網(wǎng)絡(luò)流量轉(zhuǎn)發(fā)裝置130,用于接收自動化檢測系統(tǒng)前端控制裝置110的控制指令,部署在目標(biāo)功能測試環(huán)境中(即部署到功能測試的服務(wù)器上),將符合功能測試項目的網(wǎng)絡(luò)流量轉(zhuǎn)發(fā)到分布式調(diào)度裝置140。
[0042]分布式調(diào)度裝置140,用于將各個目標(biāo)功能測試環(huán)境上的網(wǎng)絡(luò)流量轉(zhuǎn)發(fā)裝置130轉(zhuǎn)發(fā)的網(wǎng)絡(luò)流量進(jìn)行數(shù)據(jù)封裝,并將封裝后的測試數(shù)據(jù)分發(fā)到跨站腳本漏洞安全測試裝置150 (即分發(fā)測試請求)。這里的重新封裝是指封裝為符合跨站腳本漏洞安全測試裝置150處理的數(shù)據(jù)模塊。具體而言,封裝是指將功能測試的http請求,按照一定規(guī)則封裝成跨站腳本漏洞安全測試裝置接口需要的數(shù)據(jù)包??缯灸_本漏洞安全測試裝置150能夠?qū)⒃摂?shù)據(jù)包重新還原成http請求,并通過安全測試請求發(fā)送至被資源隔離的安全測試環(huán)境。
[0043]跨站腳本漏洞安全測試裝置150,用于接收分布式調(diào)度裝置140分發(fā)過來的封裝后的數(shù)據(jù)包,將該封裝后的數(shù)據(jù)包還原成符合功能測試項目的網(wǎng)絡(luò)流量,發(fā)送攜帶該符合功能測試項目的網(wǎng)絡(luò)流量的安全測試請求至已被資源隔離的安全測試環(huán)境,然后將安全測試環(huán)境返回的頁面進(jìn)行解析后,找出跨站腳本安全漏洞,將發(fā)現(xiàn)的跨站腳本安全漏洞發(fā)送到自動化檢測系統(tǒng)前端控制裝置110 ;即將漏洞的詳細(xì)信息發(fā)送至自動化檢測系統(tǒng)前端控制裝置110。
[0044]自動化檢測系統(tǒng)前端控制裝置110,還用于根據(jù)功能測試服務(wù)器的IP和功能測試項目HOST,確定安全漏洞所歸屬的安全測試項目。具體地,該自動化檢測系統(tǒng)前端控制裝置110根據(jù)單測試環(huán)境IP下HOST唯一性,將漏洞直接定位到安全測試項目編號,并在前端頁面上進(jìn)行展示,等待人工進(jìn)行查看。
[0045]進(jìn)一步地,該自動化測試環(huán)境資源隔離裝置120,具體可用于將目標(biāo)功能測試環(huán)境進(jìn)行容器虛擬化的資源隔離。具體實(shí)施時,自動化測試環(huán)境資源隔離裝置120將目標(biāo)功能測試環(huán)境進(jìn)行虛擬化的資源隔離,并打包發(fā)送到安全測試的服務(wù)器上進(jìn)行容器虛擬化部署,將目標(biāo)功能測試環(huán)境完整復(fù)制到安全測試服務(wù)器。其中,上述目標(biāo)功能測試環(huán)境可以是基于Linux系統(tǒng)搭建的測試環(huán)境。
[0046]進(jìn)一步地,該跨站腳本漏洞安全測試裝置150,具體可用于對安全測試環(huán)境返回的網(wǎng)頁源碼數(shù)據(jù)進(jìn)行DOM(Document Object Model,文檔對象模型)樹檢測,如果發(fā)現(xiàn)新增了安全測試的靶點(diǎn)DOM樹,則判定/認(rèn)為存在跨站腳本安全漏洞,否則,不存在跨站腳本安全漏洞。這種檢測方式的優(yōu)點(diǎn)在于檢測速度快,準(zhǔn)確度高,跨站腳本漏洞安全測試裝置150包含的網(wǎng)頁源碼解析模塊自帶DOM樹檢測,能在解析完成后同時給出DOM樹的檢測結(jié)果。
[0047]進(jìn)一步地,該跨站腳本漏洞安全測試裝置150,還用于還原處理后得到的符合功能測試項目的網(wǎng)絡(luò)流量進(jìn)行安全測試數(shù)據(jù)拼接處理,并將拼接處理后的數(shù)據(jù)攜帶在安全測試請求中發(fā)送至被資源隔離的安全測試環(huán)境。在本實(shí)施例中,跨站腳本漏洞的檢測方式是在http包的各處(URL,referer,cookie)等,拼接測試使用的安全測試數(shù)據(jù)(業(yè)內(nèi)術(shù)語叫payload),通過在返回的頁面中尋找是否存在相應(yīng)的測試預(yù)期內(nèi)容來判斷是否存在跨站腳本漏洞。
[0048]上述技術(shù)方案的有益技術(shù)效果在于:
[0049]由于采用了基于資源隔離的跨站腳本漏洞線下檢測系統(tǒng),使得線下跨級腳本安全測試實(shí)現(xiàn)了全部自動化操作,并且臟數(shù)據(jù)不對目標(biāo)功能測試環(huán)境造成影響,可以使安全測試與功能測試同步進(jìn)行,大大提高了安全測試的覆蓋率和自動化程度。
[0050]實(shí)施例二
[0051]本發(fā)明的實(shí)施例提供了一種基于資源隔離的跨站腳本漏洞的線下檢測方法,從而自動化地完成線下安全測試。
[0052]圖2為本發(fā)明的實(shí)施例的基于資源隔離的跨站腳本漏洞的線下檢測方法的流程圖。結(jié)合參閱圖1和圖2,該方法包括如下處理步驟:
[0053]步驟210:自動化檢測系統(tǒng)前端控制裝置接收安全測試指令,獲取功能測試服務(wù)器的IP和功能測試項目HOST (虛擬化網(wǎng)址);
[0054]具體地,在本步驟中,功能測試人員會將程序的功能測試的項目編號、測試環(huán)境的HOST和服務(wù)器IP輸入到自動化檢測系統(tǒng)前端控制裝置中。
[0055]步驟220:自動化測試環(huán)境資源隔離裝置接受自動化檢測系統(tǒng)前端控制裝置的控制指令,將目標(biāo)功能測試環(huán)境進(jìn)行資源隔離,打包標(biāo)準(zhǔn)化的資源隔離鏡像,部署到安全測試環(huán)境中;
[0056]步驟230:網(wǎng)絡(luò)流量轉(zhuǎn)發(fā)裝置接收自動化檢測系統(tǒng)前端控制裝置的控制指令,部署在目標(biāo)功能測試環(huán)境中,將符合功能測試項目的網(wǎng)絡(luò)流量轉(zhuǎn)發(fā)到分布式調(diào)度裝置;該目標(biāo)功能測試環(huán)境包括基于Linux系統(tǒng)搭建的測試環(huán)境。
[0057]步驟240:分布式調(diào)度裝置將各個目標(biāo)功能測試環(huán)境上的網(wǎng)絡(luò)流量轉(zhuǎn)發(fā)裝置轉(zhuǎn)發(fā)的網(wǎng)絡(luò)流量進(jìn)行數(shù)據(jù)封裝,并將封裝后的數(shù)據(jù)包分發(fā)到跨站腳本漏洞安全測試裝置;
[0058]步驟250:跨站腳本漏洞安全測試裝置接收分布式調(diào)度裝置分發(fā)過來的封裝后的數(shù)據(jù)包,將該封裝后的數(shù)據(jù)包還原成上述符合功能測試項目的網(wǎng)絡(luò)流量,發(fā)送攜帶該符合功能測試項目的網(wǎng)絡(luò)流量的安全測試請求至已被資源隔離的安全測試環(huán)境,然后將安全測試環(huán)境返回的頁面進(jìn)行解析后,找出跨站腳本安全漏洞,并將發(fā)現(xiàn)的安全漏洞發(fā)送到自動化檢測系統(tǒng)前端控制裝置;
[0059]步驟260:自動化檢測系統(tǒng)前端控制裝置根據(jù)功能測試服務(wù)器的IP和功能測試項目HOST,確定安全漏洞所歸屬的安全測試項目。系統(tǒng)還將安全測試結(jié)果發(fā)送到安全測試的前端頁面。安全測試人員對自動化安全測試的結(jié)果進(jìn)行再次檢查,確認(rèn)無誤,將安全測試結(jié)果進(jìn)行存檔并進(jìn)行修復(fù)。
[0060]較佳地,在步驟220中,自動化測試環(huán)境資源隔離裝置將目標(biāo)功能測試環(huán)境進(jìn)行資源隔離的處理包括:自動化測試環(huán)境資源隔離裝置將目標(biāo)功能測試環(huán)境進(jìn)行容器虛擬化的資源隔離。也即在本步驟中使用資源隔離技術(shù),將功能測試的環(huán)境進(jìn)行容器虛擬化的