国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于自動化滲透測試的分析

2015-08-10 10:30李浩杰裘國永
電子設計工程 2015年22期
關鍵詞:掃描器誤報覆蓋率

李浩杰,裘國永

(陜西師范大學 計算機科學學院,陜西 西安 710119)

Web應用程序是互聯(lián)網(wǎng)上傳遞信息最流行的方式。由于其分布性和開放性的特點,使得Web應用程序面臨諸多潛在的安全攻擊。例如SQL注入[1]、文件包含、目錄遍歷、參數(shù)篡改等,可能管理員配置了正確的防火墻和WAF,但是這些安全防御軟件仍然存在策略性的繞過。因此,需要定期的對Web應用進行掃描,由于手動測試的復雜性和費時的特點,自動化的滲透測試工具的出現(xiàn)就可以幫助我們完成這項工作。主要有兩種方法來測試Web應用程序的漏洞:白盒測試和黑盒測試。白盒測試:也就是對Web應用程序源代碼的分析。這可以通過手動或者使用像FORTIFY這樣的代碼分析工具來完成。黑盒測試:在代碼執(zhí)行過程中查找漏洞。這種方法也被稱為滲透測試,掃描器并不清楚Web應用程序的內部信息,它是通過在Web的HTTP請求中使用模糊測試技術。本論文就是通過對比3款自動化滲透測試工具掃描的結果,找到Web應用程序中常見的安全漏洞,并分析使用工具掃描漏洞的一些局限性。

1 試驗內容

在正式的試驗之前,要先明確一些關注的重點:

1)掃描器檢測到的漏洞的覆蓋率。

2)檢測結果中的誤報[2]。

3)Web應用程序中常見的漏洞類型。

實驗步驟包括:

1)準備階段:挑選進行測試的Web應用程序和掃描器。

2)執(zhí)行階段:使用漏洞掃描器來掃描Web服務以識別出潛在的漏洞。

3)驗證階段:通過手動測試來確認由掃描器識別出來的漏洞。

4)分析階段:對實驗結果數(shù)據(jù)進行系統(tǒng)化分析。

1.1 挑選測試用到的Web應用程序

Web應用程序可能由各種開發(fā)語言編寫,不可能對所有涉及到的技術進行測試,為此,我們隨機的挑選一些用PHP語言編寫的,能夠免費下載使用的,涵蓋諸多應用領域(包括電子商務、論壇、博客等等)的20個Web應用程序進行測試。在挑選的過程中,因為以下的一些原因,需要將其丟棄[3],即:

無效的WSDL:至少有一個掃描器不符合WSDL的語法描述。

無法檢索WSDL:至少有一個掃描器找不到WSDL。

沒有發(fā)現(xiàn)方法:Web服務沒有操作來掃描。

認證要求:某個操作需要認證,這意味著有些服務是不能完全檢測到的。

未處理的異常:測試中斷并且/或者有一個掃描器異常關閉。

通信錯誤:至少有一個掃描器因為HTTP請求或者SSL連接錯誤問題而不能進行完整請求。

掃描問題:至少有一個掃描器報告了一個像“無法添加事務”或“不能渲染對象”這樣的通用錯誤。

1.2 漏洞掃描器的選擇

在試驗中我們使用了3款知名的商業(yè)Web漏洞掃描器:AWVS、HP WebInspect以及 IBM Rational AppScan。

AWVS,全稱為 Acunetix Web Vulnerability Scanner。 它是一個自動化的Web應用程序測試工具,審計、檢查漏洞。如SQL 注入、XSS[4](跨站腳本)、CSRF(跨站請求偽造)等等。

HP WebInspect:WebInspect是最準確和全面的自動化的Web應用程序和Web服務漏洞評估解決方案?;萜誛ebInspect可以提供快速掃描功能、廣泛的安全評估范圍以及準確的Web應用程序安全掃描結果。該工具具有開創(chuàng)性的評估技術、包括同時爬行和審計以及并發(fā)掃描。它是一個廣泛的可用于基于Web的應用程序的滲透測試工具。

IBM Rational AppScan:它是Web應用程序滲透測試舞臺上使用廣泛的工具之一,有助于安全人員進行Web應用程序自動化漏洞測試評估。它可以自動進行漏洞評估、掃描和檢測所有常見的Web應用程序漏洞,包括SQL注入、跨站腳本、緩沖區(qū)溢出和Flash/Flex應用程序。

2 測試數(shù)據(jù)

2.1 總體結果分析

在本地使用虛擬機搭建環(huán)境,對上述挑選的20個Web應用程序使用掃描器AWVS、WebInspect和AppScan進行掃描測試。

表1 存在漏洞的測試網(wǎng)站Tab.1 Vulnerabilities in tested websites

從表1可以看到:對每一款掃描器而言,表中體現(xiàn)的是檢測到的漏洞的總數(shù)量以及每種掃描器檢測到的漏洞情況。掃描器指出了五種不同類型的漏洞,即:SQL注入、代碼執(zhí)行、緩沖區(qū)溢出、用戶名/密碼泄露以及服務器路徑暴漏。

圖1 檢測到的應用程序錯誤Fig.1 Application errors detected

掃描器將因為無效的參數(shù)而導致的應用程序錯誤歸類為低的安全問題。實際上,這些錯誤是基于這樣一個事實,就是輸入的參數(shù)沒有進行正確的檢查(例如:該應用程序可能有魯棒性問題)。正如圖1所示,3款掃描器檢測到了不同的應用程序錯誤。這明顯是依賴于每個掃描器所執(zhí)行的測試。盡管有一小部分情況下,應用程序錯誤可能會導致惡意的暴漏(例如:錯誤信息泄露敏感的服務代碼或結構信息),在大多數(shù)情況下,它們并不是安全漏洞。因此,可以將它們排除在進一步分析之外。

正如在表1中看到的,不同的掃描器檢測到了不同類型的漏洞。唯一的例外就是所有的掃描器都報告了SQL注入漏洞。這暗示了掃描器執(zhí)行了不同形式的滲透測試并且不同掃描器得到的掃描結果可能很難進行比較。這樣的結果給我們的啟示就是:為了得到一個較好的漏洞覆蓋率,在滲透測試的時候,需要使用多款掃描器而不是僅依賴于一種掃描器。

正如前面所述,SQL注入是唯一一個3款掃描器都檢測到的漏洞。然而,不同掃描器報告了不同的Web服務中的不同漏洞。實際上,掃描器AWVS檢測到的SQL注入漏洞的數(shù)目要遠高于掃描器WebInspect和AppScan所檢測到的SQL注入漏洞。

2.2 誤報分析

到目前為止,顯示的結果還沒有考慮誤報(就是說掃描器檢測到了漏洞但是實際中并不存在)的問題。眾所周知,誤報是不可避免。這樣的話,決定手動來確認每一個檢測到的漏洞是否存在。

確認漏洞的存在性而不能訪問程序的源代碼是一項困難的任務。因此,定義了一套規(guī)則和相應的檢查來對掃描器檢測到的漏洞分為3類:確實是誤報、確認是漏洞以及不確定。

當滿足下列條件之一的,檢測到的漏洞就歸類為誤報:

1)對于SQL注入漏洞,如果得到的錯誤/應答與應用程序的魯棒性問題相關并且不是一個SQL命令。

2)在Web服務中響應的錯誤并不是由掃描器的注入引起的。換句話說,當Web服務因有效的輸入而執(zhí)行的時候,相同的問題就會出現(xiàn)。

3)對于路徑和用戶名/密碼泄露,當喚醒Web服務的時候,Web服務返回的信息與客戶端提交的信息是一樣的。也就是說,沒有信息泄露。

檢測到的漏洞如果滿足下列條件之一就歸類為確認的漏洞[5]:

1)對于SQL注入漏洞,如果是注入的值引發(fā)導致數(shù)據(jù)庫服務的異常。

2)可能訪問未授權的服務或Web頁面(例如:用SQL注入繞過認證過程)。

3)對于路徑泄露,可能觀測到服務器中文件或文件夾的位置。

4)對于緩沖區(qū)溢出,如果服務器不回答請求或者引起特別是與緩沖區(qū)溢出有關的異常。

如果這些規(guī)則中沒有一個滿足的,那么就沒有辦法確認該漏洞是否真的存在。這些情況就歸類為無法確定。圖2顯示了SQL注入漏洞的結果。

圖2 SQL注入漏洞的誤報Fig.2 False positives for SQL injection

正如圖2所示,用AWVS掃描到的SQL注入漏洞中,相對來說,不確定的數(shù)據(jù)結果是比較低的。但是對于WebInspect和AppScan來講,這個比例就相對來說是相當高的。這意味著對于AWVS這款掃描器而言,誤報的結果是相對準確的。確定的誤報對掃描器AWVS來說是比較高的,相對而言,對于AppScan也是比較高的。只有掃描器WebInspect顯示0誤報。

表2顯示了其他漏洞的誤報結果。

表2 其他漏洞的誤報Tab.2 False positives of other vulnerabilities

2.3 覆蓋率分析

我們關心的另一個很重要的方面就是檢測到的漏洞的覆蓋率。覆蓋率是檢測到的漏洞數(shù)量與總漏洞數(shù)量的比。很明顯,在該試驗中,我們不可能知道總共又多少漏洞,因為不同的掃描器得到的掃描結果是不一樣的。因此,不可能計算出檢測到的漏洞覆蓋率。然而,對于目前已經(jīng)得到的檢測結果數(shù)據(jù),我們可以得到一個近似的漏洞覆蓋率。

實際上,我們知道檢測到的漏洞 (相對于移除誤報后3款掃描器檢測到的漏洞的總和)的總數(shù)量以及每個掃描器檢測到的漏洞的數(shù)量?;谶@些信息來可以對每一款掃描器獲取一個積極的覆蓋率指標(實際的覆蓋率要比表現(xiàn)出來的數(shù)字低)。很明顯,這對SQL注入漏洞是中肯的,因為它是所有掃描器都檢測到的唯一一種類型。

表3顯示的是覆蓋率結果。正如表3所示的那樣,有12個SQL注入漏洞被檢測到了(和前面一樣,我們決定包含不確定的情況為存在的漏洞)。每個掃描器檢測了這些漏洞中的一小群部分,結果就是檢測覆蓋率的一部分。掃描器AWVS表現(xiàn)了良好的結果。相反,掃描器WebInspect和AppScan的覆蓋率就比較低了。

表3 SQL注入的覆蓋率Tab.3 Coverage for SQL injection

下面對前面的一些分析做一下總結:第一個就是,對于同一個Web應用程序,不同的掃描器會檢測到不同類型的漏洞。SQL注入漏洞是所有掃描器都檢測到的唯一類型。只有掃描器AppScan檢測到了緩沖區(qū)溢出、用戶名和密碼泄露以及服務器端路徑暴漏等漏洞。WebInspect只檢測到了SQL注入漏洞。SQL注入漏洞是在所有受測試的Web應用程序中發(fā)現(xiàn)的主要的漏洞類型。

而對于掃描器檢測結果中出現(xiàn)的誤報問題。實際上,掃描器中AWVS和AppScan的誤報比例已經(jīng)超過了30%。只有WebInspect表現(xiàn)出了0誤報,但是該掃描器檢測到的3個SQL注入漏洞中就有1個是不能確定的(不能手動確認是一個真正的漏洞還是誤報)。

掃描器WebInspect和AppScan有一個很低的覆蓋率,低于17%,然而掃描器AWVS表現(xiàn)出了高達67%的覆蓋率。請注意,這個數(shù)是一個樂觀的覆蓋率,因為受測試的掃描器的實際覆蓋率肯定要比觀測到的數(shù)值低。

圖3體現(xiàn)出了每種類型的漏洞的最終分布,在移除了確認的誤報但是要包括那些不確定的情形(例如:掃描器的樂觀估計)。正如前文所述,主要的漏洞是SQL注入。在發(fā)現(xiàn)的漏洞中占據(jù)了80%。這是一個重要的發(fā)現(xiàn),因為發(fā)現(xiàn)在很多的案例中該高危漏洞都存在。

圖3 每種漏洞的分布Fig.3 Vulnerabilities distributed per type

3 結束語

本文進行了一次試驗探索,通過使用3款商業(yè)的漏洞掃描器對20個公開的Web應用程序進行安全漏洞檢測,證實了許多Web應用程序在部署之前沒有進行合適的安全測試。對于挑選Web漏洞掃描器以對Web應用程序進行安全檢查并不是一件容易的事。首先,不同的掃描器會檢測到不同類型的漏洞。其次,存在的誤報也不容忽視,這嚴重影響到了檢測漏洞的精確性。最后,在某些情況下,檢測到的漏洞的覆蓋率是很低的,說明仍然有沒有檢測到的漏洞。而SQL注入漏洞在受測試的Web服務中是普遍存在的,因為它們占據(jù)了所有檢測到的漏洞的80%左右。在今后的工作中,基于這次的試驗研究,借鑒不同掃描工具形成優(yōu)勢互補,促進Web應用程序的安全研究。

[1]秦廣贊,郭帆,徐芳,等.一種防SQL注入的靜態(tài)分析方法[J].計算機工程與科學,2013,35(2):68-73.

[2]Jayakanthan N,Sivakumar R.A Novel Frame Work to Detect Malicious Attacks in Web Applications[J].International Journal Research in Computer Application&Information Technology,2014,2(1):23-28.

[3]馮谷,高鵬.新型SQL注入技術研究與分析[J].計算機科學,2012,39(11):415-417.

[4]Navdeep Kaur,Parminder Kaur.Input Validation Vulnerabilities in Web Applications[J].Journal of Software Engineering,2014,8(3):116-126.

[5]符泉麟.基于OWASP的WEB應用安全檢測與防范[J].微型電腦應用,2012,28(8):51-53.

[6]Williams J,Wichers D.2013.OWASP TOP10-2013:The ten most critical web application security risks[BE/OL].http://www.owasp.org.cn/owasp-project/download/OWASPTop10 2013V1.2.pdf.

[7]Hossain Shahriar*,Sarah M.North,YoonJi Lee,Roger Hu.Server-side code injection attack detection based on Kullback-Leibler distance[J].Internet Technology and Secured Transactions,2014,5(3):240-253.

[8]賈文超,汪永益,施凡,等.基于動態(tài)污點傳播模型的DOM XSS檢測漏洞[J].計算機應用研究,2014,31(7):2119-2126.

[9]邢斌,高嶺,孫騫,等.一種自動化的滲透測試系統(tǒng)的設計與實現(xiàn)[J].計算機應用研究,2010,27(4):1384-1387.

猜你喜歡
掃描器誤報覆蓋率
民政部等16部門:到2025年村級綜合服務設施覆蓋率超80%
我國全面實施種業(yè)振興行動 農作物良種覆蓋率超過96%
家用燃氣報警器誤報原因及降低誤報率的方法
某水電站勵磁系統(tǒng)誤報導致機組事故停機原因分析
安全監(jiān)控系統(tǒng)誤報警故障的排除思路與方法
各類氣體報警器防誤報漏報管理系統(tǒng)的應用
基于噴丸隨機模型的表面覆蓋率計算方法
2015年湖南省活立木蓄積量、森林覆蓋率排名前10位的縣市區(qū)
SICK TIM351迷你型激光掃描器
戒指掃描器