蒙星潮?龍成?李濤

摘 要 Web應用在如今的網絡世界中越來越重要,由于其應用廣泛,因而容易遭受黑客的惡意攻擊。而市面上的一些web安全防護系統存在系統資源占用過多,用戶體驗不友好等問題,團隊基于Python設計了一個web安全防護系統,在其他同類產品的基礎上,改良漏洞檢測方法,提升漏洞檢測效率,并增加了調節線程和定制化服務,提高用戶體驗。本文介紹了該防護系統的設計思路,工作原理,具體實現以及實驗測試。
關鍵詞 python;web安全防護系統;漏洞檢測
引言
隨著信息時代的發展,各種WEB應用在個人、各大企業、政府甚至是軍隊中廣泛使用,WEB應用在被廣泛使用的同時,其帶來的安全問題也最為嚴重。2019年全年,阿里云安全團隊對Web攻擊量進行了統計發現每個月都會產生巨大的Web攻擊量,每個月都會有Web應用遭遇到各類自動化攻擊工具的攻擊。當惡意攻擊者針對Web服務發動應用層攻擊時,如注入、失效的身份認證、敏感數據泄露、XML外部實體、失效的訪問控制、安全配置錯誤、跨站腳本、不安全的反序列化等[1],傳統分組過濾防火墻無法檢測到異常流量[2]。所以在面對如此巨大的攻擊量,迫切需要構建一個全面的Web安全防護系統,及時修復Web應用漏洞,提升Web應用安全性。
為了使用戶獲得更好的用戶體驗,對安全防護進行研究,根據當下產品提出一個基于Python的Web安全防護系統,該系統能夠對常規漏洞以及高危漏洞進行檢測和防護。
1思路和工作原理
針對SQL注入攻擊和XSS攻擊,本系統打破傳統工具的“隨機攻擊代碼生成并進行檢測”方案[3],基于web程序對攻擊向量動態的反饋信息和代碼本身,依此生成的代碼SQL&XSS攻擊代碼經過變形和編碼,使得系統大大增加了繞過過濾系統的概率。同時系統為測試人員提供多個變形策略以供選擇,進一步增加了繞過的可能,增加安全檢測的準確度。更好的發現漏洞、利用漏洞,以便修復漏洞。并且在檢測存儲型XSS漏洞方面做出創新,系統根據規則結合網絡爬蟲獲取并解析各種web應用中可能發生存儲型XSS漏洞的注入點。對檢測到的可能的注入點,由基于BNF范式的攻擊向量生成模塊生成檢測代碼[4],使用多種變形策略對代碼進行變形,然后進行安全檢測;針對文件上傳漏洞,本系統對上傳的文件從內容,拓展名,文件大小以及文件路徑進行檢測,并對上傳的進行重命名操作;針對弱口令漏洞,本系統利用爬蟲找到需要口令的界面利用字典進行爆破,用戶可以自行添加字典或者使用本系統默認字典進行爆破,檢測是否含有弱口令,如果有會報告給相關人員進行更改。針對安全等級測評,本系統通過對檢測結果的分析,以及根據國家對WEB應用的安全等級測評規則來進行安全等級評定,并推行出可行性的解決方案[5]。
本系統的工作原理可以分為四個部分,第一部分:輸入目標URL;第二部分:爬取目標URL目錄結構,提供給用戶進行分析;第三部分:用各個漏洞檢測模塊對漏洞進行檢測以及利用安全等級測評模塊進行安全等級評估,系統將檢測結果存儲;第四部分:顯示檢測結果,提供用戶對結果進行進一步分析,確認漏洞,并進行相應修復。
2具體設計與實現
本系統由常規漏洞爬蟲檢測模塊[6]、XSS攻擊載荷變形模塊、XSS攻擊檢測模塊、SQL注入檢測模塊和結果顯示模塊四個模塊組成。
2.1 常規漏洞爬蟲檢測模塊
(1)對超鏈接的內容進行記錄,做下一步爬蟲繼續爬取的目標。
(2)對提交表單的名稱進行記錄,做下一步文件上傳漏洞[7]的檢測、弱口令漏洞檢測和文件解析漏洞的檢測的目標。
因為在大部分現存的web掃描器中對于目標網頁爬蟲分析都不充分,而本模塊是把頁面中所有的超鏈接都作為下一次爬蟲抓取的目標,做到不放過任何一個可疑的頁面。從而找到一些被忽略的上傳頁面、登錄、注冊等具有漏洞的頁面,做到雖然不同的目標頁面構造不同,但能結合具體的環境來檢測的效果。由于爬取的數據過大,本模塊還提供線程設置功能從而加快爬蟲爬取的速度。
2.2 攻擊載荷變形模塊
SQL&XSS漏洞[8-9]攻擊中,開發者一般都會使用一些過濾手段而防范SQL&XSS攻擊,而往往過濾是不全面的,可能攻擊者換一個語句或者換一種編碼、變形的方式就會繞過過濾。攻擊載荷模塊目的就是為了全方位的去測試目標網頁的過濾機制的牢固性,提供多種不同的攻擊語句變形方式同時還具有拓展的功能,我們設計了四個工作流程來完成本模塊的功能:
(1)初始化payload庫(可以在payload文件里面添加新的payload)。
(2)根據不同功能在payload庫中選擇不同類別的payload。
(3)讀取payload變形方法庫,對用戶選好的payload進行每種方法的變形。
(4)將變形后的payload輸出在對應變形方法的輸出框中。
2.3 XSS攻擊檢測模塊
XSS攻擊檢測模塊的主要分為目標板塊、爬蟲板塊、測試板塊和記錄板塊。目標板塊是對目標的URL進行記錄和管理,可以對多個目標同時進行測試,還會記錄那些目標是已經測試的。爬蟲板塊是對目標頁面進行爬蟲爬取分析尋找測試的切入點如:查詢的輸入框,內容提交框等。切入點尋找完成后,將會進行XSS攻擊的測試即進行測試板塊,在該板塊中我們除了會對payload庫中的全部攻擊載荷進行測試外,還會調用XSS攻擊載荷的變形模塊對每一個攻擊載荷變形后進行測試。最后記錄板塊會根據頁面是否執行我們的代碼效果來分辨目標是否存在XSS漏洞,如果存在則進行目標漏洞位置的記錄和相應攻擊代碼。
2.4 SQL注入檢測模塊
在SQL注入檢測模塊中,主要進行如下四個方面的檢測工作:
(1)對常規漏洞爬蟲檢測模塊中所記錄的超鏈接內容進行調用。
(2)進行SQL注入點的分析(構造注入的判斷語句進行分析,包括常見的一些繞過的構造方面,對存在的點進行保留)。
(3)進行SQL注入的判斷,使用一些惡意代碼進行SQL注入嘗試獲取更多的信息,然后記錄每一個惡意代碼的回顯分析。
(4)根據SQL注入的判斷,惡意代碼的回顯提供相應的修復建議。
在(2)(3)中使用的SQL測試語句,用戶可以按照自己的測試經驗進行拓展,隨著用戶的拓展,對SQL注入的判斷也會越來越精確,因此本模塊具有強大的靈活性。同時本模塊還有多線程的工作模塊,工作效率高。
2.5 結果顯示模塊
結果顯示模塊是對于常規漏洞爬蟲檢測模塊、XSS攻擊檢測模塊和SQL注入檢測模塊中所得到的結果先進行數據庫的備份,再根據每個漏洞的危害性而形成一個專業的安全報告提供給用戶,其中還對每個漏洞有一些常規的修復方法的提示。
當然,除了本系統設置好的漏洞之外用戶還可以使用python編寫其他漏洞的檢測模塊,然后進行報告漏洞等級的添加,本系統有相應的代碼模板存在,用戶只要會python語言就能進行開發。
3測試和驗證
3.1 測試過程
將本系統同Acunetix Web Vulnerability Scanner(簡稱AWVS),Burp Suite的爬蟲模塊、SQL Injection檢測模塊以及XSS模塊作比較,測試環境是DVWA的SQL模塊、XSS模塊加上自行編輯的具有針對性的過濾文件。
3.2 測試結果
如圖1所示,本系統與Acunetix Web Vulnerability Scanner和Burp Suite 相比爬蟲功能不及兩款,但是勝在輕量以及較高的效率。在未開啟過濾之前,本系統相比Acunetix Web Vulnerability Scanner和Burp Suite 的爬蟲模塊效率稍低。在針對XSS的檢測上,本產品對比其余兩款有著極大優勢,針對SQL注入來說,略微遜色于AWVS,但是效率要比BURP稍好。在開啟過濾后,Acunetix Web Vulnerability Scanner和Burp Suite針對SQL注入以及XSS的檢測效率大打折扣,而本產品憑借獨特的編碼變形機制,仍然在對XSS以及SQL注入的檢測上占據優勢。
3.3 結果分析
經過我們的測試,我們所開發的web掃描器已經初具規模,并且取得不錯的結果。
在針對網站開啟過濾的條件下,我們的產品更顯優勢。更容易發現網站的漏洞,有利于對每個事件的風險推算,可能的威脅、漏洞以及最終可能的最大化的利益損失估算等。對比市場上同類的產品來說我們的產品更加靈活以及便攜。
4結束語
本產品優點在于打破傳統工具的“隨機攻擊代碼生成并進行檢測”方案,本系統基于web程序對攻擊向量動態的反饋信息和代碼本身,依此生成的Payload代碼經過變形和編碼,使得系統大大增加了繞過過濾系統的概率。同時系統為測試人員提供多個變形策略以供選擇,進一步增加了繞過的可能,增加安全檢測的準確度。更好的發現漏洞、利用漏洞,以便修復漏洞。
缺點在于對于網站的爬蟲能力相對較弱,其余的漏洞檢測功能不如市面上的工具,缺少跨平臺能力。
參考文獻
[1] 蘇崇茂.計算機網絡安全的入侵檢測技術研究[J].數字技術與應用,2019,37(12):187-189.
[2] 馬月,侯雪城,吳佳帥,等.Web應用防火墻(WAF)技術的綜述[J].計算機時1代,2020,(3):13-15,19.
[3] 陳晶潔.高性能Web應用漏洞掃描系統的設計與實現[D].北京:北京郵電大學,2019.
[4] 沈海燕.網絡安全中黑客防范技術探討[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應用安全漏洞掃描器爬蟲技術的改進與實現[D].北京:北京郵電大學,2014.
[7] 周開東,魏理豪,王甜,等.遠程文件包含漏洞分級檢測工具研究[J].計算機應用與軟件, 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-),男,廣西平南人;在讀院校:桂林電子科技大學,專業:信息安全,學歷:本科。
龍成(2000-),男,貴州畢節人;在讀院校:桂林電子科技大學,專業:信息安全,學歷:本科。
李濤(1997-),男,廣東佛山人;在讀院校:桂林電子科技大學,專業:信息安全,學歷:本科。