盧志科 康曉鳳 眭楨屹 王昊 劉冀卿 孫沖沖
摘 要:Web應(yīng)用系統(tǒng)已在生活中得到廣泛應(yīng)用,針對這些系統(tǒng)的黑客攻擊也十分嚴(yán)重。黑客大多是利用已知漏洞進行攻擊,因此如果修補系統(tǒng)存在的已知漏洞,即可防御大多數(shù)攻擊。采用分布式架構(gòu)與多線程技術(shù)設(shè)計并實現(xiàn)了一個Web應(yīng)用漏洞掃描系統(tǒng),將主動掃描與被動檢測相結(jié)合,并通過相應(yīng)插件對Web系統(tǒng)進行掃描,從而快速識別出owasp10常見漏洞。用戶部署該系統(tǒng)后,可以定期對Web應(yīng)用進行檢測,以識別Web應(yīng)用中是否存在漏洞。通過及時發(fā)現(xiàn)漏洞并進行修補,可有效保障Web應(yīng)用的安全性,將黑客攻擊風(fēng)險降到最低。
關(guān)鍵詞:Web應(yīng)用;漏洞檢測;黑客攻擊;分布式架構(gòu)
DOI:10. 11907/rjdk. 182745 開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):
中圖分類號:TP309文獻標(biāo)識碼:A 文章編號:1672-7800(2019)008-0186-05
Web Application Vulnerability Scanning Detection System
LU Zhi-ke, KANG Xiao-feng,SUI Zhen-yi,WANG Hao,LIU Ji-qing,SUN Chong-chong
(Xuzhou Institute of Technology, Xuzhou 221000,China)
Abstract:The advantages of Web application systems make this technology widely used, and hacking attacks against these systems are becoming more serious. Most hackers exploit known vulnerabilities to attack, so if a known vulnerability is fixed in the system, one can defend against most attacks. The Web application vulnerability scanning system implemented by this system adopts distributed architecture and multi-threading technology, combines active scanning and passive detection, and scans the Web system through corresponding plug-ins, which can quickly identify the common vulnerabilities of owasp10 and the famous Know the vulnerabilities. After the user deploys the system, the Web application can be detected periodically and in time identify whether there is a corresponding ensured can be vulnerability in the Web application. Vulnerabilities are discovered instantly and patched so that the security of Web applications, minimizing the risk of hacker attacks and avoiding losses.
Key Words:Web application; Web application; hacking attacks; distributed architecture
基金項目:江蘇省大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練項目(xcx2018023)
作者簡介:盧志科(1998-),男,徐州工程學(xué)院信電工程學(xué)院學(xué)生,研究方向為信息安全; 康曉鳳(1978-),女,徐州工程學(xué)院信電工程學(xué)院副教授,研究方向為信息安全;眭楨屹(1998-),男,徐州工程學(xué)院信電工程學(xué)院學(xué)生,研究方向為信息安全;王昊(1998-),男,徐州工程學(xué)院信電工程學(xué)院學(xué)生,研究方向為信息安全;劉冀卿(1999-),男,徐州工程學(xué)院信電工程學(xué)院學(xué)生,研究方向為信息安全;孫沖沖(1998-),男,徐州工程學(xué)院信電工程學(xué)院學(xué)生,研究方向為信息安全。
0 引言
Web應(yīng)用系統(tǒng)已在人們?nèi)粘I钆c工作中得到廣泛應(yīng)用,例如訂票系統(tǒng)、購物網(wǎng)站、酒店管理系統(tǒng)等,但很多Web應(yīng)用系統(tǒng)中都存在漏洞。根據(jù)國家信息安全漏洞庫(CNNVD)統(tǒng)計,截至2018 年8 月31 日,CNNVD 采集漏洞總量已達114 413 個[1-2],表明Web應(yīng)用的安全問題日益突出。因此,國外一些公司推出了Web應(yīng)用安全漏洞掃描器,以實現(xiàn)快速對Web應(yīng)用進行漏洞掃描,具體包括:
(1)IBM Security AppScan:可提升 Web 與移動應(yīng)用的安全性,在部署之前對 Web與移動應(yīng)用進行測試,幫助識別安全風(fēng)險、生成報告并獲取修復(fù)建議;能對常見的Web應(yīng)用漏洞進行評估、掃描與檢測,包括XSS跨站腳本、SQL注入、緩沖區(qū)溢出等漏洞,從而降低系統(tǒng)遭受攻擊的可能性。此外,該掃描器可以生成漏洞掃描結(jié)果報告,并在報告中提供完善的漏洞處理建議[3]。
(2)Nessus:作為目前世界上使用人數(shù)最多的系統(tǒng)漏洞掃描與分析軟件,Nessus漏洞掃描器具有規(guī)模龐大的漏洞庫,并能實時更新。使用Nessus進行漏洞掃描,能夠給出詳細(xì)的漏洞評估報告,如漏洞描述以及相應(yīng)解決方案。但在實際使用中,由于其測試時使用的測試代碼風(fēng)險值較高,可能會發(fā)生在授權(quán)測試中誤刪授權(quán)企業(yè)數(shù)據(jù)庫信息的現(xiàn)象。
(3)Acunetix Web Vulnarability Scanner:一款知名的Web網(wǎng)絡(luò)漏洞掃描工具,該掃描器具有業(yè)內(nèi)最先進的 SQL 注入與跨站腳本測試手段[4]。
與國外相比,國內(nèi)開發(fā)的Web應(yīng)用安全漏洞掃描器種類較少,主要是由各網(wǎng)絡(luò)安全公司開發(fā)的漏洞掃描器,如安恒科技的明鑒Web應(yīng)用弱點掃描器、綠盟科技的綠盟極光遠程安全評估系統(tǒng)等。國內(nèi)的漏洞檢測軟件性能與國外軟件相比尚存在一定差距,例如不支持并發(fā)掃描,對隱藏在需登錄驗證后才能訪問的網(wǎng)頁無法檢測等[5]。然而,國外很多商業(yè)Web應(yīng)用漏洞掃描軟件雖然功能強大,但是價格昂貴,且安裝復(fù)雜,而眾多中小型企業(yè)僅需要保障基本的Web應(yīng)用安全即可,因此出于節(jié)省成本考慮,通常不愿意支付高昂的授權(quán)費用[6]。
面對各種攻擊手段,企業(yè)除使用Web應(yīng)用安全掃描器對自身的Web應(yīng)用進行漏洞檢測外,還有一種傳統(tǒng)防御方法,即在Web應(yīng)用部署完成后,針對常規(guī)攻擊手法,對應(yīng)用進行基本的隔離防護。通過一層代理的方式,對用戶提交的請求與輸入內(nèi)容進行過濾檢測,正常內(nèi)容即通過代理提交到Web應(yīng)用中進行處理,而若代理檢測到惡意請求,則立即將其攔截,以防Web應(yīng)用受到攻擊。常見的采用傳統(tǒng)防御手段的系統(tǒng)主要有安全狗、云鎖、阿里云盾等,但該防御手段最大的弊端在于無法從根本上杜絕Web應(yīng)用漏洞,而商用的Web應(yīng)用漏洞掃描器價格高昂,對中小型企業(yè)而言性價比不高。通過對漏洞檢測系統(tǒng)的研究發(fā)現(xiàn),傳統(tǒng)漏洞檢測系統(tǒng)通常會將所有漏洞都枚舉檢測一遍,不但運行檢測時間長,還會占用過多系統(tǒng)資源,甚至使系統(tǒng)發(fā)生崩潰[7]。本系統(tǒng)在檢測漏洞之前會先對目標(biāo)進行掃描識別,判斷Web應(yīng)用系統(tǒng)及服務(wù)器類別,之后用戶可選擇性地進行插件配置,從而大大提高了檢測準(zhǔn)確率,節(jié)省了時間。此外,對于需要為自身Web應(yīng)用系統(tǒng)提供安全服務(wù)且預(yù)算不高的中小型企業(yè)而言,本系統(tǒng)均采用網(wǎng)絡(luò)開源的插件框架開發(fā),并使用免費的MongoDB數(shù)據(jù)庫,UI界面簡潔易用,用戶操作起來十分簡便。通過合理、高效的插件配置方式,可以輕松實現(xiàn)對Web應(yīng)用的常規(guī)性漏洞檢測掃描,大大降低了黑客攻擊的風(fēng)險。
1 系統(tǒng)設(shè)計
1.1 Python多線程
多線程技術(shù)是指在系統(tǒng)中從軟件或硬件角度實現(xiàn)多個線程并發(fā)執(zhí)行的技術(shù)。因此,本系統(tǒng)采用多線程技術(shù),以提高掃描效率、節(jié)省掃描時間。Python中由threading模塊提供多線程操作,調(diào)用threading類中相應(yīng)函數(shù)即可實現(xiàn)線程相關(guān)操作。
1.2 OWASP TOP10漏洞介紹
OWASP(Open Web Application Security Project)開放式Web應(yīng)用程序安全項目是一個非營利組織,旨在分析每年的Web應(yīng)用漏洞,并從中歸納出現(xiàn)次數(shù)最多的Web應(yīng)用漏洞類型,其中排名前10的分別為SQL注入、失效的身份認(rèn)證與會話管理、跨站腳本(XSS)、不安全的直接對象引用、安全配置錯誤、敏感信息泄漏、功能級訪問控制缺失、跨站請求偽造(CSRF)、使用含有已知漏洞的組件、未驗證的重定向與轉(zhuǎn)發(fā)[8]。該組織每年都會發(fā)布一份詳細(xì)的Web應(yīng)用十大威脅安全報告,權(quán)威性極高。
1.3 端口掃描
端口掃描采用SYN掃描技術(shù),掃描節(jié)點向待檢測主機特定端口發(fā)送請求連接的SYN包,掃描節(jié)點收到SYN/ACK包后,則發(fā)送RST包請求斷開連接,而不是相應(yīng)的ACK包。因此,TCP三次握手將無法完成,正常連接也無法進行。同時,此次探測也不會進行系統(tǒng)日志記錄。SYN掃描不會在待檢測主機上留下痕跡,屬于比較隱蔽的一種掃描方式。其掃描流程為:SYN給目標(biāo)主機發(fā)送初始SYN數(shù)據(jù)包,如果端口開放,則響應(yīng)SYN-ACK數(shù)據(jù)包;如果關(guān)閉,則響應(yīng)RST數(shù)據(jù)包。
1.4 指紋識別
指紋識別可用于探測目標(biāo)服務(wù)器類型,幫助人們進一步探測服務(wù)器級別的漏洞,并從該級別進行滲透測試。指紋識別通常采用的技術(shù)為Banner抓取,Banner抓取是最簡單、基礎(chǔ)的指紋識別技術(shù),而且不需要其它專門工具即可進行。其操作簡單,獲取的信息通常也相對準(zhǔn)確。通過telnet獲取Banner信息如圖1所示。
圖1 通過telnet獲取Banner信息
然而,越簡單的方法越容易被防御,如今該方法成功率也越來越低。數(shù)據(jù)包分析則是另一種較為復(fù)雜的識別方式,通過發(fā)送特殊構(gòu)造的數(shù)據(jù)包到目標(biāo)服務(wù)器,目標(biāo)服務(wù)器會返回一定結(jié)構(gòu)的響應(yīng)包。掃描節(jié)點分析響應(yīng)數(shù)據(jù)包特定結(jié)構(gòu)后,與事先配置的指紋數(shù)據(jù)庫進行對比,從而識別出相應(yīng)服務(wù)或服務(wù)器[9]。所有黑客攻擊最初必然是對目標(biāo)系統(tǒng)進行信息搜集,重點為探測服務(wù)器類型,確定服務(wù)器內(nèi)容后即可確定攻擊范圍,甚至直接找到攻擊方法。本系統(tǒng)采用Banner抓取與數(shù)據(jù)包分析相結(jié)合的方式進行識別檢測,從而提高指紋識別準(zhǔn)確度。
1.5 分布式架構(gòu)
分布式系統(tǒng)(Distributed System)是建立在網(wǎng)絡(luò)之上的軟件系統(tǒng),其具有以下幾個特性:①內(nèi)聚性:指每一個數(shù)據(jù)庫分布節(jié)點高度自治,并具有本地的數(shù)據(jù)庫管理系統(tǒng);②透明性:指每一個數(shù)據(jù)庫分布節(jié)點對用戶應(yīng)用都是透明的,無法看出是本地還是遠程。在分布式數(shù)據(jù)系統(tǒng)中,用戶感覺不到數(shù)據(jù)是分布式的,即用戶不需要知道關(guān)系是否分割、有無副本、數(shù)據(jù)存在于哪個站點,以及在哪個站點上執(zhí)行分布式架構(gòu)能夠有效解決傳統(tǒng)掃描檢測系統(tǒng)運行緩慢、效率低下等問題,從而能夠最大程度上合理利用服務(wù)器資源,從根本上提高企業(yè)工作效率,還能確保漏洞檢測的準(zhǔn)確性,同時保證檢測質(zhì)量與效率[10] 。
2 系統(tǒng)實現(xiàn)
2.1 系統(tǒng)實現(xiàn)目的與意義
針對中小型企業(yè)進行的攻擊大多是黑客為了獲取服務(wù)器權(quán)限而進行的,黑客通常會利用互聯(lián)網(wǎng)上的已知漏洞編寫自動化的漏洞利用代碼,以批量地對互聯(lián)網(wǎng)上未打補丁的Web應(yīng)用系統(tǒng)進行攻擊,攻擊成功后通過植入惡意程序?qū)崿F(xiàn)對服務(wù)器的控制,從而盜取錢財。如果及時發(fā)現(xiàn)并修補該漏洞,這些攻擊代碼則會失去作用,從而成功抵御黑客攻擊。
然而,對于黑客而言,最大的漏洞是人本身,企業(yè)內(nèi)部人員有時為了方便記憶,密碼設(shè)置很簡單,因而黑客通過弱口令即可輕松進入系統(tǒng)。本文使用定制漏洞模塊中的ssh弱口令檢測進行掃描演示,新增掃描任務(wù)與ssh弱口令檢測結(jié)果如圖5、圖6所示。
圖5 新增掃描任務(wù)
圖6 ssh弱口令檢測結(jié)果
2.4 信息統(tǒng)計模塊
信息統(tǒng)計主要是對掃描檢測后的結(jié)果進行分類統(tǒng)計,并用圖表方式進行顯示。通過系統(tǒng)Web端界面可以直觀地看到相應(yīng)網(wǎng)絡(luò)資產(chǎn)、內(nèi)網(wǎng)分布情況以及漏洞信息,以方便用戶使用。該模塊首先讀取數(shù)據(jù)庫Info集合中的記錄,之后通過View.py中的Analysis()函數(shù)分析顯示在頁面analysis.html上。信息統(tǒng)計模塊能夠?qū)呙铏z測后的結(jié)果進行分類統(tǒng)計[18],如圖7所示。
圖7 信息統(tǒng)計結(jié)果
2.5 插件管理模塊
插件管理主要分為掃描規(guī)則配置與檢測插件配置兩大模塊。掃描規(guī)則配置主要用于系統(tǒng)掃描最大線程、連接超時時間、資產(chǎn)探測周期、識別規(guī)則、端口探測列表等配置;檢測插件配置分為在線更新插件、單機更新插件兩種。在線更新插件通過網(wǎng)絡(luò)下載獲取指定網(wǎng)站的插件腳本,單擊更新插件需要用戶具有一定編程能力,能夠自己編寫相應(yīng)檢測腳本。用戶按照系統(tǒng)規(guī)定格式進行漏洞檢測Poc的編寫,并將其上傳到掃描節(jié)點,然后將其配置到相應(yīng)檢測節(jié)點,即可對特定漏洞進行檢測。插件上傳成功后,可在vulscan目錄下找到該插件。插件管理模塊頁面上所有插件名稱,點擊插件名稱會顯示插件詳細(xì)信息。新增插件分為JSON格式與腳本格式,插件模塊界面如圖8-圖10所示。
圖8 插件管理模塊
圖9 新增JSON插件界面
圖10 新增腳本插件界面
3 結(jié)語
很多公司對Web應(yīng)用的安全問題并沒有足夠重視,只有在漏洞被攻擊并造成嚴(yán)重?fù)p失后才會重視安全問題。在最新的《中華人民共和國網(wǎng)絡(luò)安全法》中規(guī)定[19]:網(wǎng)絡(luò)產(chǎn)品與服務(wù)提供者應(yīng)為其產(chǎn)品、服務(wù)持續(xù)提供安全服務(wù)。由于漏洞具有復(fù)雜多變等特點,人工檢測費時費力,因此可通過一款自動化的Web應(yīng)用漏洞檢測軟件進行輔助檢測,以提高檢測效率。William等提出了典型的“信息收集—攻擊生成—響應(yīng)分析” Web安全漏洞掃描技術(shù)流程,很多掃描技術(shù)都可歸納在該流程框架中。大多數(shù)掃描器首先通過信息收集,分析出目標(biāo)的Web服務(wù)器、Web容器與其使用的Web開發(fā)框架。根據(jù)搜集到的信息配置相應(yīng)參數(shù)并生成攻擊載荷,最后根據(jù)返回的響應(yīng)判斷是否存在漏洞[20]。本系統(tǒng)的掃描技術(shù)流程也遵循該規(guī)律,例如檢測SQL注入,首先通過爬蟲爬取目標(biāo)相應(yīng)鏈接,然后將批量注入語句通過post或get請求發(fā)送到相應(yīng)鏈接,之后對其返回包進行分析,檢測是否存在SQL注入漏洞。Web安全掃描技術(shù)屬于黑盒測試方法,測試人員一般會在有用戶輸入的地方輸入一些敏感信息,根據(jù)回顯判斷是否存在漏洞。漏洞掃描系統(tǒng)本質(zhì)上相當(dāng)于安全人員手工測試漏洞的抽象模型,雖然在測試結(jié)果分析方面,掃描系統(tǒng)往往不如安全人員靈活,但隨著人工智能技術(shù)的飛速發(fā)展,也有研究者提出將人工智能技術(shù)與漏洞掃描技術(shù)相結(jié)合的方案。若能將兩種技術(shù)成功融合,將會對漏洞掃描分析技術(shù)帶來重大變革,對滲透測試領(lǐng)域也將產(chǎn)生重要影響。
參考文獻:
[1] 中國信息安全測評中心. 國家信息安全漏洞通報[J]. 中國信息安全,2018(9):112-117.
[2] 孫冰. 網(wǎng)絡(luò)黑產(chǎn)變形升級,你中招了嗎?[J]. 中國經(jīng)濟周刊,2018(30):37-40.
[3] ANTUNES N, VIEIRA M. Detecting vulnerabilities in service oriented architectures[C]. Dallas:IEEE International Symposium on Software Reliability Engineering Workshops. IEEE, 2013.
[4] 高曉峰. 漏洞你先知,電腦更安全[J]. 計算機與網(wǎng)絡(luò),2016,42(13):51.
[5] 顧明昌,王丹,趙文兵,等. 一種基于攻擊向量自動生成的XSS漏洞滲透測試方法[J].? 軟件導(dǎo)刊,2016, 15(7):?173-177.
[6] 孫曉飛. Web應(yīng)用漏洞分析與檢測的研究[D]. 北京:北京郵電大學(xué),2016.
[7] MAKINO Y,KLYUEV V. Evaluation of Web vulnerability scanners[C]. Warsaw:2015 IEEE Internation Conference on Intelligent Acquisition and Advanced Computing Systems: Technology and Applications, 2015:399-402.
[8] 王文君,李建蒙. Web應(yīng)用安全威脅與防治:基于OWASP TOP10與ESAPI[M]. 北京:電子工業(yè)出版社,2013.
[9] 劉璇. 白帽子講Web掃描[M]. 北京:電子工業(yè)出版社,2017.
[10] 李彥鵬,楊彪. 分布式服務(wù)架構(gòu):原理、設(shè)計與實戰(zhàn)[M]. 北京:電子工業(yè)出版社,2017.
[11] MICHAEL S, ADAM G. 模糊測試:強制性安全漏洞發(fā)掘[M]. 黃隴,于莉莉,李虎,等,譯. 北京:機械工業(yè)出版社,2009.
[12] PATRICK E. 滲透測試實踐指南:必知必會的工具與方法[M]. 姚軍,姚明,譯.? 北京:機械工業(yè)出版社,2013.
[13] STUART M. 黑客大曝光網(wǎng)絡(luò)安全機密與解決方案 [M]. 第7版. 趙軍,等,譯. 北京:清華大學(xué)出版社,2012.
[14] 張炳帥. Web安全深度剖析[M]. 北京:電子工業(yè)出版社,2015.
[15] WEINBERGER J,SAXENA P,AKHAWE D,et al. A systematic analysis of XSS sanitization in Web application frameworks[M]. Berlin:Springer Berlin Heidelberg, 2011.
[16] JUSTIN S.Python 黑帽子:黑客與滲透測試編程之道[M]. 孫松柏,李聰,潤秋,譯.? 北京:電子工業(yè)出版社,2015.
[17] ARMANDO F. Python數(shù)據(jù)分析[M]. 韓波,譯. 北京:人民郵電出版社,2018.
[18] 全國人民代表大會常務(wù)委員會. 中華人民共和國網(wǎng)絡(luò)安全法[M]. 北京:人民出版社,2016:1-36.
[19] HALFOND W G, CHOUDHARY S R, ORSO A. Improving penetration testing through? static? and? dynamic? analysis[J]. Software? Testing,? Verification? andReliability, 2011,21(3): 195-214.
[20] LWIN K S, LIONEL C, et al. Application vulnerability prediction using hybrid program analysis and machine learning[J]. IEEE Transactions on Dependable and Secure Computing,2015,12(6):688-707.
(責(zé)任編輯:黃 ?。?/p>