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