什麼是滲透測試 Penetration Test?通常依照什麼方式執行?
2024-06-28 13:38:38

What is this

滲透測試 Penetration Test,是為了證明網路防禦有按照預期計畫正常執行的一種機制,測試方式為利用、模擬駭客與惡意使用者的思維,嘗試攻破入侵企業網站、資訊系統或設備等軟體,分析測試目標的風險層級,評估安全性是否有待加強,而這項測試的最終目的,是為了在受到真正的攻擊之前,能夠提早發現安全性的漏洞並加以改善修正。

不過在進行滲透測試之前,我們應該要先實行「弱點掃描」的步驟,將測試目標進行掃描,獲取弱點分析統計、說明、存在路徑與修補建議,接著才會再針對掃瞄出的漏洞採取模擬滲透的行為,驗證是不是能真的利用這些已知的弱點攻破與入侵主機。

滲透測試的流程可分為五個步驟,如下。

  1. 準備階段
    確認執行的方式、範圍、時間與測試計畫,並蒐集受測目標的公開資訊,如Domain、IP位置和帳號…等。

  2. 資料蒐集
    依循OSSYMM(Open Source Security Testing Methodology Manual)建立執行架構、策略、資料蒐集、分析與目標滲透步驟,並測試是否有敏感資訊或系統訊息洩漏。

  3. 資料分析、弱點掃描
    掃描受測目標已知的弱點,各項測試廠商提供與採用的測試標準不一,但大多都會以OWASP(Open Web Application Security Project)所提供的年度十大安全風險排行榜所揭露的風險作為主要的檢測標準。

  4. 目標滲透
    測試應用程式、軟體、邏輯與系統,以不同的方式執行滲透測試的作業,並破解密碼等目標項目。若取得伺服器控制權限,會再嘗試取得伺服器最高權限,或滲透內網其他伺服器。

  5. 弱點報告
    測試完畢,獲取測試報告書。

目前滲透測試沒有強制規定的標準化流程可遵循,但大多都會依照 OWASP 和 OSSTMM 中的測試安全指南進行測試,有些則會再使用 SANS 做為檢測標準。

How To Do

OWASP

根據 OWASP 2021 發佈的前 10 大風險進行測試

  1. Broken Access Control(應用程式在身份驗證、授權和Session管理等方面出現不當配置或實作,導致攻擊者能夠訪問未經授權的資源或執行未經授權的操作)

  2. Cryptographic Failures(軟體應用程式中所使用的加密方式或加密實作出現錯誤,導致加密過程的失敗,最終可能會使攻擊者能夠以某種方式讀取或修改敏感資訊,或者是讓攻擊者能夠對系統進行未授權的操作)

  3. Injection(在應用程式中,未對使用者輸入的資料進行充分驗證或過濾,導致攻擊者能夠向應用程式的執行環境中插入並執行惡意指令或程式碼。此弱點包括但不限於 SQL Injection、XML Injection、LDAP Injection、OS Command Injection、Code Injection 等)

  4. Insecure Design(軟體設計上有缺陷,導致系統無法有效地防禦攻擊。這些缺陷可能包括不當的系統架構、不完善的安全模型、安全風險分析不充分、權限管理不當等,進而造成系統易受到各種攻擊)

  5. Security Misconfiguration(因為應用程式和系統的未經適當配置、更新、保護和監控,使其容易受到攻擊和入侵。攻擊者可能會利用這些設定上的漏洞,取得未授權的存取權限,並竊取敏感資料或者破壞系統)

  6. Vulnerable and Outdated Components(應用程式中使用的外部組件、資料庫、框架等元件存在安全漏洞或已經過時,攻擊者可以利用這些漏洞對應用程式進行攻擊)

  7. Identification and Authentication Failures(系統無法適當地識別和驗證使用者的身分,這種漏洞可能發生於帳號密碼管理不當、session管理不當、未能保護身分識別憑證、身分識別管理不當等)

  8. Software and Data Integrity Failures(在應用程式中,未能防止惡意的修改、刪除或篡改資料或軟體。這可能會導致應用程式運行失常,或是開啟了不當的訪問權限,進而造成機密性和可用性的風險。攻擊者可以利用這些漏洞進行資料竊取、篡改數據、執行未授權的操作等行為,嚴重影響了應用程式的完整性。)

  9. Security Logging and Monitoring Failures(網站或應用程式缺乏有效的安全監控機制,無法將所有安全事件、錯誤、攻擊等記錄下來並及時做出相應的反應。缺乏適當的監控機制可能會導致被攻擊後且未能發現)

  10. Server-Side Request Forgery(當應用程式未能適當限制外部用戶端所提交的請求,或者未能適當驗證應用程式所收到的請求時,攻擊者可以利用這個漏洞向受害系統發出任意請求)

OSSTMM

  1. Phishing

  2. Social Engineering

  3. Ransomware

  4. Downloaders

  5. Drive-by Downloads / Download Hijacking

  6. Malvertising

  7. Zero-Day Attack

  8. Password Cracking

  9. Distributed Denial of Service Attack (DDoS)

  10. Scareware

  11. SQL Injection

SANS

  1. 授權和未授權設備 Inventory of Authorised and Unauthorised Devices

  2. 授權和未授權軟件清單 Inventory of Authorised and Unauthorised Software

  3. 移動設備、筆記型電腦、工作站和伺服器上硬體和軟體的安全配置 Secure Configurations for Hardware and Software on Mobile Devices, Laptops, Workstations and Servers 

  4. 持續漏洞評估和修復 Continuous Vulnerability Assessment and Remediation

  5. 受控使用管理權限 Controlled Use of Administrative Privileges

  6. 審計日誌的維護、監控和分析 Maintenance, Monitoring and Analysis of Audit Logs

  7. 電子郵件和 網站瀏覽器保護 Email and Web Browser Protections 

  8. 惡意軟件防禦 Malware Defenses

  9. 網路端口、協議和服務的限制和控制 Limitation and Control of Network Ports, Protocols and Services

  10. 數據恢復能力 Data Recovery Capability

  11. 安全配置用於網絡設備,例如防火牆、路由器和交換機 Secure Configurations for Network Devices, such as Firewalls, Routers and Switches

  12. 邊界防禦 Boundary Defense 

  13. 數據保護 Data Protection 

  14. 基於需要了解的受控訪問 Controlled Access Based on the Need to Know 

  15. 無線訪問控制 Wireless Access Control 

  16. 帳戶監控 Account Monitoring and Control 

  17. 安全技能評估和適當培訓以填補空白 Security Skills Assessment and Appropriate Training to Fill Gaps 

  18. 應用軟體安全 Application Software Security

  19. 事件響應和管理 Incident Response and Management

  20. 滲透測試和紅隊練習 Penetration Tests and Red Team Exercises