安全性测试
此条目需要补充更多来源。 (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).