Gartner发布在中国成功实施DevSecOps指南

在数字时代,安全对于软件生命周期管理至关重要。中国的安全和风险管理领导者必须积极推动文化变革,开展安全培训项目,确立共同目标,为安全与DevOps的持续整合奠定基础。

主要发现

  • 开发、安全和运维各个团队的目标和优先任务往往并不一致,因此会出现摩擦、缺乏协作。

  • 在中国,找到熟练的DevSecOps专业人员并不容易。因此,安全团队经常会遇到资源缺口,难以使安全专业人员参与到正在进行的软件开发项目中。

  • 协作文化和责任共担的思维模式是数字化转型取得成功的先决条件,但许多DevOps工程师仍然认为安全只是少数安全专家的责任。

建议

  • 在首席信息官(CIO)和业务领导者的参与下制定安全目标,确保IT产品/项目交付中的安全措施与业务优先事项保持一致。

  • 通过安全教练体系,加强安全、应用开发和运维团队之间的关系,以在IT产品/项目的整个生命周期中保障DevOps活动的安全性。

  • 与DevOps负责人合作,明确职责并定期沟通,使安全成为DevOps的自然组成部分,完成从DevOps向DevSecOps的转变。

战略规划假设

到2027年,70%的中国大型企业将开展DevSecOps实践,而2022年这一比例不到20%。

概述

DevSecOps以尽可能无缝、透明的方式,实现安全和合规测试的自动化,及其与敏捷IT和DevOps开发管道的集成;同时不会降低开发人员的敏捷性或速度,也不会要求开发人员脱离开发工具链。理想情况下,相关产品可在运行时提供安全可见性和保护。

开发、安全和运维团队之间的目标错位和工作摩擦并不少见。开发人员往往认为安全团队会阻碍他们完成工作;而运维团队仅在工作涉及稳定性或可用性的时候,才会优先考虑安全问题。另一方面,安全团队有时会坚持采取全面的安全措施,但这往往会拖慢开发和部署进程。

中国企业机构通常具有独特的文化和组织特征,包括更严格的层级组织结构、高度集中化的决策流程和委婉的沟通风格,这些会影响DevSecOps的采用。安全和风险管理(SRM)领导者须了解并探索这些文化因素,以便有效地引入DevSecOps实践、促进不同团队之间的协作。

由于缺乏熟练的DevSecOps专业人员,安全专业人员在DevOps团队中的参与程度不高,安全团队也并未充分参与整个流程。DevOps团队发现,通用的安全培训与遇到的实际问题相去甚远。SRM领导者应识别对安全领域感兴趣的DevOps团队成员,并鼓励他们成为安全教练。通过额外的培训、职责和福利,安全教练可以在DevOps团队的应用架构设计和代码编写中提供真实案例,并专注于即时修复,而不是只讨论更抽象的、相关度不高的问题。

SRM领导者应与高层领导者协作,协调开发、安全和运维团队的目标和优先任务,建立明确的问责制,并在整个企业中推广安全文化。这将最终形成更有效、更可持续的DevSecOps流程,对于确保软件系统的安全和稳定性至关重要。

分析

在CIO和业务领导者的参与下,制定以风险为导向的共同目标

2022年Gartner全球企业机构安全行为驱动因素调研显示,64%的受访者会绕过安全控制,而不是提交正式的例外请求,尽管95%的受访者认为这会(至少轻微地)增加企业机构的网络安全风险。大多数受访者认为这样做能够提高速度/便利性(28%),以及认为该行为不会产生不良后果(22%)。

在Gartner与中国企业机构的问询中,开发人员认为安全流程虽然很重要,但有时会阻碍其按时交付工作成果。另一方面,安全专业人员认为开发人员并未将安全列为优先任务,而是急于部署代码,因此绕过了为确保完全遵守企业治理、安全和监管控制而设置的必要步骤,即便其代码会带来风险。

IT运维团队始终将系统稳定性和系统性能(如可用性)视为首要任务(参见图1)。当在生产环境中发现重大安全风险时,安全团队可能会建议立即关闭系统以部署修复补丁。但是,运维团队可能更愿意等到下一个计划性维护窗口(在有些企业机构中,这可能需要几周时间),以确保系统的连续可用。

图1:不同团队的不同目标

在制定DevSecOps共同愿景时,强烈建议与CIO和业务领导者等高层进行沟通。CIO和业务领导者对企业机构的战略目标、市场动态和客户需求有着深入的了解。SRM领导者应花时间理解高级管理层的关键考量、目标和挑战,根据CIO和业务领导者的意见来定义平衡各方的、符合业务战略的目标,并使用业务语言(而非技术术语)与他们沟通。高级管理层参与制定DevSecOps的愿景,是向企业机构其他部门发出的明确信号,即安全是重中之重。

为了达成平衡,SRM领导者在设定目标时,应将安全放在优先位置,同时又不对开发或运维造成过多阻碍。例如,这个目标可能是要减少软件产品中关键或高等级安全漏洞的数量,但同时仍要满足项目时间表并保持系统的正常运行时间。这就要求开发团队采用安全的编码实践,并定期进行代码审查。安全团队需要专注于漏洞扫描和渗透测试。同时,运维团队必须确保安全的系统配置,并及时应用安全补丁,同时最大程度地减少维护期间的系统停机时间。

DevSecOps目标应始终用以风险导向的方法来确定业务需求的优先级。例如,企业机构如果面临高度安全威胁或属于高度监管行业,那么安全应成为DevSecOps流程的关键组成部分。安全应被纳入整个开发和运营工作中;定期安全测试和控制也应纳入DevSecOps管道。不过,我们也看到部分企业机构的主要关注点是快速交付项目。此类企业机构可能会决定先暂时接受某些未修复的安全问题,留到上线后再逐步解决,即使这会带来巨大的安全风险。这些决策通常会伴随着产品延迟交付所带来的更高的成本,以及通过运行时安全控制(如威胁检测和响应工具、Web应用防火墙、运行时应用自我保护等)降低风险的修复方案。

2022年Gartner安全行为驱动因素调研显示,71%的全球受访者表示,他们的网络安全职能部门有权在某个版本发布前批准或阻止该发布。1但是这种情况这在中国并不常见,因为许多企业机构都强调上市的速度和敏捷性,因此更倾向于优先考虑业务目标,而非安全问题。中国的SRM领导者须与高层领导者密切沟通,以更广泛的视角了解企业机构的业务重点和风险偏好,并明确定义统一的风险管理标准,用于系统发布前后的安全风险管理。

通过安全教练项目,强化安全和DevOps团队之间的关系

多数中国企业机构缺乏足够的安全资源或人才,难以为IT产品/项目团队中配备安全人员。作为替代方案,可以对DevOps团队进行安全培训,但他们往往认为培训内容过于宽泛,与他们的实际问题脱节。SRM领导者不能也不应该试图让所有DevOps工程师转变为安全专家。DevOps工程师的培训内容应该包括也仅需要是安全编码基础知识以及应用面临的攻击类型。SRM领导者会发现,开展安全教练项目是更为有效的办法,可以充分利用企业机构有限的安全资源。

安全教练可以是来自DevOps团队的志愿者。他们应对安全领域有浓厚的兴趣,并对企业机构的开发流程有着深入的了解。作为现场顾问和专家,他们可以在开发过程的早期预测潜在的设计或实施问题。

开展安全教练项目需要以下步骤:

  • 招募志愿者。SRM领导者可以鼓励有兴趣的员工参与其中,让有潜力的安全培训师自行报名。

  • 设定安全教练的基准。除了技术知识,最佳候选人还应具备良好的沟通和领导技能,以确保他们能够有效地阐述复杂的安全概念,与不同的团队协作并影响行为变革。

  • 提供培训,确保人员的技能水平相当,并保证一致性。

  • 设定预期的时间投入。安全教练是兼职的本地顾问,并应基于此进行管理。花费在安全活动或培训上的时间应有所限制,以便时间投入始终可控,并且不影响正常的岗位职责。

  • 尽可能对IT产品/项目团队负责人进行培训。即使团队领导不能履行安全教练的职责,也应该参与安全教练的培训。

安全教练应是长期举措。SRM领导者应确保安全教练有机会获得持续的职业发展,鼓励他们参加安全会议和相关培训计划,并及时了解最新的安全趋势和实践。培训结束后,安全教练会返回各自团队(见图2)。每个项目或产品团队(无论敏捷与否)都应至少配备一名能够担任安全教练的人员。

图2:IT产品/项目团队的安全教练

SRM领导者应促进安全教练与现有安全部门里的安全顾问建立联系。安全顾问应作为后备支持和咨询专家,避免安全教练成为一项全职工作。

同时,安全教练应被授权以影响和指导DevOps团队的安全实践。SRM领导者应与DevOps团队领导者合作,为安全教练提供必要的决策权和影响力,以推动变革、提升安全。例如,针对具有中低业务风险的新应用,安全教练可以作为第一联系人,对安全需求收集和威胁建模问题作出回答。

我们建议使用一个简单的安全需求收集和威胁建模工具,以尽可能简化DevOps工程师的工作,最大限度地实现自助服务目标。对于高风险的应用,Gartner建议直接与安全团队沟通,以实现全面威胁建模和安全需求收集。

同时,SRM领导者不能忽视DevSecOps工具的易用性所带来的好处,应利用自动化和以人为本的技术,简化安全任务,为安全培训师提供帮助。

与DevOps领导者合作,明确职责和沟通渠道

SRM领导者必须在整个企业机构内建立对安全的共同责任。在2021年Gartner员工用户体验调研(见图3)中,受访者被问及他们是否倾向于绕过安全措施来实现绩效目标。而调研结果显示,当个人将安全视为己任时,绕过安全流程的可能性减少了三分之二以上,从49%降至16%。因此,分配并明确非安全团队的安全职责可以最大限度地减少工作量,提高效率。

图3:终端用户为业绩达标而绕过安全团队的可能性

明确的角色和职责可以确保每个团队成员了解其工作对于企业机构整体目标的贡献,从而更有可能认真地对待安全问题。协调每个员工的工作目标,并使其承担共同责任,可以在整个企业机构内建立安全文化。表1展示的是用于DevSecOps的RASCI(负责、审批、支持、咨询和知情)矩阵示例。

Table 1: 表1:DevSecOps中的RASCI矩阵示例

安全相关的工作

业务/产品负责人

开发团队

安全团队

运维团队

业务和隐私影响分析

A和R

S

C

S和I

安全需求识别

S

S

A和R

S

威胁建模

C和I

R

A

C

安全解决方案设计

I

R

A

S

集成开发环境(IDE)中的个人开发人员安全测试

不适用

A和R

C

C

完整系统安全测试

I

R或S

A或R

C

发布前安全问题修复

I

R

A

S

安全风险评估

S

S

A和R

S

持续的系统监控

C

S

S

R

生产环境中的应用安全控制

C

C

A和R

S

明确新的安全需求

S

S

A和R

S

规划下一次冲刺/迭代中新的安全需求

R

S

A

S

部署补丁

I

S

A

R

来源:Gartner

鼓励开发、安全和运维团队之间的协作,对于推广安全文化也很重要。这可以通过举办定期会议、发送简报和开展团队建设活动来实现。通过合作,各团队可以更好地了解彼此的优先任务和目标,并构建可信、透明的文化。定期向所有团队成员(包括高管、各团队负责人、开发人员和运维人员)传达安全的重要性。这对于确保所有人都了解企业机构的安全目标和宗旨至关重要。

实践社区(CoP)是个有效的方法,可以鼓励分享安全最佳实践,并对遵循这些最佳实践的团队成员予以奖励。相较于正式的培训项目,CoP通常能更有效地促进相互学习和知识共享。在培训中,知识通常由专家教给学习者;而CoP使成员能够互相学习、提问,并分享自己的经验和见解。这可以带来更有意义的个性化学习体验,有助于DevOps工程师更深入、更实际地理解安全问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值