![1.png](https://static.studygolang.com/210305/67acbb44426440f9fb82410972a1c54a.png)
引言
随着越来越多的公司意识到将安全性集成到其DevOps流水线的重要性,对DevSecOps产品的需求一直在强劲增长。但是,投入DevSecOps市场寻求选择的IT和DevOps专业人员很快意识到,DevSecOps工具和框架的数量众多且令人困惑。选择过多,往往使他们陷入决策疲劳和分析瘫痪的境地,因为他们试图了解选择哪种安全解决方案以及如何将其集成到他们的软件开发流水线中。
但是,为什么首先将DevSecOps成为如此关注的焦点呢?为了跟上创新的步伐,开发人员已成倍地增加了对开源软件(OSS)的使用,使其现已广泛应用于应用程序开发交付过程中。随着越来越多的源代码来自“外部”,如今,收集和理解其内容的需求变得至关重要。
在这篇文章中,我们将研究在减轻OSS中可能包含的漏洞方面最成功的工具和技术类型。然后,我们将分享一些技巧,这些技巧将帮助您从市场上脱颖而出,并在评估市场上的许多不同选项时做出更好,更明智的决策,尤其是在软件组成分析(SCA)领域。
开发的现实&现状
如今,典型的应用程序使用多达90%的OSS组件,这些组件取自公开可用的开源库。这种趋势使得应用程序中存在的漏洞数量不断增加,进而导致漏洞攻击和破坏。公司通过载DevOps流水线中添加更多安全检查集成来做出反应。
但是,安全专业人员和开发人员真正需要哪种类型的工具来确保其生产软件的安全性和稳定性?公平地说,有多种广泛的DevOps安全工具可以解决软件开发生命周期(SDLC)的不同领域:
代码分析(静态和动态)
软件组成分析(针对第三方OSS)
运行时安全性分析(包括容器)
理想情况下,团队应该致力于采用所有这些领域的工具,以实现完整的SDLC安全性,但是对于本博客,我们将专注于软件组成分析,该软件的目标是缓解OSS开源组件和二进制文件中的漏洞和违反许可证合规性。
DevSecOps的七个必备条件
选择DevSecOps工具时,需要确保以下7点:
1.可以本地管理和理解所有制品的工具
在团队在没有完成确定哪个OSS组件具有漏洞的任务之前,他们首先需要一个通用的DevOps平台,该平台可以作为一个基本要求,在集中位置管理所有组件和二进制制品文件,而不论其技术栈类型如何。DevOps平台需要知道项目使用了哪些组件以及它们之间的依赖关系,还有项目创建了哪些制品文件。
2.使用最好的燃料
最有效的解决方案将需要像VulnDB这样的世界一流的漏洞情报源的力量,以确保它具有最新的漏洞知识库。世界上最好的汽车如果他们没有最好的燃料来推动他们什么也不是
3.坚持可见性和影响分析
DevSecOps的“赢家”不仅能够了解您的二进制文件使用了哪些OSS库和组件,而且还能了解如何解压和扫描它们并查看所有底层和依赖项,甚至包括打包在Docker映像和zip文件中的那些底层和依赖项。能够了解组织中制品文件和依赖关系结构的解决方案可以为企业提供软件交付可见性,并在交付过程中的任何地方发现其漏洞或许可证违规的影响范围。
4.需要支持容器和云原生框架
解决方案应支持基于容器的发布框架,容器框架已迅速成为云原生部署的事实上的标准。对容器技术的深入,递归的理解以及深入探究每一层layer的能力将确保漏洞不会被掩盖。不幸的是,某些扫描工具不支持容器,或者对它们的所有不同层和可传递依赖项了解不足。
5.自动化治理
与公司安全部自动化协作管理的能力是DevSecOps的重要筹码。治理系统必须能够自动执行公司策略,并在不进行干预的情况下采取相应的措施。主要功能应包括:
通过不同的渠道(例如电子邮件,即时消息或需求管理系统如Jira)来通知违反安全性或合规性问题,
自动阻止包含问题(漏洞或许可证违规)制品的下载
使依赖脆弱组件(包含高危漏洞)的构建失败
防止部署易受攻击的交付件
6.遍及整个流水线
DevSecOps中的差异化点是如何将制品的详细数据与横跨制品仓库,构建,部署,运行等阶段的安全扫描结合起来。即使在生产部署之后(运行时),一个可以覆盖整个SDLC并持续检测和监视漏洞和合规性违规的平台将脱颖而出。
7.混合动力
即使您尚未维护混合型的基础架构。现在选择支持您的持续云计算旅程和基础架构混合的工具和解决方案,将确保您无论在何处的DevSecOps流水线中都具有一致性和标准。
总结
DevSecOps将不再停留在CIO的心愿单。现在它是必须执行的IT战略,它必须成为任何组织SDLC不可或缺的一部分。即使组织选择了合适的DevSecOps解决方案,领导者也需要确保他们在各个团队之间实施完善的DevSecOps流程。这包括需要继续就应用程序安全最佳实践对开发人员和DevOps从业人员进行培训。开发人员安和全专业人员比例通常是250:1,因此在开发团队之间分享安全知识是弥补安全缺失的基础。
选择一个可以管理存储库,二进制文件,CI / CD自动化和OSS组件分析并支持容器化发布框架的DevSecOps平台似乎是一项艰巨的任务。此外,支持本地,云,多云和混合部署是一个额外的挑战。但是,解决方案需求清单是一个很好的起点。我们希望这七个技巧将为您向供应商提出正确的问题,消除市场噪音以及做出明智的决定奠定坚实的基础。
有疑问加站长微信联系(非本文作者)