从DevOps到DevSecOps
最后更新于
最后更新于
产品安全团队在帮助确保新服务、新产品和新功能的构建和安全交付给客户方面发挥着至关重要的作用。然而,由于安全团队处于产品发布路径中,如果企业努力扩展其安全团队以支持不断增长的产品开发团队,那么他们就会形成瓶颈。在本篇文章中,我们将分享亚马逊网络服务(AWS)如何开发一种机制,通过在安全团队和开发团队之间分配安全所有权来扩展安全流程和专业知识。这种机制在业内有很多名称--安全冠军、安全倡导者等--它通常是左移安全方法的一部分。在 AWS,我们称这种机制为安全守护者。
在许多组织中,安全专业人员比产品开发人员还少。我们的经验是,与其他技术岗位相比,招聘一名安全专业人员需要花费更多的时间,而 (ISC)2 的研究表明,网络安全行业缺少 340 万名员工。当产品开发团队继续以比安全团队更快的速度增长时,安全专业人员与产品开发人员之间的差距也在继续扩大。虽然大多数企业都了解安全的重要性,但当安全成为企业及其服务客户能力的瓶颈时,就会产生挫折感和紧张情绪。
在 AWS,我们要求构建产品的团队在推出产品前接受 AWS 应用程序安全工程师的独立安全审查。这是一种验证新服务、功能、解决方案、供应商应用程序和硬件是否符合我们的高安全标准的机制。这一密集流程影响了产品团队向客户交付产品的速度。如图 1 所示,我们发现随着产品团队规模的扩大,问题也随之而来:正在构建的产品数量超过了安全团队能够审查和批准发布的数量。由于安全审查是必需的,而且没有商量的余地,这可能会导致产品和功能的交付延迟。
由于 AWS 规模庞大,许多客户都希望通过 AWS 来了解我们是如何扩展自己的安全团队的。为了讲述我们的故事并提供见解,让我们来看看 AWS 的安全文化。
在 AWS,安全是业务的重中之重。企业领导者优先考虑构建设计安全的产品和服务,他们认为安全是业务的促进因素,而不是障碍。
领导者还通过鼓励员工识别和上报潜在的安全问题,努力创造一个安全的环境。升级是确保正确的人在正确的时间了解问题的过程。升级包括 "深入挖掘",这是亚马逊的企业价值观之一,因为它要求所有者和领导者深入挖掘问题的细节。如果不了解细节,就无法就发生了什么以及如何有效地运营业务做出正确的决策。
这种文化超越了我们的初衷--它根植于我们的组织结构之中:
CISOs and IT leaders play a key role in demystifying what security and compliance represent for the business. At AWS, we made an intentional choice for the security team to report directly to the CEO. The goal was to build security into the structural fabric of how AWS makes decisions, and every week our security team spends time with AWS leadership to ensure we’re making the right choices on tactical and strategic security issues.
– Stephen Schmidt, Chief Security Officer, Amazon, on Building a Culture of Security
因为我们的领导层支持安全,所以 AWS 内部都知道安全是每个人的工作。安全团队和产品开发团队通力合作,帮助确保以安全的方式构建和交付产品。尽管有这种合作,但产品团队仍拥有其产品的安全性。他们负责确保在产品中内置安全控制,并确保客户的有工具可以让产品更安全。
另一方面,中央安全团队负责帮助开发人员安全构建,并在发布前验证是否满足安全要求。他们提供指导,帮助开发人员了解应构建哪些安全控制;提供工具,简化开发人员实施和测试控制的过程;为威胁建模活动提供支持;使用各种机制,帮助确保在发布前满足客户的安全预期,等等。
这种责任模式强调了安全所有权是如何在安全团队和产品开发团队之间分配的。在 AWS,我们了解到,如果没有这种分配,安全就无法扩展。无论我们雇佣了多少安全专家,产品团队的增长速度总是更快。尽管围绕安全的文化和分配所有权的必要性现在已得到了很好的理解,但如果没有正确的机制,这种模式就会崩溃。
机制是 AWS 文化的最后一个支柱,它使我们能够成功地在整个组织内分配安全。机制是一个完整的流程或良性循环,在运行过程中不断强化和完善自身。如图 2 所示,机制采用可控输入,并将其转化为持续输出,以应对反复出现的业务挑战。在 AWS,我们面临的业务挑战是安全团队给业务带来瓶颈。AWS 的安全文化提供了帮助应对这一挑战的支持,但我们需要一种机制来真正做到这一点。
“Often, when we find a recurring problem, something that happens over and over again, we pull the team together, ask them to try harder, do better – essentially, we ask for good intentions. This rarely works… When you are asking for good intentions, you are not asking for a change… because people already had good intentions. But if good intentions don’t work, what does? Mechanisms work.
– Jeff Bezos, February 1, 2008 All Hands
在 AWS,我们了解到,我们可以通过我们称之为 "安全守护者计划 "的机制来分配安全所有权,从而帮助解决扩展安全方面的挑战。与其他机制一样,它也有输入和输出,并随着时间的推移而变化。
在 AWS,"安全守护者 "计划培训、培养和授权开发人员成为产品团队中的安全大使或守护者。"守护者 "确保更早、更频繁地考虑产品的安全问题,帮助同事更快地构建和交付产品。他们还与中央安全团队紧密合作,帮助确保 AWS 的安全标准不断提高,安全守护者计划不断完善。如图 3 所示,在产品团队中嵌入安全专业知识有助于有监护人参与的产品更快地通过安全审查。
守护者是信息灵通、具有安全意识的产品构建者,他们自愿成为其团队中始终如一的安全拥护者,并且非常熟悉安全流程和工具。他们在整个开发生命周期中提供安全指导,是产品安全的利益相关者,帮助其团队做出明智的决策,从而更安全、更准时地推出产品。守护者是产品团队的安全联系人。
在这种分布式安全所有权模式中,产品安全责任由产品开发团队承担。不过,守护者负责对开发团队提交的安全审查报告进行首次评估。他们要确认新服务的资源、设计文档、威胁模型、自动发现和渗透测试准备情况的质量和完整性。开发团队在守护者的支持下,将其安全审查提交给 AWS 应用安全 (AppSec) 工程师进行最终的发布前审查。
在实践中,作为开发过程的一部分,"守护者 "有助于确保在团队评估客户要求和功能或产品设计时尽早考虑到安全问题。这可以通过启动威胁建模流程来实现。接下来,他们要努力确保在威胁建模过程中确定的缓解措施得到开发。守护者还在软件测试中发挥积极作用,包括静态应用安全测试 (SAST) 和动态应用安全测试 (DAST) 等安全扫描。在结束安全审查时,安全工程师会与守护者合作,确保发现的问题得到解决,产品可以交付使用。
守护者毕竟是亚马逊人。因此,守护者体现了一系列亚马逊领导原则,通常具有以下特征:
他们是安全自主权的模范实践者,让团队拥有服务的安全自主权。
他们对安全要求很高,具有很强的安全判断力,不接受快速或简单的答案,并推动持续改进。
他们在与产品团队的内部讨论中倡导安全需求。
他们深思熟虑而又果断,将客户安全作为团队的首要任务。
他们维护并向同行展示自己的安全知识,不断从多个不同来源积累知识,以获得视角并了解不断变化的威胁环境。
他们不怕让中央安全团队独立验证他们的工作。
AWS 从安全守护者计划中获益匪浅。我们在安全审查过程中发现的中度和高度严重性安全问题减少了 22.5%,审查新服务或功能所需的时间减少了约 26.9%。这些数据表明,在 "守护者 "的参与下,我们在流程后期发现的问题减少了,修复工作也减少了,从而更快地为客户提供安全的服务。为了帮助构建者和 "守护者 "不断改进,我们的安全审查工具会收集安全工程师对其输入的反馈。这有助于确保我们的安全所有权机制随着时间的推移得到强化和改进。
AWS 和其他组织已经从这一机制中受益,因为它可以产生专门的安全资源并传播安全知识,而无需雇用额外的员工。
像 AWS 这样的计划可以帮助企业更快地构建和交付产品,同时保持适当的安全标准,并随着时间的推移不断提高。通过培训构建人员成为开发周期中的安全实践者和倡导者,您可以增加更早地识别风险和安全发现的机会。在开发生命周期的早期阶段发现这些问题,可以减少对安全漏洞进行修补的可能性,甚至在产品已经构建完成后重新开始。我们还认为,为产品团队提供一致的安全体验是成功分配安全所有权的一个重要方面。减少混乱和摩擦的体验有助于在产品团队和安全团队之间建立信任。
[Blog] how-to-launch-secure-and-governed-aws-resources-with-aws-cloudformation-and-aws-service-catalog
[Blog] How AWS built the Security Guardians program, a mechanism to distribute security ownership