Part 1 背景
**
随着软件产业的迅猛发展,业务体系庞大、产品迭代迅速是许多互联网及软件公司的特点。使用传统的瀑布式开发无法满足用户的需求,由此敏捷开发(Agile Development)走进人们的视野。
敏捷开发大幅提高了开发团队的工作效率和版本更新的速度,但却不利于运维工作的进行。为了让开发人员与运维人员更好地沟通合作,缩短系统开发生命周期,实现高质量的持续交付,开发团队逐步转向DevOps模式[1]。DevOps与敏捷软件开发相辅相成,使得团队减少时间损耗,更加高效地协同工作。
DevOps可以有效推进快速频繁的开发周期,但是过时的安全措施则可能会拖累整个流程[2],因此催生出了DevSecOps概念。DevSecOps强调在软件开发生命周期(SDLC)的早期引入安全防护,在软件研发开始阶段就要考虑应用和基础架构的安全性,为DevOps打下扎实的安全基础。
在DevSecOps的建设中,想要大幅度降低安全风险,核心是构建和利用好应用安全工具(AST)进行自动化漏洞发掘,确保执行缺陷检测的时机准确、及时,并且不会影响研发效率[3]。
全球最具权威的IT研究与顾问咨询公司Gartner发布的应用安全检测魔力象限报告显示,目前市场上的应用安全工具主要分为4类,分别是Static AST (SAST)、Dynamic AST (DAST)、Interactive AST (IAST)以及Mobile AST [4]。
四种应用安全工具中,静态代码分析工具SAST采用白盒测试的方式,真正从代码的“基因”上解决问题,是目前最广泛使用的工具。
因此,在这里我们将介绍SAST在DevSecOps中常见的使用场景,期待能解答开发人员对