如何用威胁建模打造DevSecOps安全文化?

自从软件开发诞生以来,对安全性的考虑(或顾虑)就一直存在。然而,当今企业面临着巨大压力,需要以最快的速度将新产品推向市场并频繁迭代,这与传统安全开发细致谨慎的控制方法相冲突。

教育开发人员将安全视作开发流程的一部分向来都是挑战,但是随着用户安全意识的提升以及网络攻击的频率和复杂性不断增加,开发人员不得不想办法提高应用程序的安全性。此外,随着用户网络安全意识的普及和提升,良好的网络安全设计本身,就可能成为产品的一大卖点,被市场部门视为可以提升产品力的营销工具(素材)。

打造DevSecOps文化的关键策略

许多软件开发公司认为实施DevSecOps就是在选项框里多打一个勾,但事实上,DevSecOps不仅仅是将安全性添加到开发清单中那么简单,企业还必须将安全整合到企业文化中。考虑到DevOps已经演变为自成一体的,严格的开发流程,DevSecOps的实施充满挑战,因为将“Sec”添加到业务流程中通常意味着从头设计流程。

一个常见的错误做法是仅仅在开发团队中增加一名安全专家,并期望他将安全控制强加到开发中,作为并行活动。事实上,整个开发团队都需要经过培训才能熟练掌握安全规范和实施,以便每个人都对设计和部署安全的应用程序负有责任。此外,开发工具和流程必须支持安全的无缝集成,而不是将其视为现有实践的附加功能。

从DevOps到DevSecOps的过渡是由培训、工具和流程支持的文化变革。因此,DevSecOps应当被看作是对最终产品质量的投资,而不是开发成本。

需要强调的是,DevSecOps没有唯一正确的解决方案,也没有现成的文化可供采用。以下是DevSecOps路线图的六个关键策略:

01、知识是关键

全面的开发人员培训至关重要,因为可行的文化需要知识和经验;否则,企业将冒着增加集成安全的额外工作负载的风险,但最终仍会得到一个充满弱点和漏洞的不安全产品。此外,开发人员训练得越好,保护就越有效,对项目时间表的影响就越小。

02透明集成

要被业务流程接受,安全性必须是开发流程的一个组成部分,是持续集成和持续开发(CI/CD)管道的组成部分。

辅助开发和部署流程的自动化安全工具非常有价值,从代码分析和依赖测试到安全扫描,自动化工具可以全流程发挥作用。不幸的是,当安全流程被隔离、单独执行并在时间压力下可以绕过时,DevSecOps经常会失败。

03鼓励开放

所有利益相关者都必须接受DevSecOps目标,所有人员都必须在场,支持流程并接受后果。

企业经常受到部门孤立的影响;将开发和运营结合到DevOps方法中是一项挑战。将安全纳入等式需要每个人的合作,通过利益相关者之间的开放和诚实的沟通,以及企业范围的支持来推动。

04综合报告

传统上,安全问题与开发指标是分开报告的。项目管理重点关注里程碑和时间表的进展,安全重点关注问题和事件。开发人员的衡量标准是生产力,即在一段时间内完成的代码行数。安全性是通过报告的事件和已识别的漏洞来衡量的。

DevSecOps文化意味着整个开发团队都需要对安全性负责,管理层需要结合所有这些因素的新指标和报告,以保持代码生产力的同时鼓励良好的安全防护意识和措施。

05小步或大步

文化的改变可能需要时间,主要是因为这种改变面临巨大的阻力。虽然放弃DevOps流程并以宇宙大爆炸的方式从头开始是一种可选方式,但较大的组织更倾向进化而不是革命。遵循规定路线的小而频繁的变化可以较少的摩擦到达成所需的文化。每一个成功的步骤都会将安全性更深入地融入文化中并固化。

06、自动化才是出路

给开发团队增加安全职责是必要的,但这并不复杂。可以使用工具和实践来简化这种变化并防止精神压力过大。编写安全和政策代码,并把它变成一个代码结构,以开发人员能理解的方式简化这一过程。

自动化流程可以将安全性引入CI/CD管道,只需最少的开发工作量,对生产流程影响也小,建议采用。

为何需要威胁建模?

减少漏洞的主要方法是使用威胁建模技术来利用知识、经验和情报来识别潜在风险和漏洞。

威胁建模有助于识别潜在威胁,允许开发人员设计控制流程和对策来缓解这些威胁。目标是消除威胁或至少将风险降低到可接受的低水平。

威胁有两个主要来源。首先是开发过程中的人为错误,这些错误在代码中引入了弱点和漏洞。具有集成安全即代码的自动化CI/CD管道等技术可显着降低这些风险。第二个是外部威胁参与者、黑客及其恶意软件。

威胁建模允许从攻击者的角度评估风险,了解他们的心态以识别风险。这种方法可以减少产品漏洞以及修复和更新部署所需的工作。

威胁建模同时适用于开发环境以及开发的产品。破坏开发系统并将漏洞注入产品代码是攻击者破坏最终客户代码的有效方法。开发者被视为供应链中的切入点,可以用于攻击供应链下游更有利可图的目标。SolarWinds供应链攻击证明了这种策略对于老练的攻击者来说是多么有效。

对于基于云的开发,Kubernetes现在是最常用的容器编排系统之一。它的广泛采用使其成为对攻击者非常有吸引力的目标。需要注意的是,Kubernetes用户面临的主要安全挑战之一是由于其灵活性和适应性而固有的复杂配置问题。

错误配置为攻击者提供了发现和利用弱点的机会。此外,所有应用程序都具有在其生命周期内被识别的固有安全漏洞。Kubernetes也不例外。攻击者会在识别漏洞和安装补丁的窗口期利用漏洞。此外,更有能力的攻击者可能会发现未知漏洞用于零日攻击。

用威胁建模打造DevSecOps安全文化

传统上,安全漏洞被视为运营问题。识别产品的弱点或检测到入侵将触发代码更改并推出更新或安全补丁的操作请求。

打造基于端到端安全意识的DevSecOps文化可降低存在漏洞的可能性,更快也更容易纠正问题和更新部署,因为每个人都能立即了解问题并在解决方案中占有一席之地。此外,在威胁建模过程中让开发和运营的利益相关者参与将提高安全意识和流程支持,加强积极的安全文化和增进对问题的理解。

集成威胁建模

将威胁建模集成到DevSecOps生命周期中很简单。威胁情报推动在规划阶段就定义安全要求。使用安全即代码实施的开发威胁模型能透明地集成到开发过程中。代码分析和依赖性测试可验证威胁是否得到应对,并由应用程序安全扫描提供支持,以验证产品的安全性。对识别已部署产品中漏洞的威胁模型的持续监控可推动产品更新:

图:将威胁建模集成到DevSecOps中 

结论

将安全集成到DevOps理念中会给企业带来显著的长期收益。安全不能只是马后炮,在开发系统中实施安全控制的成本明显高于将其控制纳入开发过程的成本。通常,与作为开发过程的一部分实施的控制相比,安全作为附加控制的效率更低,更容易出现漏洞。

有效的DevSecOps文化在开发、安全和运营方面能带来显著的好处。积极有效的的安全文化能够消除孤岛心态,鼓励跨领域协作并增强团队合作。

DevSecOps最大的优点是能及早识别和消除潜在的漏洞,从而提高产品质量并减少维护工作。此外,那些逃避检测的问题往往不那么复杂,解决起来也更快。总体而言,客户将拥有更可靠和稳定的产品。

前一篇欧盟为LibreOffice等五大开源项目提供漏洞赏金计划
后一篇2021密码应用技术白皮书