北京老李:首批CSA CCSK、CCPTP、DevSecOps、 CBP、ACSE讲师、首批CDSP讲师、EXIN DevOps Master(大师级)讲师(首批全国十名)、国内首批EXIN Product Owner讲师(首批全国十名)、EXIN授权EXIN Agile Scrum Master讲师、首批ITIL Expert讲师、PMI-ACP讲师中国“黄埔一期”TTT、Lean IT 认证讲师、PMP、Prince2专家级、EXIN云安全管理、EXIN 云服务管理、国内首批APMG 信息安全官(CISO)TTT、ISO27001 LA、ISO20000 LA等多项认证。先后在北京、上海、广州等地主导软件开发、系统集成、咨询服务等工作,主要研究方向云安全管理、敏捷与DevSecOps落地实施.
上期讲到DevSecOps的发展史、黄金流水线及实施关键角色,点击图片跳转上期介绍。本期将介绍·DevSecOps成功的关键、DevSecOps与DevOps对比、实现DevSecOps五大安全实践等内容。
云安全联盟大中华区发布DevSecOps的六大支柱:务实的实现(以下简称“报告”)该报告中的 DevSecOps 实施指南被组织成一系列实际职责和活动,旨在帮助数字安全领导者在开始进行DevSecOps时做出务实决策。
文末附报告获取方式
01 DevSecOps成功的关键·
2016年9月,Gartner发布报告《DevSecOps: How to Seamlessly Integrate Security into DevOps》是对该模型及配套解决方案进行详细分析,核心理念为:“安全是整个IT团队(包括开发、测试、运维及安全团队)所有成员的责任,需要贯穿整个业务生命周期的每一个环节。不同企业针对DevSecOps有不同的定义,具体见《DevSecOps定义编年史:通过DevSecOps定义看DevSecOps发展》【1】
DevSecOps不仅仅是一系列技术和工具的集成,更是一种文化和协作方式的转变。成功的DevSecOps实施需要打破传统角色之间的壁垒,促进开发、运维和安全团队之间的紧密合作。团队成员需要共同理解并接受DevSecOps的理念,积极参与到整个过程中,共同为软件的安全性和质量负责。
传统的安全方法涉及一种反应性方法。新型DevSecOps是一种反射式安全模式【2】。因为传统的安全方法的安全性通常是事后才想到的,只有在软件开发完成之后才进行测试和打补丁。这种方法可能导致漏洞和安全漏洞,这可能会对组织造成代价高昂和损害。DevSecOps的不同之处在于它将安全性集成到软件的每个阶段在发展进程中,强调安全是共同责任,与参与发展进程的各方积极加强安全措施。通过将安全性集成到开发过程中,组织可以在安全性问题成为重大问题之前识别并处理它们。
成功的DevSecOps实践强调将安全考虑前置到软件开发流程的早期阶段,甚至在需求分析和设计阶段就开始考虑安全问题。此外,通过持续集成安全测试、漏洞扫描等安全活动,确保在代码提交、构建和部署的每个阶段都能及时发现和修复安全问题。这种持续的安全保障能够减少安全风险,提高软件的整体质量。
从安全的角度看,寻求安全改进的组织倾向稳健的安全计划,且这些计划赖于将安全最佳实践有效集成到组织的软件开发范件中。这通常由文化和流程、安全基础设施和技术的运营以及员工意识所主导。每个软件生命周期阶段的安全都需要人员、文化、流程和技术(CPPT)的某种组合,具体见下表所示:
编号
核心组件
简述
1
文化与环境(Culture & Environment)
组织如何处理和管理工作和风险。文化通常是较软和难以度量的领域,是对软件开发工作和安全的感知,这在性能和成功中起着直接的作用。
2
组织及人(Organization and people)
个人及其在组织中的角色,以及安全和成功的应用程序、平台和基础设施的交付。重点关注领导力、技术利益相关者、实施者和决策者。
3
过程与流程(Process & Flow)
常见的工作流程、手工操作和文档完备的活动。人们在自动化或两者组合的支持下执行流程。
4
技术与工具(Techniques & Tools)
技术侧重于使用工具和自动化安全地创建和操作基础设施和应用程序,以帮助保护资产并检测漏洞、事件和事故。
5
测量与改进(Measure and improve)
DevSecOps实践还包括对开发流程进行度量和持续改进。通过测量上市时间、周期时间等指标,可以了解团队的效率,并隔离出改进的机会。同时,制定常规并有效的流程,定期检查和调整行为,是DevSecOps成功的关键。
这些组合之间将根据组织安全计划的规模和复杂程度而有所不同。小型组织通常主要依赖于担任多个角色的人员并管理应用程序的安全,而大型组织可能会利用技术和自动化。一个组织的文化可能会受到合规要求的影响,这会导致重大的监督和审计,而其他组织则将制衡嵌入到DevOps价值流中。详细内容见CSA《务实的DevSecOps实施》。
02 DevSecOps与DevOps对比·
DevSecOps的定义来源于对传统开发模式中安全介入较晚以及安全部门独立于软件开发、运维部门的认知。DevSecOps的兴起,是对DevOps实践的进一步发展和提升,强调将信息安全的能力整合到DevOps的工作流程中,提升开发和运营的敏捷性,同时保障数据和服务的可用性与安全性。
具体来说,DevSecOps在软件开发生命周期(SDLC)的早期阶段就引入安全性,这意味着安全防护需要贯穿应用开发的整个过程。通过固化流程、加强不同人员之间的协作,以及利用工具和技术手段,将可以自动化、重复性的安全工作融入到研发体系内,让安全属性嵌入到整条流水线。DevOps与DevSecOps到底有哪些不同,基于现有的理论基础对重点区别项进行对比,见下表所示:
编号
对比
开发运维一体化(DevOps )
安全开发运维一体化(DevSecOps)
1
核心目标
《devops Handbook》指出安全性对于DevOps实践合规的重要性,DevOps应实现每天多次部署、达到世界级的稳定性、可靠性、可用性和安全性。
DevSecOps 是指通过与 IT 安全团队、软件开发人员和运营团队合作,在标准 DevOps 周期中建立关键的安全原则。
2
主要团队组成
DevOps1.0(持续交付模式):开发、测试(质量)、运维
DevOps2.0(DevSecOps模式):开发、测试(质量)、安全、运维
DevOps2.0+(凤凰项目模式):业务、财务、ITHR 、开发、测试、安全、运维
DevOps2.0为主(DevSecOps模式):开发、测试(质量)、安全、运维。安全是整个IT团队(包括开发、测试、运维及安全团队)所有成员的责任,需要贯穿整个业务生命周期的每一个环节。
3
运作过程
模式一:持续交付模式【3】
模式二:DevSecOps模式
模式三:凤凰项目模式【4】
DevSecOps强调流水线中通常是CI/CD加上内置的安全相关工作。即也是支持DevSecOps模式实现模式二与模式三
4
相关工具
DevOps元素表,广泛的工具支持,具体见《DevOps元素表》V3【5】
可以接入流水线的相关安全工具
5
特色与发展
站在DevOps角色看DevSecOps是实现DevOps模式中的一种模式,随着DevOps发展,不仅仅注重安全,还关注AI以及业务、财务、人力资源合理分配等多种扩展模式。
DevSecOps核心突出安全性,是基于DevOps的一种扩展,并强调通过安全的能力提升,保证组织与业务的安全性。
03 实现DevSecOps五大安全实践·
要释放 DevSecOps 的潜力,组织必须遵守设定的最佳实践。在这里列出了 DevSecOps 的最佳实践,以确保高水平的安全性、降低风险和提高运营效率。目标应该是确保高标准的安全性。具体安全实践建议如下表所示:
编号
安全实践
简述
1
安全左移
左移不仅仅是代码。它还需要在 SDLC 的规划、分析和设计阶段优先考虑安全性。企业可以及早发现安全问题和错误配置,提高产品质量和安全性,同时减少修复漏洞所需的时间和精力。
2
使用安全编码技术
安全编码技术是 DevSecOps 不可或缺的一部分,以确保软件得到充分保护,免受任何低漏洞级别的威胁。建议在安全编码技术上投入所需的时间和资源,以避免将来出现严重的安全攻击。始终选择有经验的开发人员并遵守正确的编码标准。
3
整合正确的工具
集成正确的工具是有效实施 DevSecOps 的基础之一。大多数公司利用顶级应用安全技术,例如 SAST、DAST、交互式应用程序安全测试 (IAST) 和源组合分析 (SCA) 等,以确保正确使用和优化工具。
DevSecOps 工具中一些常见但备受追捧的功能是图像保证、入侵检测、运行时保护和其他微服务安全功能。随着容器化和微服务成为现代应用程序基础设施的基础,必须将适当的 DevSecOps 工具集成到企业 SOP 中。这就是开发良好且易于使用的 API 发挥作用的地方,因为它们有助于跨不同平台和应用程序领域扩展和集成工具。
4
采用安全即代码
安全即代码是指安全策略的编码、扫描和验证。安全作为代码的主要优点是它确保了适当的安全规则。协议在整个基础设施中统一实施。
安全即代码,提供了加强安全性的好处并有助于改进操作。此外,一旦记录在案,它就简化了敏捷迭代和扩展安全方法。
5
使用自动化
需要在整个 CI/CD 管道中应用和验证严格的安全协议和措施,而自动化是简化整个过程的原因。企业必须尽可能实现自动化通过安全自动化避免错误配置来预防、检测和修复问题。
04 DevSecOps的五大全局安全指标·
DevSecOps 需要将安全控制自然融入开发、交付和运营流程。安全性是工程与合规性的结合。组织应在开发工程师、运营团队和合规团队之间形成联盟,确保组织中的所有人都了解公司的安全状况,且遵循相同的标准。DevSecOps全局安全指标是指一系列用于衡量整个DevSecOps实施过程中安全性的关键绩效指标。这些指标旨在从全局视角评估DevSecOps实践在提升软件安全性方面的效果,确保开发、安全、运维团队能够协同工作,实现安全、高效的软件交付。DevSecOps全局指标包括以下几个方面:
编号
全局指标
简述
1
前置时间(交付时间)
前置时间即交付的周期时间,它度量从代码编写到最终产生商业价值所需的总时间。这包括开发、测试、部署和监控等所有阶段,反映了DevSecOps在优化整个软件开发生命周期方面的效果。
2
部署频率与速度
这一指标衡量团队能够多快速且高频率地发布新版本或更新。它反映了DevSecOps实践下团队的响应速度和交付能力,同时也反映了安全策略对开发流程的影响。
3
平均修复时间
当发现安全漏洞或其他问题时,团队需要迅速响应并修复。平均修复时间衡量了团队从发现问题到修复完成所需的时间,反映了DevSecOps实践在应急响应和问题解决方面的能力。
4
威胁、漏洞和恶意软件的检测率
这一指标衡量DevSecOps实践在预防和检测潜在安全威胁方面的有效性。通过定期扫描和测试,团队能够及时发现并修复潜在的安全问题,确保软件的安全性。
5
回滚恢复的效率
在软件发布或更新过程中,如果出现问题,团队需要能够快速回滚到之前的版本。回滚恢复的效率衡量了团队在应对失败发布或更新时的响应速度和恢复能力,是DevSecOps实践中不可或缺的一部分。
实施DevSecOps没有一成不变的二元蓝图【6】,二元蓝图是指在规划、设计或决策过程中,将复杂的问题或目标分解为两个互补或相关的部分,以便更好地理解和解决问题。这种方法可以帮助我们更好地实现DevSecOps成功落地。
05课程推荐
CSA 数字安全人才体系2.0
DevSecOps专家认证(Certified DevSecOps Professional) 课程的价值主要体现在提升安全性、促进团队协作、加速软件交付、培养全栈人才和提高企业价值等方面。对于希望在软件开发和运维领域获得更多竞争优势的企业和个人来说,是个不错的选择。
06附录
《DevSecOps定义编年史:通过DevSecOps定义看DevSecOps发展》:https://www.douban.com/note/853429102/?_dtcc=1&_i=3562116x9VVG95
反射式安全模式《CSA通过反射式安全进行信息安全管理白皮书》
持续交付模式:Jez Humble / David Farley于2011年编写《持续交付(发布可靠软件的系统方法)》讲述了如何通过DevOps实现更快、更可靠、低成本的自动化软件交付,描述了如何通过增加反馈,并改进开发人员、测试人员、运维人员和项目经理之间的协作来达到这个目标
凤凰项目模式:《凤凰项目》是2015年人民邮电出版社出版的图书,作者是基恩·金,书中讲述了一位IT经理临危受命,在DevOps黄金三步工作法理念的支撑下,最终挽救了一家具有悠久历史的汽车配件制造商的故事。小说揭示了管理现代IT组织与管理传统工厂的共通之处,通过DevOps帮助企业实现了业务目标,并帮助企业实现成功的故事。
《DevOps元素表》https://digital.ai/learn/devops-periodic-table/
二元蓝图: 《CSA 务实地实施DevSecOps白皮书》
致谢
《DevSecOps的六大支柱:务实的实现(The Six Pillars of DevSecOps: Pragmatic Implementation)》由Lead Author编写,并由CSA大中华区专家组织翻译并审校。(以下排名不分先后):
中文翻译组组长:
李岩
中文翻译组组员:
何伊圣、陈宏伟、殷铭、贺志生、吴嘉雯、高亚楠、伏伟任、江澎、江泽鑫、余晓光、谢绍志、屈伟、江楠、王岩、王贵宗、王彪、苏泰泉、欧建军、林艺芳、张坤
(以上排名不分先后)
本文作者:
李岩(北京老李)