滲透測試(PenTest)基礎指南

什么是滲透測試?
滲透測試(Penetration Test,簡稱為 PenTest),是指通過嘗試利用漏洞攻擊來評估IT基礎設施的安全性。這些漏洞可能存在于操作系統(tǒng)、服務和應用程序的缺陷、不當配置或有風險的用戶行為中。這種評估也有助于驗證防御機制的有效性以及最終用戶是否遵守安全政策。
滲透測試通常使用手動或自動技術來系統(tǒng)地破壞服務器、端點、網(wǎng)絡應用、無線網(wǎng)絡、網(wǎng)絡設備、移動設備和其他潛在的暴露點。一旦某個系統(tǒng)的漏洞被成功利用,測試人員會嘗試利用被破壞的系統(tǒng)繼續(xù)攻擊其他內部資源,特別是,會通過權限升級逐步獲取更高級別的安全許可和對電子虛擬資產(chǎn)和信息的更深入訪問。
通過滲透測試成功暴露的任何安全漏洞信息通常會被匯總提交給 IT 和網(wǎng)絡系統(tǒng)經(jīng)理,以幫助這些專業(yè)人士做出戰(zhàn)略性結論并調整修復工作的優(yōu)先級。滲透測試的根本目的是衡量系統(tǒng)或終端客戶被破壞的可能性,并評估此類事件可能對相關資源或操作產(chǎn)生的任何后果。
把滲透測試看成是試圖通過自己動手來確認是否有人能闖入你的房子可能更好理解。滲透測試人員也被稱為道德黑客,使用受控環(huán)境評估IT基礎設施的安全性,以安全地攻擊、識別和利用漏洞。區(qū)別在于他們不是檢查門窗,而是測試服務器、網(wǎng)絡、網(wǎng)絡應用程序、移動設備和其他潛在的突破口,以發(fā)現(xiàn)整套系統(tǒng)的弱點。
滲透測試的5個階段
滲透測試的整體流程可以分為5個階段:規(guī)劃和偵查、掃描、獲取訪問權限、維持訪問權限、分析。
1、 規(guī)劃和偵查
第一階段主要包含以下兩個內容:
定義測試的目標和范圍,包括要處理的系統(tǒng)和要使用的測試方法
收集情報(例如,網(wǎng)絡和域名、郵件服務器)以更好地了解目標的工作方式及其潛在漏洞
2、 掃描
滲透測試人員會使用工具來檢測目標網(wǎng)站或系統(tǒng)的弱點,包括開放的服務、應用安全問題以及開源漏洞。滲透測試人員根據(jù)他們在偵查和測試期間發(fā)現(xiàn)的內容使用各種工具。通常包含以下兩類工具:
靜態(tài)分析:檢查應用程序的代碼,以預估它在運行時的行為方式。這類工具可以一次性掃描整個代碼。
動態(tài)分析:在運行狀態(tài)下檢查應用程序代碼。這是一種更實際的掃描方式,因為它可以實時查看應用程序的性能。
3、 獲取訪問權限
攻擊者的動機可能包括竊取、更改或刪除數(shù)據(jù),轉移資金或是損害公司聲譽等。因此,這一階段會使用網(wǎng)絡應用攻擊,例如跨站腳本攻擊、SQL注入和后門等攻擊方式,以發(fā)現(xiàn)目標漏洞。滲透測試人員會確定最合適的工具和技術來獲得對系統(tǒng)的訪問,然后利用這些漏洞,以了解她們可能造成的損害。
4、 維持訪問
這一階段的目標是看這些漏洞是否可以在目標系統(tǒng)中保持足夠長的時間以達成攻擊者的目的。這是為了模擬復雜的持續(xù)性威脅,這些威脅通常在系統(tǒng)中停留數(shù)月以竊取企業(yè)中最敏感的數(shù)據(jù)。
5、 分析
滲透測試的結果隨后會匯編成一份報告,包含以下內容:
被利用的具體漏洞
被訪問的敏感數(shù)據(jù)
滲透測試人員能夠留在系統(tǒng)中而不被發(fā)現(xiàn)的時間
安全人員對這些信息進行分析,以幫助配置企業(yè)的WAF設置和其他應用安全解決方案,以修補漏洞和阻止未來可能產(chǎn)生的攻擊。
應該授予滲透測試人員多少權限?
根據(jù)滲透測試的目標,測試人員能夠獲取不同等級的信息或是目標系統(tǒng)的訪問權限。在某些情況下,滲透測試團隊會在開始時采取某種方法并一直堅持下去。其他時候,隨著滲透測試期間對系統(tǒng)認識的深入,測試團隊也會迭代其測試策略。因此,有3個層次的滲透測試訪問權限:
Opaque Box:測試團隊對目標系統(tǒng)的內部結構毫無了解。他們需要像黑客一樣行事,探測可以從外部利用的任何弱點。
Semi-opaque Box:團隊掌握了一套或多套憑證。并且知道目標的內部數(shù)據(jù)結構、代碼和算法。滲透測試人員可能會根據(jù)詳細的設計文件,如目標系統(tǒng)的架構圖,設計測試方案。
Transparent Box:滲透測試人員擁有訪問系統(tǒng)、系統(tǒng)組件(包括源代碼、二進制、容器和其他運行在該系統(tǒng)上的服務器)的權限。這種方法可以在最短的時間內為目標系統(tǒng)提供最高級別的保障。
滲透測試的類型
全面的滲透測試對于優(yōu)化風險管理至關重要,這需要測試你所在環(huán)境中的所有區(qū)域:
Web App:測試人員檢測安全控制的效率并查找隱藏的漏洞、攻擊模式以及其他導致 Web App 被破壞的潛在安全缺口。
移動應用:利用自動化和擴展的手動測試,測試人員可以尋找在移動設備上運行的應用程序二進制文件和相應的服務器端功能的漏洞。服務器端的漏洞包括會話管理、加密問題、認證和授權問題以及其他常見的網(wǎng)絡服務漏洞。
網(wǎng)絡:這種測試可以確定外部網(wǎng)絡和系統(tǒng)中的常見漏洞和關鍵漏洞。專家們會設置一個檢查表,其中包括加密傳輸協(xié)議、SSL證書范圍問題、管理服務的使用等測試用例。
云:云環(huán)境與傳統(tǒng)本地環(huán)境存在巨大的差異。通常情況下,安全責任是由使用環(huán)境的企業(yè)和云服務提供商共同承擔。正因為如此,滲透測試需要一套專門的技能和經(jīng)驗來仔細檢查云的各個環(huán)節(jié),如配置、API、各種數(shù)據(jù)庫、加密方式、存儲和安全控制。
容器:從 Docker 獲得的容器往往存在漏洞,并且可以被大規(guī)模利用。錯誤配置也是與容器及其環(huán)境相關的常見風險。以上這兩種風險都可以通過專業(yè)的滲透測試發(fā)現(xiàn)。
嵌入式設備(IoT):嵌入式或物聯(lián)網(wǎng)設備(如醫(yī)療設備、汽車、智能家居、智能手表等)由于其較長的使用周期、電源限制、監(jiān)管要求以及位置分散等特性,需要獨特的軟件測試方法。專家們在進行徹底的通信分析的同時,還需要進行客戶端/服務器分析,以確定在相關使用場景中是否會出現(xiàn)漏洞。
API:采用自動和手動測試技術力求覆蓋 QWASP API 安全 Top 10 名單。測試人員尋找的一些安全風險和漏洞包括 Broken Object Level Authorization(BOLA)、用戶認證、過度的數(shù)據(jù)暴露、缺乏資源/速率限制等等。
CI/CD 流水線:現(xiàn)代?DevSecOps 實踐將自動化和智能代碼掃描工具整合到 CI/CD 流水線中。除了發(fā)現(xiàn)已知漏洞的靜態(tài)工具外,自動滲透測試工具也可以被集成到 CI/CD 流水線中,以模擬黑客的行為方式來破壞應用程序的安全。自動化的 CI/CD 滲透測試可以發(fā)現(xiàn)隱藏的漏洞和攻擊模式,這些漏洞和攻擊模式在靜態(tài)代碼掃描中是無法發(fā)現(xiàn)的。
為什么滲透測試如此重要?
識別并對安全風險進行優(yōu)先排序
滲透測試評估了企業(yè)保護其網(wǎng)絡、應用程序、端點和用戶的能力,以防止外部或內部試圖規(guī)避安全策略來獲得對敏感數(shù)據(jù)的訪問。
智能管理漏洞
滲透測試會向企業(yè)提供關于可利用的安全威脅的實際信息。通過執(zhí)行滲透測試,你可以主動識別哪些漏洞是致命的,哪些是不太重要的,哪些是假陽性。這使你的組織能夠更明智地確定補救措施的有限次序、應用所需的安全補丁,并更有效地分配安全資源,以確保它們發(fā)揮最大優(yōu)勢。
識別現(xiàn)有的安全項目是否在正常運行
沒有對整個環(huán)境的適當可見性就貿然改變安全策略可能會導致你所解決的安全問題都是一些實質上不會造成任何傷害的問題。滲透測試不僅能告訴你組件是否在正常運行,它們還可以進行質量檢查,所以通過滲透測試你也會發(fā)現(xiàn)什么策略是最有效的,什么工具可以提供最高的投資回報率。
符合監(jiān)管要求
滲透測試幫助企業(yè)解決審計和合規(guī)性問題。通過利用企業(yè)的基礎設施,滲透測試可以準確地證明攻擊者是如何獲得敏感數(shù)據(jù)的。隨著攻擊策略的發(fā)展和演變,定期的強制測試可以確保企業(yè)在漏洞被利用之前發(fā)現(xiàn)并修復安全弱點,從而領先一步。
此外,對于審計人員來說,這些測試還可以驗證其他規(guī)定的安全措施是否到位或者正常工作。滲透測試所生成的詳細報告還可以幫助企業(yè)說明其在維護所需的安全控制方面做出了盡職的工作。