Web應(yīng)用滲透測試的步驟、方法與工具
譯文【51CTO.com快譯】眾所周知,在應(yīng)用設(shè)計中的某個簡單的缺陷、配置上的錯誤、以及網(wǎng)絡(luò)釣魚攻擊,都可能給Web服務(wù)器造成巨大的損失。有統(tǒng)計顯示,全球有75%的IT領(lǐng)導(dǎo)者,對其Web應(yīng)用的安全性缺乏信心。因此近年來,Web應(yīng)用的安全性已逐漸成為了各種規(guī)模的企業(yè)的日常關(guān)注與防范重點。
從目的上說,Web應(yīng)用安全旨在:保護(hù)Web網(wǎng)站、應(yīng)用、以及服務(wù),免受那些針對應(yīng)用級源代碼弱點的、各種新增或既有的安全性威脅。下面,我將和您討論和總結(jié),在執(zhí)行Web應(yīng)用的滲透測試過程中,常用的步驟、方法與工具。
什么是Web應(yīng)用滲透測試?
在組織內(nèi)部、本地或云端的各類Web服務(wù)器,往往會持續(xù)面臨著各種惡意源的攻擊。為了降低此類風(fēng)險,網(wǎng)絡(luò)安全專家需要通過模擬針對Web應(yīng)用、網(wǎng)站或服務(wù)的一系列攻擊方式,以發(fā)現(xiàn)能夠被網(wǎng)絡(luò)攻擊者輕易利用的各種漏洞,識別出潛在的威脅,以及掌握組織整體應(yīng)用的安全態(tài)勢。這個過程便是Web應(yīng)用滲透測試。
了解滲透測試的核心步驟
Web應(yīng)用安全性測試的關(guān)鍵步驟包括:
預(yù)備動作
確定被測組織的業(yè)務(wù)范圍、目標(biāo)、以及安全態(tài)勢是至關(guān)重要的。測試人員需要在此階段識別出,目標(biāo)組織正在使用的虛擬資產(chǎn)和實物資產(chǎn)。據(jù)此,測試人員需要判斷出將要對目標(biāo)系統(tǒng)采?。汉诤袦y試、白盒測試、還是灰盒測試。
情報收集
此步驟對于分析Web應(yīng)用的設(shè)置是至關(guān)重要的。我們通常分為被動和主動兩個收集階段。其中:
- 在被動階段,測試人員主要收集那些可以在互聯(lián)網(wǎng)上被輕松獲得的信息,而無需直接與應(yīng)用進(jìn)行交互。例如,使用Google語法('site:*.domain.com'),來識別應(yīng)用的子域,或使用Wayback Machine(譯者注:自1996年以來,該站點持續(xù)給整個互聯(lián)網(wǎng)做備份,累計完成了1500億個網(wǎng)頁),來檢查網(wǎng)站的存檔版本。
- 在主動階段,測試人員對目標(biāo)系統(tǒng)進(jìn)行探測,以提取可供進(jìn)一步分析的實用信息。例如,對Web應(yīng)用進(jìn)行“指紋識別”,以發(fā)現(xiàn)所用到的技術(shù)版本,進(jìn)而執(zhí)行DNS查找,時區(qū)轉(zhuǎn)換,觸發(fā)錯誤頁面,以及檢查源代碼等操作。
漏洞掃描與分析
在了解了系統(tǒng)內(nèi)部的關(guān)鍵控制點之后,測試人員可以開始仔細(xì)檢查那些可用來攻擊的向量,以確定組織的重要信息是否存在著潛在風(fēng)險。在這個階段,他們通常會使用Zed Attack Proxy(ZAP)、Burp Suite Pro、以及Acunetix等工具,對目標(biāo)應(yīng)用的漏洞進(jìn)行掃描,以識別安全漏洞,并了解應(yīng)用是如何響應(yīng)各種入侵嘗試的。
利用階段
有了前面收集到的各種詳盡數(shù)據(jù),以及對在掃描階段發(fā)現(xiàn)漏洞的深入分析,測試人員選用各種可利用的技術(shù)和方法,實施滲透“攻擊”。例如:使用SQL注入可以獲得對于數(shù)據(jù)庫的未授權(quán)訪問權(quán)限;使用蠻力工具可以直接跳過授權(quán)機(jī)制;將惡意腳本上傳至應(yīng)用服務(wù)器,進(jìn)而獲取命令行Shell的訪問權(quán)限等。
整理威脅并制定補(bǔ)救措施
根據(jù)滲透的效果,測試人員總結(jié)并評估已開展的測試,對已發(fā)現(xiàn)的威脅和風(fēng)險進(jìn)行嚴(yán)重性排序,形成有針對性的補(bǔ)救建議,并最終生成完整的深度報告。而在組織的IT團(tuán)隊修復(fù)了錯誤,并消除了漏洞之后,測試人員立即開展新的一輪滲透測試。
如果您想深入探究上述流程的話,請參閱:《5種Web應(yīng)用安全威脅與7種防范措施》一文。
四種通過滲透測試識別威脅的常用方法
通常,合格的Web安全滲透專家會用到如下四種安全測試方法:
1. OWASP(開放式Web應(yīng)用安全項目)
OWASP是一個致力于通過從高到低列舉十大威脅,來增強(qiáng)軟件系統(tǒng)安全性的實體。它匯集了來自全球各地的技術(shù)專家,他們不斷分享著有關(guān)威脅和攻擊的各種洞見。而OWASP Top10(十大漏洞)則是一套定期更新的知名文檔。它突出展示了Web應(yīng)用可能面臨的10大最關(guān)鍵的威脅。其中包括:注入、失效的身份認(rèn)證、敏感信息的泄漏、XML外部實體(XXE),訪問控制的破壞,安全配置的錯誤,跨站腳本XSS,不安全的反序列化,使用具有已知漏洞的組件,以及日志記錄和監(jiān)控的不到位。
2. PCI DSS(支付卡行業(yè)數(shù)據(jù)安全標(biāo)準(zhǔn))
作為一組合同義務(wù),PCI DSS旨在確保所有處理、存儲或傳輸信用卡信息的組織,都能夠維護(hù)一個安全的環(huán)境。它在全球范圍內(nèi),被視為一種黃金標(biāo)準(zhǔn),可被用來確保組織內(nèi)各種付款類相關(guān)信息的安全性。
該標(biāo)準(zhǔn)不但提升了客戶的信任度,而且有助于防止那些輕度違規(guī)事件,所導(dǎo)致的敏感信息的丟失。畢竟這些對于支付場景而言,都是至關(guān)重要的。
3. OSSTMM(開源安全測試方法)
作為一個開源的安全測試手冊,OSSTMM每六個月會定期更新一次,以反映最新的網(wǎng)絡(luò)威脅。它旨在通過一個系統(tǒng)性的、科學(xué)的過程,協(xié)助用戶獲取可靠的滲透測試報告,分析各種漏洞,紅隊行為,以及其他安全類活動。
OSSTMM所包含的測試范圍包括:人員安全、物理安全、無線安全、電信安全、以及數(shù)據(jù)網(wǎng)絡(luò)安全等測試。它能夠無縫地與您當(dāng)前用到的各種安全測試協(xié)議相連接。
4. ISSAF(信息系統(tǒng)安全評估框架)
ISSAF旨在評估系統(tǒng)、應(yīng)用控制和網(wǎng)絡(luò)的安全性。它是由一個結(jié)構(gòu)化的九步走組成。其中包括:收集信息,映射網(wǎng)絡(luò),識別漏洞,滲透,獲取基本訪問權(quán)限,提權(quán),維持訪問權(quán)限,破壞遠(yuǎn)程用戶與站點,隱藏測試者的數(shù)字“足跡”。
客觀而言,此類滲透測試與其他常用方法相比,略顯復(fù)雜。如果您想深入探究上述方法的話,請參閱:《流行的滲透測試工具》一文。
可用于有效分析的七種滲透測試工具
目前,大多數(shù)滲透測試工具都屬于自動化范疇。當(dāng)然,其中也有部分工具需要測試人員手動觸發(fā)和執(zhí)行。而在實際應(yīng)用場景中,我們往往需要將手動和自動化測試技術(shù)相結(jié)合。下面讓我們來看一些最常用到的工具。
1. Zed攻擊代理(ZAP)
ZAP是由OWASP維護(hù)的、最流行且最常用的開源式Web應(yīng)用掃描程序之一。它實質(zhì)上是通過“中間人代理”的方式,實現(xiàn)漏洞檢測。也就是說,ZAP在邏輯上位于滲透測試人員的瀏覽器和目標(biāo)Web應(yīng)用之間,對于瀏覽器與Web應(yīng)用間的往來消息,進(jìn)行攔截,檢查和修改。
2. Burp Suite Pro
作為最流行的滲透測試工具包之一,Burp Suite通常被用于識別Web應(yīng)用的各種安全性漏洞。同樣作為基于代理的工具,它能夠攔截瀏覽器與任何目標(biāo)應(yīng)用之間的通信。
目前,該工具帶有各種實用且強(qiáng)大的功能,其中包括:針對特定請求而生成的概念驗證(proof-of-concept)式CSRF攻擊,帶有大量漏洞簽名庫的掃描程序,具有功能內(nèi)容與潛在威脅自動化發(fā)現(xiàn)等功能。
3. Veracode
作為一款功能強(qiáng)大的靜態(tài)分析工具,Veracode可以讓您快速地識別和修復(fù)應(yīng)用中的安全漏洞。同時,該工具能夠在無需源代碼的情況下,分析出應(yīng)用的主要安全框架和編程語言。
在實際應(yīng)用中,它可以通過集成到您的軟件開發(fā)生命周期中,方便開發(fā)團(tuán)隊編寫出安全的代碼,并且評估Web、移動、以及后端應(yīng)用的安全性。
4. SQLMap
作為被廣泛使用的開源工具之一,SQLMap可以被用于識別和利用數(shù)據(jù)庫的相關(guān)漏洞(例如SQL注入),以及對數(shù)據(jù)庫服務(wù)器實施接管。目前,該工具主要支持諸如:MySQL、MSSQL、MongoDB、Oracle、以及PostgreSQL等DBMS(數(shù)據(jù)庫管理系統(tǒng))。
5.Vega
Vega是另一款開源的Web應(yīng)用漏洞掃描工具。它可以幫助您快速地發(fā)現(xiàn)和驗證諸如XSS(跨站點腳本攻擊)、SQL注入、以及其他可能讓W(xué)eb應(yīng)用暴露在風(fēng)險之中的關(guān)鍵性漏洞。作為一款由Java編寫的、基于GUI的工具,Vega能夠支持諸如:Linux、Windows和OS X等主流操作系統(tǒng)。
6. Arachni
Arachni能夠通過對Web應(yīng)用執(zhí)行安全性測試,以識別,分類,分析和記錄各種安全性問題。與其他掃描工具不同的是,Arachni考慮到了Web應(yīng)用的動態(tài)性。它可以檢測在復(fù)雜性路徑中,由漂移(drifting)引發(fā)的變化,并據(jù)此作出相應(yīng)的調(diào)整。因此,它是滲透測試人員和管理員的理想選擇。
7. Dirb
作為針對Web內(nèi)容的實用掃描工具,Dirb通過對Web服務(wù)器發(fā)起基于字典的攻擊、或蠻力攻擊,來識別應(yīng)用中現(xiàn)有或隱藏的Web目錄。同時,Dirb屬于命令行類型的實用程序。它可以提供專業(yè)的Web應(yīng)用審核,進(jìn)而保障組織在Web應(yīng)用中敏感數(shù)據(jù)的安全性。
原文標(biāo)題:Web Application Pen Testing Steps, Methods, and Tools,作者:Cyril James
【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】