DevSecOps的三大开源工具集
现代软件开发是一个高度复杂的工程,而软件开发的敏捷化(DevOps)则给其安全控制带来了全新挑战。随着安全威胁的不断增长,开发者必须将安全控制融合到软件开发的整个生命周期中(DevSecOps),将安全测试工具与研发流程整合,在软件发布、部署之前,投入生产之后针对漏洞进行大量严格测试。
为了加快软件安全的测试过程,匹配安全与敏捷需求,企业安全团队也应该遵循DevSecOps敏捷安全思维模式,实践DevOps安全持续生命周期方法,通过自动化工具大大简化代码安全测试。
以下,我们将简要介绍三种主要的DevSecOps测试方法(SAST、DAST和SCA)及其开源(含免费)工具。
静态应用安全测试(SAST)
静态应用程序安全测试(SAST)通常在编码阶段分析软件源代码或二进制文件的语法、结构、过程、接口中存在的安全漏洞,是公司在软件开发生命周期的早期阶段进行的一种白盒安全测试。SAST通常会在不同的时间间隔或需要添加或更改代码库时重新运行。
作为DevSecOps产品,为自动化量身定制的SAST工具会逐行筛查代码以识别已知漏洞和薄弱环节。
自动化SAST工具的主要缺点之一是误报,而且该工具的智能化程度不足以分析处于早期阶段且无法编译的代码。通过人工智能技术可以大大减少SAST工具的误报事件。
OWASP发布了开源、免费和商业SAST工具的列表,以下是可以添加到集成开发环境中的流行开源SAST工具:
- Bandit
- Flawfinder
- GitHub Advanced Security
- OWASP Automated Software Security Toolkit
动态应用安全测试(DAST)
SAST从内部查看源代码,而动态应用程序安全测试(DAST)则从外部分析软件的安全性。作为一种黑盒安全测试工具,DAST可识别整个企业基础架构中的网络、系统和操作系统漏洞。
DAST通常在测试或运行阶段分析应用软件的动态运行状态,要求应用程序完全编译和运行,因此DAST测试通常在生产之前的测试/开发环境中运行,自动启动多个爬取活动和相关的渗透测试以检测漏洞。DAST降低了将有安全漏洞的软件交到业务用户手中的风险。
DAST的主要缺点是测试难以覆盖整个攻击面,从而导致一些漏洞被遗漏。
OWASP推荐了一系列开源和商业DAST工具。其中流行的开源工具如下:
- Deepfence ThreatMapper
- Nikto
- OpenVAS
- OWASP Zed Attack Proxy
软件成分分析(SCA)
软件成分分析(SCA)技术用于检测软件中的开源组件是否带有已知的安全漏洞或功能漏洞,或需要恰当授权许可的商业软件或第三方产品。
随着软件供应链安全威胁的不断增长,软件成分分析(SCA)的重要性正不断提升,对于部分或者全部依赖开源软件的开发项目,SCA工具可用于自动识别整个容器映像、打包的二进制文件和源代码中的漏洞。SCA工具对于识别和管理软件许可,以及实现最佳代码集成也很有用。
SCA工具提供了一种可靠的方法来及时自动识别漏洞和利用。SCA工具可扫描一个或多个相关数据库中的管理器、文件和图像,从中查找已知漏洞,可快速识别开源软件和可重用代码中的安全问题。越来越多的企业意识到,需要使用软件物料清单(SBOM)来跟踪代码并帮助防止可见性问题。
G2列出了许多提供免费试用版的SCA工具,其中包括:
- GitLab
- ThreatWorx
- JFrog Xray