滲透測試流程
與客戶進行簽約,取得合法的測試權限後,以下為簽約與接洽需要注意:
- 企業是否了解滲透測試可能造成的危害性
- 企業是否針對目標進行備份與還原的測試
- 企業是否允許測試人員存取內部敏感資料
- 企業是否能提供測試環境供測試人員檢測
- 企業是否禁止特殊測試方法,以下不限於:
- 提權攻擊:取得一般權限,確認環境內是否檢測有提升權限的危害
- ZeroDay 攻擊:駭客已知但廠商未知未修補的弱點
- 社交工程:針對人性的弱點進行攻擊
- 物理攻擊:實體入侵
- 密碼爆破:使用密碼字典檔進行檢測
- 中間人攻擊:攔截封包,確認傳輸輸的安全性
- 企業進行滲透測試之後是否需要進行複測
開始進行正式的滲透測試,分成以下六個階段:
- 資訊蒐集
- 漏洞識別
- 漏洞利用
- 清除紀錄
- 撰寫報告
- 修復複測
資訊蒐集:蒐集目標的所有資訊
此階段為是滲透測試最重要的階段,在這個階段蒐集最多的資訊,能加速後續的漏洞識別與漏洞利用。
根據目標進行資訊蒐集,分成主動情蒐與被動情蒐:
- 被動情蒐:蒐集公開在網路中可被利用的資訊:如 WHOIS 資訊、公司資訊(聯絡人信箱、名稱)等。
- 主動情蒐:直接與目標進行存取,透過掃描工具收集資訊:如端口掃描、服務枚舉。
漏洞識別:判別目標的漏洞風險
透過資訊蒐集的階段所收集的資料,去識別目標是否存在漏洞和弱點,
除了手動測試之外,也會透過弱點掃描工具輔助,
針對系統弱點掃描 Open-VAS 與 Nessus、
針對網站安全弱點掃描 AWVS 與 OWASP ZAP 的工具。
若識別目標有存在漏洞和弱點,會在下一階段確認漏洞的風險與危害性。
漏洞利用:確認漏洞存在與危害
當識別出有漏洞和弱點,根據簽約時,所允許的檢測方式檢測弱點,
並針對找到的弱點和漏洞進行評估危害性。
針對目標系統進行分析,利用已知漏洞或自行撰寫的 POC 驗證弱點存在,
重大風險的漏洞,造成的影響可能是任意遠端執行目標系統的指令(Remote Code Execution)
或是可任意存取、修改、刪除企業內部的敏感資料。
清除紀錄:清除測試過程的檔案
若測試範圍在於「正式環境」,在檢測結束之後,
測試資料、測試帳號、上傳檔案都需要紀錄與移除,
若無法刪除的資料,須告知企業,請企業協助刪除,
因為測試資料可能會影響企業內部營運。
撰寫報告:撰寫修正建議給企業
透過報告讓客戶了解這次滲透測試發現的漏洞與危害,通常以下大點敘述:
- 聲明:此章節說明該測試有經過正式授權,測試內容為敏感資料等
- 方法:測試目的、測試方法、測試流程
- 摘要:測試結果的摘要,可能透過圖表的方式呈現
- 過程:測試的過程、如何利用、重現弱點與影響性
- 解決:該弱點有什麼解決方案
修復複測:修復後進行再次驗證
提供報告給受測企業之後,企業依據報告內容進行修復弱點。
複測:根據第一次的檢測內容,查看企業是否已經修復完畢,
複測結束後會提供,複測報告給企業。
滲透測試相關規範
- OSSTMM (Open Source Security Testing Methodology Manual)
- 開放原始碼安全測試方法指南
- 內有包含針對客戶可確認的問題
- http://www.osstmm.org/
- PTES Technical Guidelines
- 提供測試的注意事項與細節
- OWASP APSVS (OWASP Application Security Verification Standard)
- OWASP 應用程式安全驗證標準
- OWASP (Open Web Application Security Project)
- OWASP 提供 WEB 的測試指南