Web 應用程序滲透測試的四個主要步驟
?在互聯(lián)網的早期,安全只是一個事后的想法。然后,隨著黑客開始利用企業(yè)松懈的安全姿態(tài),情況逐漸開始發(fā)生變化。起初,像電子前哨基金會這樣的非營利組織開始推動網絡用戶使用 HTTPS Everywhere。作為回應,認證機構開始向任何想要 SSL 證書的站點管理員提供免費的 SSL 證書變體。因此,至少79.6% 的活躍網站現(xiàn)在使用 SSL。
那只是開始。在接下來的幾年里,開發(fā)者和 web 應用管理員逐漸開始加強他們的應用來抵御各種各樣的攻擊。他們推出了更復雜的密碼要求。他們開始添加雙因素身份驗證作為默認措施。他們甚至開始將面向公眾的服務置于高性能的 Web 應用防火墻之后。
但是盡管取得了所有的進步,漏洞依然存在,這意味著 web 應用開發(fā)者和管理員必須了解如何對他們的系統(tǒng)進行滲透測試,以查看是否有任何已知的漏洞可以穿透他們的多層防御。要做到這一點,他們必須了解滲透測試過程的各個階段,以避免留下任何安全漏洞。下面是 Web 應用程序滲透測試涉及的四個主要步驟。
步驟1: 觀察和偵察
Web 應用程序滲透測試過程中的第一個重要步驟涉及采取與攻擊者相同的策略: 盡可能地了解目標。首先要做的是從谷歌這樣的公共網站上收集目標網絡應用的信息。使用搜索修飾符,可以收集與應用程序相關的子域名和頁面的完整列表。這為黑客必須處理的潛在攻擊提供了一個相當不錯的地圖。
接下來要做的是使用像 Nmap 這樣的網絡掃描儀來收集特定于 web 應用程序本身的數(shù)據。其思想是弄清楚有多少關于軟件和服務器的信息對外部世界是可見的。然后,使用像 Burp Suite 這樣的安全測試軟件進行全面掃描,應該可以顯示從服務器軟件版本到應用程序環(huán)境的所有信息。
步驟2: 漏洞研究和攻擊
Web 應用程序滲透測試過程的下一個主要步驟是使用收集的數(shù)據開始縮小可嘗試利用的漏洞列表。換句話說,如果您發(fā)現(xiàn)攻擊者可以告訴您正在使用某個特定的 Apache 和 PHP 版本,那么您應該開始尋找這些版本中已知的漏洞,以便嘗試利用它們。
幸運的是,一些偉大的開源滲透測試工具可以自動化一些工作。您可以根據所檢查的漏洞類型從中進行選擇。受歡迎的選擇包括:
- W3af
- Metasploit
- SQLMap
- Hydra 九頭蛇
其思想是嘗試找到每一個潛在的可利用的漏洞,并將找到的漏洞編目。如果可能的話,最好使用這些漏洞模擬攻擊,以了解惡意行為者利用這些漏洞能走多遠。
步驟3: 目錄和報告
該過程的下一步是創(chuàng)建一個報告,該報告詳細說明在前兩個步驟中找到的所有內容。這個想法是創(chuàng)建一個中央知識庫,整個開發(fā)團隊可以將其作為修復問題的路線圖。這就是您在攻擊模擬中收集的數(shù)據將派上用場的地方。
報告應該根據漏洞的嚴重程度對它們進行分類。有各種公開可用的示例滲透測試報告,您可以使用它們來開發(fā)適合您需要的格式。這樣的話,關閉所有安全漏洞的工作就更容易分清主次了。如果您正在處理一個已經在運行的應用程序,那么這是一個絕對關鍵的步驟。請記住,您發(fā)現(xiàn)的漏洞可能已經在黑客的雷達上,所以您越快修補嚴重的漏洞越好。
步驟4: 修補和重復
最后一步是審閱滲透測試報告,并開始解決其中確定的漏洞。對于一個已經存在的應用程序,最好從應用盡可能多的權宜之計開始。這些可能包括改變網站訪問規(guī)則在你的網頁應用層防火墻或采取特別脆弱的部分你的應用離線。
然后,繼續(xù)決定報告中漏洞的最佳可能修復方案。從最嚴重的問題開始,簡單地檢查每個問題,因為它已經修復,同時仔細記錄下修復是什么,以及它們可能影響應用程序的其他部分。這將幫助您知道在哪里集中于您的下一輪測試,您將不得不在完成補救工作之后開始。
創(chuàng)建一個硬目標
通過重復上述過程,直到沒有漏洞被發(fā)現(xiàn),Web 應用程序開發(fā)人員和管理員可以合理地保證,他們不是一個坐以待斃的鴨子,等待攻擊。當然,這只是針對已知的漏洞,因此這個過程不會使攻擊變得不可能,只是不太可能。在不斷變化的網絡安全環(huán)境中,這通常是人們所能期望的最好結果。請記住,不久以前,SSL 和復雜的密碼還是 Web 應用程序安全的最終目標,因此持續(xù)的警惕將永遠是真正安全的代價。?