<p>如果仅在软件交付生命周期结束时(在部署服务之前或之后)运行安全扫描,则随后的编译和修复漏洞的过程会成为高效开发的一大阻碍。此外,随着应用程序越来越多地使用开源开源软件(OSS)组件和其他第三方构件构建,每一个组件都可能给应用程序带来新的漏洞。</p><p>下面是一组数据:</p><blockquote>超过80%的软件漏洞是通过开源软件(OSS)和第三方组件引入的;<br>数字供应链攻击正变得越来越激进、复杂和多样化。到2025年,45%的组织将至少经历一次。(Gartner)<br>到2026年,全球软件供应链网络攻击给企业造成的总成本将超过806亿美元,高于2023年的458亿美元(Juniper Research)</blockquote><p>这种日益加剧的威胁环境,加上要求更快地进行开发和迭代,组织越来越多开始在整个软件开发生命周期中集成安全性,也就是DevSecOps。</p><p>一个有效的DevSecOps计划是一项巨大的工程。它需要跨多个职能部门进行重大的文化变革,以推动共享责任、协作、透明度和有效沟通。它还需要正确的工具、技术,以及自动化和人工智能的使用,以确保应用程序的发展速度。如果实施得当,DevSecOps 将成为交付安全软件的重要成功因素。</p><h3><font color="#c24f4a">什么是 DevSecOps?</font></h3><p>DevSecOps 是开发、安全和运营的缩写,是一种软件开发方法,它在整个软件开发生命周期中集成了安全实践。它强调开发团队、安全团队和运营团队之间的协作和沟通,以确保将安全性内置到软件开发过程的每个阶段。</p><p>在软件开发管道的背景下,DevSecOps的目标是“将安全向左转移”,它涉及到从一开始就将安全实践和工具集成到开发管道中。通过这样做,安全性成为软件开发过程中不可或缺的一部分,而不是后期的附加组件。</p><p>这种方法使组织更容易在早期识别和解决安全漏洞,并满足监管义务。同样值得注意的是,DevSecOps是建立在协作和分担责任的文化基础上的。它打破了孤岛,并鼓励跨职能团队一起工作,以实现以高速构建更安全的应用程序的共同目标。</p><h3><font color="#c24f4a">交付安全软件的指导原则</font></h3><p>构建和运行一个有效的DevSecOps计划意味着组织能够运行一个安全的交付平台,测试软件漏洞,优先考虑和修复漏洞,防止发布不安全的代码,并确保软件及其所有工件的完整性。下面是实现成功的DevSecOps实践所需的元素和能力的详细描述。</p><p><b><font color="#c24f4a">建立协作文化,将安全作为共同责任</font></b></p><p>DevSecOps 的核心是一种责任共担的文化,以共同面向安全的思维方式运营决定了 DevSecOps 流程的适应程度,并在选择 DevOps 平台、工具和单个安全解决方案时可以推动更好的决策。</p><p>思维方式不会在一夜之间改变,但可以通过以下方式实现一致性和安全感:</p><ul><li>致力于定期进行内部安全培训(针对 DevSecOps)量身定制,包括开发人员、DevOps 工程师和安全工程师。技能差距和需求不应被低估。</li><li><font color="#000000">开发人员采用安全编码方法和资源</font></li></ul><p>安全工程有助于应用程序和环境架构、设计审查。在软件开发生命周期的早期识别和修复安全问题总是更容易。</p><p><b><font color="#c24f4a">打破职能孤岛并持续协作</font></b></p><p>由于 DevSecOps 是软件开发、IT 运营和安全融合的结果,因此打破孤岛并持续积极协作对于成功至关重要。通常,在没有任何正式 DevSecOps 框架的情况下运营的以 DevOps 为中心的组织将安全性一种阻碍。</p><p>推动协作并作为一个有凝聚力的 DevSecOps 团队运营涉及:</p><ul><li>定义并商定一组可测量的安全目标,例如修复的平均时间和减少CVE警报噪声的百分比。软件开发人员和DevOps团队参与新安全工具的整个评估和采购流程</li><li>确保没有 DevSecOps 进程有一个单一的功能负责人</li><li>迭代优化工具选择和安全实践,以提高开发人员的工作效率和速度</li></ul><p><b><font color="#c24f4a">将安全左移</font></b></p><p>实现左移安全性是保护应用程序代码在开发管道中移动的关键步骤。这种方法涉及在软件开发生命周期的早期集成安全实践,从编码的初始阶段开始,并扩展到整个开发和部署过程。通过将安全测试进一步左移,组织可以在早期阶段识别和解决漏洞,从而降低安全漏洞的风险并确保安全应用程序的交付。</p><p><!--StartFragment--> <!--EndFragment--></p><p>要成功地转移安全性,首先要在整个开发流程中集成不同类型的安全扫描,。为了在整个软件开发生命周期中捕捉和修复漏洞,DevSecOps团队需要采用和使用几类应用程序安全性测试,如静态应用程序安全检测工具、开源组件检测工具、动态应用程序安全检测工具等。每种类型的安全扫描仪所采用的技术都是互补的。结合起来,它们在应用程序进入生产环境之前就可以有效发现已知的安全问题。</p><p><br></p>