蒙星潮?龍成?李濤
摘 要 Web應(yīng)用在如今的網(wǎng)絡(luò)世界中越來越重要,由于其應(yīng)用廣泛,因而容易遭受黑客的惡意攻擊。而市面上的一些web安全防護(hù)系統(tǒng)存在系統(tǒng)資源占用過多,用戶體驗(yàn)不友好等問題,團(tuán)隊(duì)基于Python設(shè)計(jì)了一個web安全防護(hù)系統(tǒng),在其他同類產(chǎn)品的基礎(chǔ)上,改良漏洞檢測方法,提升漏洞檢測效率,并增加了調(diào)節(jié)線程和定制化服務(wù),提高用戶體驗(yàn)。本文介紹了該防護(hù)系統(tǒng)的設(shè)計(jì)思路,工作原理,具體實(shí)現(xiàn)以及實(shí)驗(yàn)測試。
關(guān)鍵詞 python;web安全防護(hù)系統(tǒng);漏洞檢測
引言
隨著信息時代的發(fā)展,各種WEB應(yīng)用在個人、各大企業(yè)、政府甚至是軍隊(duì)中廣泛使用,WEB應(yīng)用在被廣泛使用的同時,其帶來的安全問題也最為嚴(yán)重。2019年全年,阿里云安全團(tuán)隊(duì)對Web攻擊量進(jìn)行了統(tǒng)計(jì)發(fā)現(xiàn)每個月都會產(chǎn)生巨大的Web攻擊量,每個月都會有Web應(yīng)用遭遇到各類自動化攻擊工具的攻擊。當(dāng)惡意攻擊者針對Web服務(wù)發(fā)動應(yīng)用層攻擊時,如注入、失效的身份認(rèn)證、敏感數(shù)據(jù)泄露、XML外部實(shí)體、失效的訪問控制、安全配置錯誤、跨站腳本、不安全的反序列化等[1],傳統(tǒng)分組過濾防火墻無法檢測到異常流量[2]。所以在面對如此巨大的攻擊量,迫切需要構(gòu)建一個全面的Web安全防護(hù)系統(tǒng),及時修復(fù)Web應(yīng)用漏洞,提升Web應(yīng)用安全性。
為了使用戶獲得更好的用戶體驗(yàn),對安全防護(hù)進(jìn)行研究,根據(jù)當(dāng)下產(chǎn)品提出一個基于Python的Web安全防護(hù)系統(tǒng),該系統(tǒng)能夠?qū)ΤR?guī)漏洞以及高危漏洞進(jìn)行檢測和防護(hù)。
1思路和工作原理
針對SQL注入攻擊和XSS攻擊,本系統(tǒng)打破傳統(tǒng)工具的“隨機(jī)攻擊代碼生成并進(jìn)行檢測”方案[3],基于web程序?qū)粝蛄縿討B(tài)的反饋信息和代碼本身,依此生成的代碼SQL&XSS攻擊代碼經(jīng)過變形和編碼,使得系統(tǒng)大大增加了繞過過濾系統(tǒng)的概率。同時系統(tǒng)為測試人員提供多個變形策略以供選擇,進(jìn)一步增加了繞過的可能,增加安全檢測的準(zhǔn)確度。更好的發(fā)現(xiàn)漏洞、利用漏洞,以便修復(fù)漏洞。并且在檢測存儲型XSS漏洞方面做出創(chuàng)新,系統(tǒng)根據(jù)規(guī)則結(jié)合網(wǎng)絡(luò)爬蟲獲取并解析各種web應(yīng)用中可能發(fā)生存儲型XSS漏洞的注入點(diǎn)。對檢測到的可能的注入點(diǎn),由基于BNF范式的攻擊向量生成模塊生成檢測代碼[4],使用多種變形策略對代碼進(jìn)行變形,然后進(jìn)行安全檢測;針對文件上傳漏洞,本系統(tǒng)對上傳的文件從內(nèi)容,拓展名,文件大小以及文件路徑進(jìn)行檢測,并對上傳的進(jìn)行重命名操作;針對弱口令漏洞,本系統(tǒng)利用爬蟲找到需要口令的界面利用字典進(jìn)行爆破,用戶可以自行添加字典或者使用本系統(tǒng)默認(rèn)字典進(jìn)行爆破,檢測是否含有弱口令,如果有會報(bào)告給相關(guān)人員進(jìn)行更改。針對安全等級測評,本系統(tǒng)通過對檢測結(jié)果的分析,以及根據(jù)國家對WEB應(yīng)用的安全等級測評規(guī)則來進(jìn)行安全等級評定,并推行出可行性的解決方案[5]。
本系統(tǒng)的工作原理可以分為四個部分,第一部分:輸入目標(biāo)URL;第二部分:爬取目標(biāo)URL目錄結(jié)構(gòu),提供給用戶進(jìn)行分析;第三部分:用各個漏洞檢測模塊對漏洞進(jìn)行檢測以及利用安全等級測評模塊進(jìn)行安全等級評估,系統(tǒng)將檢測結(jié)果存儲;第四部分:顯示檢測結(jié)果,提供用戶對結(jié)果進(jìn)行進(jìn)一步分析,確認(rèn)漏洞,并進(jìn)行相應(yīng)修復(fù)。
2具體設(shè)計(jì)與實(shí)現(xiàn)
本系統(tǒng)由常規(guī)漏洞爬蟲檢測模塊[6]、XSS攻擊載荷變形模塊、XSS攻擊檢測模塊、SQL注入檢測模塊和結(jié)果顯示模塊四個模塊組成。
2.1 常規(guī)漏洞爬蟲檢測模塊
(1)對超鏈接的內(nèi)容進(jìn)行記錄,做下一步爬蟲繼續(xù)爬取的目標(biāo)。
(2)對提交表單的名稱進(jìn)行記錄,做下一步文件上傳漏洞[7]的檢測、弱口令漏洞檢測和文件解析漏洞的檢測的目標(biāo)。
因?yàn)樵诖蟛糠脂F(xiàn)存的web掃描器中對于目標(biāo)網(wǎng)頁爬蟲分析都不充分,而本模塊是把頁面中所有的超鏈接都作為下一次爬蟲抓取的目標(biāo),做到不放過任何一個可疑的頁面。從而找到一些被忽略的上傳頁面、登錄、注冊等具有漏洞的頁面,做到雖然不同的目標(biāo)頁面構(gòu)造不同,但能結(jié)合具體的環(huán)境來檢測的效果。由于爬取的數(shù)據(jù)過大,本模塊還提供線程設(shè)置功能從而加快爬蟲爬取的速度。
2.2 攻擊載荷變形模塊
SQL&XSS漏洞[8-9]攻擊中,開發(fā)者一般都會使用一些過濾手段而防范SQL&XSS攻擊,而往往過濾是不全面的,可能攻擊者換一個語句或者換一種編碼、變形的方式就會繞過過濾。攻擊載荷模塊目的就是為了全方位的去測試目標(biāo)網(wǎng)頁的過濾機(jī)制的牢固性,提供多種不同的攻擊語句變形方式同時還具有拓展的功能,我們設(shè)計(jì)了四個工作流程來完成本模塊的功能:
(1)初始化payload庫(可以在payload文件里面添加新的payload)。
(2)根據(jù)不同功能在payload庫中選擇不同類別的payload。
(3)讀取payload變形方法庫,對用戶選好的payload進(jìn)行每種方法的變形。
(4)將變形后的payload輸出在對應(yīng)變形方法的輸出框中。
2.3 XSS攻擊檢測模塊
XSS攻擊檢測模塊的主要分為目標(biāo)板塊、爬蟲板塊、測試板塊和記錄板塊。目標(biāo)板塊是對目標(biāo)的URL進(jìn)行記錄和管理,可以對多個目標(biāo)同時進(jìn)行測試,還會記錄那些目標(biāo)是已經(jīng)測試的。爬蟲板塊是對目標(biāo)頁面進(jìn)行爬蟲爬取分析尋找測試的切入點(diǎn)如:查詢的輸入框,內(nèi)容提交框等。切入點(diǎn)尋找完成后,將會進(jìn)行XSS攻擊的測試即進(jìn)行測試板塊,在該板塊中我們除了會對payload庫中的全部攻擊載荷進(jìn)行測試外,還會調(diào)用XSS攻擊載荷的變形模塊對每一個攻擊載荷變形后進(jìn)行測試。最后記錄板塊會根據(jù)頁面是否執(zhí)行我們的代碼效果來分辨目標(biāo)是否存在XSS漏洞,如果存在則進(jìn)行目標(biāo)漏洞位置的記錄和相應(yīng)攻擊代碼。
2.4 SQL注入檢測模塊
在SQL注入檢測模塊中,主要進(jìn)行如下四個方面的檢測工作:
(1)對常規(guī)漏洞爬蟲檢測模塊中所記錄的超鏈接內(nèi)容進(jìn)行調(diào)用。
(2)進(jìn)行SQL注入點(diǎn)的分析(構(gòu)造注入的判斷語句進(jìn)行分析,包括常見的一些繞過的構(gòu)造方面,對存在的點(diǎn)進(jìn)行保留)。
(3)進(jìn)行SQL注入的判斷,使用一些惡意代碼進(jìn)行SQL注入嘗試獲取更多的信息,然后記錄每一個惡意代碼的回顯分析。
(4)根據(jù)SQL注入的判斷,惡意代碼的回顯提供相應(yīng)的修復(fù)建議。
在(2)(3)中使用的SQL測試語句,用戶可以按照自己的測試經(jīng)驗(yàn)進(jìn)行拓展,隨著用戶的拓展,對SQL注入的判斷也會越來越精確,因此本模塊具有強(qiáng)大的靈活性。同時本模塊還有多線程的工作模塊,工作效率高。
2.5 結(jié)果顯示模塊
結(jié)果顯示模塊是對于常規(guī)漏洞爬蟲檢測模塊、XSS攻擊檢測模塊和SQL注入檢測模塊中所得到的結(jié)果先進(jìn)行數(shù)據(jù)庫的備份,再根據(jù)每個漏洞的危害性而形成一個專業(yè)的安全報(bào)告提供給用戶,其中還對每個漏洞有一些常規(guī)的修復(fù)方法的提示。
當(dāng)然,除了本系統(tǒng)設(shè)置好的漏洞之外用戶還可以使用python編寫其他漏洞的檢測模塊,然后進(jìn)行報(bào)告漏洞等級的添加,本系統(tǒng)有相應(yīng)的代碼模板存在,用戶只要會python語言就能進(jìn)行開發(fā)。
3測試和驗(yàn)證
3.1 測試過程
將本系統(tǒng)同Acunetix Web Vulnerability Scanner(簡稱AWVS),Burp Suite的爬蟲模塊、SQL Injection檢測模塊以及XSS模塊作比較,測試環(huán)境是DVWA的SQL模塊、XSS模塊加上自行編輯的具有針對性的過濾文件。
3.2 測試結(jié)果
如圖1所示,本系統(tǒng)與Acunetix Web Vulnerability Scanner和Burp Suite 相比爬蟲功能不及兩款,但是勝在輕量以及較高的效率。在未開啟過濾之前,本系統(tǒng)相比Acunetix Web Vulnerability Scanner和Burp Suite 的爬蟲模塊效率稍低。在針對XSS的檢測上,本產(chǎn)品對比其余兩款有著極大優(yōu)勢,針對SQL注入來說,略微遜色于AWVS,但是效率要比BURP稍好。在開啟過濾后,Acunetix Web Vulnerability Scanner和Burp Suite針對SQL注入以及XSS的檢測效率大打折扣,而本產(chǎn)品憑借獨(dú)特的編碼變形機(jī)制,仍然在對XSS以及SQL注入的檢測上占據(jù)優(yōu)勢。
3.3 結(jié)果分析
經(jīng)過我們的測試,我們所開發(fā)的web掃描器已經(jīng)初具規(guī)模,并且取得不錯的結(jié)果。
在針對網(wǎng)站開啟過濾的條件下,我們的產(chǎn)品更顯優(yōu)勢。更容易發(fā)現(xiàn)網(wǎng)站的漏洞,有利于對每個事件的風(fēng)險推算,可能的威脅、漏洞以及最終可能的最大化的利益損失估算等。對比市場上同類的產(chǎn)品來說我們的產(chǎn)品更加靈活以及便攜。
4結(jié)束語
本產(chǎn)品優(yōu)點(diǎn)在于打破傳統(tǒng)工具的“隨機(jī)攻擊代碼生成并進(jìn)行檢測”方案,本系統(tǒng)基于web程序?qū)粝蛄縿討B(tài)的反饋信息和代碼本身,依此生成的Payload代碼經(jīng)過變形和編碼,使得系統(tǒng)大大增加了繞過過濾系統(tǒng)的概率。同時系統(tǒng)為測試人員提供多個變形策略以供選擇,進(jìn)一步增加了繞過的可能,增加安全檢測的準(zhǔn)確度。更好的發(fā)現(xiàn)漏洞、利用漏洞,以便修復(fù)漏洞。
缺點(diǎn)在于對于網(wǎng)站的爬蟲能力相對較弱,其余的漏洞檢測功能不如市面上的工具,缺少跨平臺能力。
參考文獻(xiàn)
[1] 蘇崇茂.計(jì)算機(jī)網(wǎng)絡(luò)安全的入侵檢測技術(shù)研究[J].數(shù)字技術(shù)與應(yīng)用,2019,37(12):187-189.
[2] 馬月,侯雪城,吳佳帥,等.Web應(yīng)用防火墻(WAF)技術(shù)的綜述[J].計(jì)算機(jī)時1代,2020,(3):13-15,19.
[3] 陳晶潔.高性能Web應(yīng)用漏洞掃描系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2019.
[4] 沈海燕.網(wǎng)絡(luò)安全中黑客防范技術(shù)探討[J].電子世界,2018,(11):68-69.
[5] Huang W,Shuai B,Zuo B,et al. A systematic railway dangerous goods transportation system risk analysis approach: The 24 model[J]. Journal of Loss Prevention in the Process Industries,2020,(65):217.
[6] 張燁青.web應(yīng)用安全漏洞掃描器爬蟲技術(shù)的改進(jìn)與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2014.
[7] 周開東,魏理豪,王甜,等.遠(yuǎn)程文件包含漏洞分級檢測工具研究[J].計(jì)算機(jī)應(yīng)用與軟件, 2014,(2):21-23.
[8] Ardiansah J T,Wibawa A P,Widyaningtyas T,et al. SQL Logic Error Detection by Using Start End Mid Algorithm [J].Knowledge Engineering and Data Science,2017,1(1):1-11.
[9] Steinhauser,Antonin,Tuma.DjangoChecker:Applying extended taint tracking and server side parsing for detection of context-sensitive XSS flaws[J].Software:Practice and? Experience,2019-Wiley Online Library,2019,(1):1-6.
作者簡介
蒙星潮(2000-),男,廣西平南人;在讀院校:桂林電子科技大學(xué),專業(yè):信息安全,學(xué)歷:本科。
龍成(2000-),男,貴州畢節(jié)人;在讀院校:桂林電子科技大學(xué),專業(yè):信息安全,學(xué)歷:本科。
李濤(1997-),男,廣東佛山人;在讀院校:桂林電子科技大學(xué),專業(yè):信息安全,學(xué)歷:本科。