应用程序安全检查自动化的想法随着网络威胁的增加而发展。最初,安全测试几乎完全是手动的,但DevOps和自动化的发展使得将安全检查集成到CI/CD管道中成为可能。
在早期,手动渗透测试(pentest)和扫描工具是检查漏洞的唯一工具。后来,开发中开始出现单独的自动化扫描工具,随后是整个集成在流程中的平台。
关键特性:
是否可能仅通过自动化测试找到所有漏洞?
不可能,自动化检查只能覆盖部分安全风险(例如,XSS、SQL注入)。为了全面,需要进行手动审计。
仅使用一种类型的扫描器——SAST或DAST——是否足以提供有效保护?
不行,SAST在应用程序启动之前对代码进行静态分析,DAST在应用程序运行时分析其行为。两者都应该使用,并考虑其他方法。
是否应在CI/CD中禁用安全测试以加快部署速度?
不,这种做法是危险的——这会威胁到产品的安全性。
在发布阶段,安全性仅通过手动分析和偶尔使用扫描器来检查,报告未集成到CI/CD中。
优点:
缺点:
安全测试在CI/CD中自动化部署,关键漏洞阻止发布,为假阳性设置了过滤规则,每季度进行额外的渗透测试会话。
优点:
缺点: