组织在实施DevSecOps的过程中通常充满着风险,因此需要仔细考虑组织的文化、员工培训、工作流程和业务需求,并了解往往在这些方面导致DevSecOps失败的一些原因。
组织采用DevSecOps的原因有多种:实现数字化转型、更快地交付价值、获得竞争优势,以及降低安全修复成本等。尽管急于实施和采用,但一些组织的DevSecOps计划遭遇失败,而导致失败的原因是可以避免的,以下是导致组织实施DevSecOps失败的7种最常见的原因。
1.未能建立学习文化
根据调研机构麦肯锡公司最近发布的一份调查报告,人才和文化问题是组织在实施数字化转型方面面临的最大挑战,其中包括DevSecOps。而具有不断尝试和持续学习的企业文化的组织将通过DevSecOps获得更大的成功。
而通过日常的学习,保留员工学习和改进的时间,以及开展提高劳动力技能的教育和培训,可以促进DevSecOps的实施。这可以通过投资学习订阅、提供援助和证书报销来实现。组织通过内部或外部的技术专家在研讨会分享专业知识和经验的方式也很有效。
2.忽视跨团队职能教育
组织的开发团队和安全团队之间通常存在着一种潜在的紧张关系。在学习文化的基础上,必须开展跨团队的职能教育,这是消除孤岛和缓解紧张关系的更广泛要求的一部分。
由Linux基金会和哈佛大学创新科学实验室进行的2020年自由和开源软件(FOSS)贡献者的调查发现,自由和开源软件(FOSS)开发人员在提高代码安全性方面只花费2.3%的工作时间。他们通常使用诸如“灵魂枯竭”之类的术语来描述安全编程和安全性面临的现状。在组织希望提高安全性的时代,开发人员在提交代码和生产升级之前处于缓解安全漏洞的首要位置,他们必须了解安全编码的组织价值,并激励他们去追求编写更安全的代码。
另一方面,他们也发现自己处在“一切即代码”的运营环境中。从应用程序代码、基础设施即代码(IaC)、合规性代码,Kubernetes清单,以及持续集成(CI)/连续交付(CD)管道YAML模板,代码无处不在。而组织的安全专业人员并不需要成为优秀的开发人员,但是他们应该从更高的层次理解编码实践,并能够审查模板中常见的错误配置和漏洞。这也将改善两个团队之间的合作。
3.忽略交流DevSecOps的业务价值
关于DevSecOps的任何努力都应与组织的关键业务目标联系在一起。实施DevSecOps是一个转型之旅,需要组织的关键利益相关者的认同和参与。
因此,传达DevSecOps的业务价值至关重要。组织的高管必须清楚地了解实施DevSecOps的原因。做到这一点最有效的方法之一就是通过指标来衡量,例如DevOps研究和评估(DORA)协会提供的指标,组织可以也应该使用其他指标。正如卡内基梅隆大学软件工程学院(SEI)的Bill Nichols所说,“其指标必须是可访问的、可用的,并且与业务目标相关。”
而交流DevSecOps的业务价值并使用指标衡量,可以确保获得组织的关键利益相关者和高层管理人员的支持。
4. 由于担心失败而过度规避风险
同样,成功采用DevSecOps的高绩效组织和团队拥有学习文化。与之相反的是,一些组织由于担心失败而过度规避风险。其实失败是学习过程中的一种自然的副产品。
如果组织的团队和员工没有处在犯错然后吸取教训并反复纠正失败的宽松环境中,那么成功采用DevSecOps的机会就很小。组织必须授权团队成员不断学习,识别缺陷,提高能力。这只发生在基于透明性、安全性、信任的环境中。
过度避免风险的另一种方法是使安全性成为实现DevSecOps的主要障碍。在实施DevSecOps的环境中,开发人员对于安全性的一个普遍抱怨是,“它太麻烦了,并且会拖慢创新和交付速度。”这种抱怨并非没有道理。组织必须找到有效方法以尽可能少的障碍来实施安全性。这可以通过与开发人员工作流程集成、将安全专家嵌入开发团队、在开发人员中建立安全支持者的方式来完成。
5.工具的扩展和碎片化
如今,数字化转型和技术创新的步伐日益加快,推动了云原生领域的快速增长。这种增长提供了广泛而丰富的工具和应用程序选择,以帮助实现组织的DevSecOps目标。但是,工具数量的扩展也为许多组织创造了更加复杂和脱节的环境。如果查看一下云原生计算基金会(CNCF)面临的环境,就可以了解这种环境的多样性。
由于工具链的扩展,组织在可见性和生产力方面面临挑战。组织为此寻求采用工具链管理选项,以解决其工具扩展及其带来的低效率问题。
云原生计算基金会的2021云原生互动景观
这些问题并不是DevOps所独有的。其安全性也面临着与工具扩展相关的挑战。云计算安全联盟(CSA)在2020年进行的“基于云计算的智能生态系统”的调查结果表明,大多数组织都在努力确定他们的安全工具是否能够正常工作,以及是否能够产生投资回报率(ROI)价值,他们的团队甚至正在努力跟上运营环境中的工具发展步伐。
在人们所处的快速动态和不断发展的IT生态系统中,工具扩展和碎片化是真正的威胁。它们会影响可见性、生产力,最重要的是会影响安全性。其威胁将继续扩散,如果组织缺乏真正的可见性和控制力,那么将会处于危险之中,甚至根本不知道面临危险。
6.安全文化薄弱
很多行业组织根本没有足够的安全专业人员。根据ISC2 2020网络安全工作人员的研究,全球目前短缺312万名网络安全专业人员。
在很多组织中,安全专业人员的数量远远超过其开发人员和运营人员。而开发人员在软件开发生命周期(SDLC)的早期阶段处于缓解安全问题的关键位置,运营团队已经识别运营异常并做好准备,实现安全必须由团队成员共同努力。
建立安全文化,首先要认识到安全是组织所有相关人员的责任。当然,对于安全问题和原则的沟通和认识还有很长的路要长。安全团队和工作人员必须转变为可以帮助实现共享结果的合作伙伴,同时在这些工作中整合关键的安全要求。
7.认为可以“购买” DevSecOps
许多组织急于实施DevSecOps,因为他们认为可以简单地“购买”DevSecOps。而“如果实现持续集成(CI)/持续交付(CD)管道,那么我们正在执行DevSecOps”这种想法是不正确的。
DevSecOps是一种方法,可以通过人员、流程和技术来促进,但人员和流程这两种方法可能比技术更为重要。如果不努力实现与敏捷性和DevSecOps原则相一致的文化,那么组织实施DevSecOps就不太可能获得成功。
对于没有根据上述原则和实践更新和实施新流程的组织来说,也会面临这种情况。将原有的运营模式强加于现代技术和实践中只会导致组织工作的混乱、效率低下以及人员沮丧。这种情况将出现在努力促进DevSecOps的团队和预期DevSecOps实现相关关键业务成果的领导层中。
实施DevSecOps并非易事。但如果正确地、耐心地专注于关键能力,则可以为组织带来巨大的好处。与传统方法相比,DevSecOps不仅可以提高交付率、响应用户和市场需求,以及获得竞争优势,而且可以更快、更便宜、更有效地缓解和应对漏洞。
原文标题:7 most common ways to fail at DevSecOps,作者:Chris Hughes