安全性測試
此條目需要补充更多来源。 (2023年11月) |
安全性測試(Security testing)是一種特別的軟體測試,其目的為了要檢測資訊系統的安全機制是否有缺陷,並且確認安全機制是否可以如正常動作,如預期方式保護資料,維持系統功能[1]。由於安全性測試在邏輯上的限制,通過安全性測試不代表系統沒有缺陷,也不一定表示系統已滿足安全需求。
典型的安全需求會包括具有機密性、完整性、身份验证、可用性、授權及不可否認特性的需求[2][3]。實際的安全需求會依系統所實現的安全需求來進行測試。安全性測試這個詞有許多不同的含意,也可以有許多不同方式來完成。因此需透過安全區分(Security Taxonomy)來瞭解這些不同的作法及意義,才能有基礎知識,進行安全性測試的工作。
術語
编辑安全性測試過程中,常見的術語如下:
- 探索(Discovery):此階段的目的是識別系統、範圍以及使用的服務。此階段不是要探索漏洞,但版本偵測可能會強調一些已不使用的軟體或韌體版本,也可能會指出潛在的漏洞。
- 漏洞掃描(Vulnerability Scan):在探索階段之後,會用自動化工具和已知漏洞的條件比對,以找出已知安全問題。這個報告會用工具自動產生,不需測試者介入或是確認。這也可以用以credential為基礎的掃描來補充,提供credential來認證某一服務(例如local的Windows帳號),以排除一些偽陽性的結果。
- 漏洞評估(Vulnerability Assessment):用探索以及漏洞掃描的結果來識別安全漏洞,並且將所發現的事和待測試系統的情形連結。像是刪除報告中常見偽陽性的結果,並且決定每一個發現漏洞的風險等級,以提昇這份報告在商業情境下的理解。
- 安全評估(Security Assessment):以漏洞評估的結果加上人工的驗證,以確認其風險,不過不包括利用此漏洞取得更多的權限。驗證可以是取得授權存取該系統,以確認系統設定,也包括檢查系統記錄、系統響應、錯誤訊息,錯誤碼等。安全評估是設計將待測試系統的漏洞有較大的覆蓋率,但不深入評估特定漏洞可能會造成的結果。
- 滲透測試(Penetration Test):這是模擬惡意者進行的攻擊。以之前階段的結果為基礎,並且利用此漏洞取得更多的權限。用這個方式會知道攻擊者要有什麼能力才能存取機密資訊、影響資料完整性或是服務的可用度,並且知道其對應的影響。每個測試都是用一致且完整的方法論,讓測試者利用其問題解決的能力、許多工具的輸出,以及其對系統及網路的知識,來找到一些自動化工具不一定找得到的漏洞。此作法著重在攻擊的深度,和安全評估時著重廣度及覆蓋率的作法不同。
- 安全稽核(Security Audit):是由稽核單位或風險管理單位主導,確認特定安全措施或是法規合格性議題。其特點是範圍較窄,稽核時會用到之前各階段(探索、漏洞掃描、漏洞評估、安全評估及滲透測試)的產出。
- 安全審查(Security Review):確認已在系統元件或是產品中實現了公司內的安全標準,或是產業的安全標準。這會透過差距分析(gap analysis)來進行,也會用到build審查、程式碼審查,同時審查設計文件以及架構圖。此活動不會用到之前各階段(探索、漏洞掃描、漏洞評估、安全評估、滲透測試及安全稽核)的產出。
工具
编辑- 容器及基础设施安全分析[4][5]
- SAST(靜態應用程式安全測試,Static application security testing)
- DAST(動態應用程式安全測試,Dynamic application security testing)
- IAST(互動式應用程式安全測試,Interactive application security testing)[6]
- DLP(資料外洩防護,Data Loss Prevention)
- IDS(入侵检测系统,Intrusion detection system),IPS(入侵預防系统,Intrusion Prevention System)
- OSS掃描(開源軟體掃描,Open Source Software Scanning,可以參考開源軟體安全)
- RASP(執行期間應用程式自我防護,Runtime Application Self-Protection)
- SCA(軟體組成分析,Software Composition Analysis)[7]
- WAF(網頁應用程式防火牆,Web application firewall)
相關條目
编辑參考資料
编辑- ^ M Martellini, & Malizia, A. (2017). Cyber and chemical, biological, radiological, nuclear, explosives challenges : threats and counter efforts. Springer.
- ^ "Introduction to Information Security" US-CERT https://www.us-cert.gov/security-publications/introduction-information-security (页面存档备份,存于互联网档案馆)
- ^ A, Madhu. The Six Principles of Security Testing | Trigent Vantage. 2017-12-04 [2022-08-28]. (原始内容存档于2023-11-09) (美国英语).
- ^ Container Security Verification Standard. GitHub. 20 July 2022 [2023-11-10]. (原始内容存档于2023-11-10).
- ^ Infrastructure as Code Security - OWASP Cheat Sheet Series. [2023-11-10]. (原始内容存档于2023-12-24).
- ^ OWASP DevSecOps Guideline - v-0.2 | OWASP Foundation. [2023-11-10]. (原始内容存档于2023-05-31).
- ^ Component Analysis | OWASP Foundation. [2023-11-10]. (原始内容存档于2023-12-20).