过去几年,网络和应用访问的主要主题之一是“零信任”的概念。 在本文中,我们展示了零信任的核心是如何通过一小组简单的信念来表征的,这些信念不仅可以应用于访问,而且可以更广泛地应用于整个网络安全领域。
本文提出了一个框架来涵盖零信任的广泛概念,并将其与激励当今应用安全业务领导者的现有业务背景联系起来。 最后,本文对零信任信念体系进行了描述——这是解决当前和新出现的威胁的工具和安全实施的驱动力,这将是后续论文的重点。
本文的目标有两个:首先,传达应用业务领导者应秉持的安全思维;其次,为安全从业人员介绍一个框架,我们将在未来的白皮书中对此进行扩展。
“零信任”一词与不同抽象层次的许多不同概念相关:有时作为特定的解决方案架构,有时作为应用特定技术的规定,有时可能指产品的属性。 我们认为,零信任安全本质上是一种思维方式——一种信仰体系,技术和策略由此产生并利用特定技术,然后可应用于应对广泛的安全威胁。
零信任安全(ZTS)背后的信念体系可以看作是多年前从“纵深防御”开始的安全思维演变的下一步。 纵深防御基于这样的信念:尽管任何单一的防御屏障都有可能被突破,但这种可能性虽然不大,但却是真实存在的,而增加对关键资产的保护层可以降低这种可能性,减缓攻击者的速度,同时迫使他们使用更多的资源来成功发动攻击。
零信任是这种思维方式在三个维度上的成熟:
这种演变在一定程度上是时间和经验的结果,但越来越多地受到其他两种应用安全趋势融合的推动。 具体而言,当今的应用架构开辟了更大的潜在应用漏洞空间 - 特别是来自应用基础设施“内部”的威胁 - 这些威胁很容易被当今日益复杂的对手所利用。 幸运的是,安全工具的不断进步,特别是与现代数据收集和分析能力结合使用时,使得防御策略的关键组成部分能够得到实际实施。
本介绍的其余部分概述了我们实现零信任安全的方法的框架及其范围。 从此开始,以下章节扩展了问题陈述及其与其他当代零信任方法的关系,从而讨论了应该指导解决方案技术的选择及其应用的核心信念——“为什么”。 未来的论文将深入探讨“如何”——与零信任成熟度模型相关的特定技术(例如身份验证、访问控制和人工智能辅助分析)的要求。
Simon Sinek 的“从为什么开始”方法是传达 ZTS 框架的有效工具,如下图 1 所示。 您可以从外到内查看此图,从 ZTS 解决的威胁类别开始,然后深入研究所使用的安全方法,最后将其提炼为通用原则。 或者,你可以从内而外的角度来看待它,从核心信念开始作为北极星,从中出现适当的工具和技术,然后使你能够应对各种威胁。
后面的部分将深入探讨该图的每个同心层,但简而言之:
零信任安全全面扩展到整个应用、基础设施和交付堆栈,并且应该涵盖整个开发流程。 更具体地说,这应包括:
传统上,零信任的重点是应用开发和交付团队,通常被视为 Dev、DevOps、DevSecOps 和 SRE。 我们指出这一点主要是为了关注更大的图景;理想情况下,零信任的综合方法应该包括非传统角色和基础设施以及其他工作流程,例如供应链采购策略。
CIO 和 CISO 的首要任务之一是实现信息技术的现代化,以帮助加速业务发展。 他们还在企业风险管理中发挥着关键作用。 他们的目标是帮助企业通过新的数字体验取悦客户,通过与第三方的数字连接提高运营效率,并让员工在任何地方都能高效工作,同时最大限度地降低业务风险。 这要求 CIO 和 CISO 组织释放其员工,以便他们使用最新的技术、架构和最佳实践来实现灵活性,同时要求这些人员采取适当的安全措施,并对人们的行为、他们访问的信息以及他们使用的技术建立控制,以防止损失暴露。
组织必须了解和控制与市场和宏观经济条件变化、消费者行为、供应链和安全风险相关的风险。 准确评估风险并快速采取缓解措施的能力是企业的竞争优势。 在本文中,我们重点关注安全漏洞的风险,这些风险可能会导致知识产权的损失、业务流程的中断、个人身份信息的丢失以及监管机构的罚款。 可以通过评估所考虑情况的以下方面来计算安全风险:
当前的挑战是近乎实时地计算与每笔交易相关的风险,并采取适当的缓解措施来控制潜在损害的影响。
业务加速需求导致了加剧网络安全风险的新做法。 我们将在下面更详细地讨论这一点。
业务互联互通虽然提高了运营效率,但一个严重的后果是,其中任何一个业务的安全漏洞都会影响所有业务。 攻击者找到最薄弱的环节,然后通过其余环节进行扩散。 SaaS 平台或云基础设施中的安全漏洞或漏洞会成为额外的攻击媒介,而共享责任模型可能会使早期检测和补救变得复杂。
在美国联邦、州和地方各政府机构以及多家美国企业遭受一系列持续网络攻击后,总统乔·拜登于 2021 年 5 月 12 日发布了一项关于改善国家网络安全的行政命令。 该命令的关键要素之一是政府机构使用零信任原则来应对网络攻击。 拜登政府遵循这一命令,于2022年1月26日向行政部门和机构负责人发布了一份来自管理和预算办公室(OMB)的备忘录。 OMB 的这份备忘录“提出了一项联邦零信任架构 (ZTA) 战略,要求各机构在 2024 财政年度结束前达到特定的网络安全标准和目标,以加强政府对日益复杂和持续的威胁活动的防御能力。”1 该行政命令和 OMB 备忘录均提及了美国国家标准与技术研究所 (NIST) 出版物 SP 800-207 (于 2020 年 8 月发布)中描述的零信任架构,并要求政府机构遵守该架构。
政府机构和私营部门的思想领袖发表了一些论文,有助于解释零信任架构并就如何最好地采用它提供建议。 我们在下面总结了这些论文中所包含的思想。 我们注意到,这些论文中所包含的思想和建议的关键本质是检查每笔交易,以评估谁正在对谁采取什么行动,并根据与交易相关的风险计算实时做出允许或禁止交易的决定。
NIST 团队在其论文 NIST SP 800-207 中列举了零信任的原则并定义了抽象零信任架构(ZTA)。2 此外,他们讨论了零信任方法的变化,并描述了部署抽象架构的不同方法。
本文讨论的关键抽象是策略决策点(PDP)和策略执行点(PEP),它们相互配合。 策略决策点由策略引擎(PE)和策略管理员(PA)组成。 策略引擎使用信任算法来决定是否应授予主体对资源的访问权限。 此决定由策略管理员执行,策略管理员与策略执行点进行通信以允许或禁止新会话以及修改或终止现有会话。 此外,本文还讨论了信任算法的变化、零信任环境的网络组件以及各种用例或部署场景。 最后,考虑了攻击者可以阻止零信任架构的方式,以便实施者注意威胁并采取适当措施来保护他们的零信任架构组件。
在发现太阳风攻击之后,美国国家安全局 (NSA) 在其论文“拥抱零信任安全模型”中发布了指导意见,建议网络安全团队采用零信任安全模型。4 国防信息系统局 (DISA) 和国家安全局零信任工程团队的专家撰写了国防部 (DOD) 零信任参考架构。5 作者通过以下声明表达了采用零信任的必要性: “国防部内部和外部数据泄露所暴露的漏洞表明需要一个新的、更强大的网络安全模型,以促进基于风险的明智决策。”6
该参考架构的建议以 NIST SP 800-207 零信任架构文档中定义的抽象为基础。 该文件提出了一个高级操作模型并详细描述了其元素。 它还包括一个高级成熟度模型和将零信任原则应用于各个感兴趣领域的能力映射。 这些文件共同帮助组织评估其当前状态并制定计划。
拥有“假设违规”的态度并遵循零信任原则可以帮助组织进行风险管理和治理实践。 对交易参与者的“持续监控”和“明确验证”零信任原则使组织能够为所有参与者及其活动建立动态风险评分。 这符合 Gartner 的建议,即使用“持续自适应风险和信任评估”(CARTA)方法来增强现有的安全计划。 采用仅允许最小权限访问资源的原则可以降低违规行为发生后造成损失的风险。 持续监控和明确验证产生的信息对于生成合规报告也很有用。
本节旨在关注思维方式——信仰体系、“为什么”——它激发了企业为实现零信任安全而应采用的工具和设计的策略和决策。 事实上,我们可以将当今零信任解决方案所采用的所有方法和组件技术的动力提炼为四个简单的关键原则。 本节首先列举这些原则,然后讨论如何在应用开发生命周期的更广泛背景下应用它们 - 即如何在设计阶段以及在应用的部署/运行时预先考虑这些原则。
如果将零信任解决方案理解为从根本上建立系统交互中的信任——“谁对谁做什么?”——那么建立适合交互的信任级别可以分为四个部分。
顾名思义,零信任思维就是“不要盲目信任,要始终验证”。 因此,系统中的任何参与者(系统交互中的谁和谁)必须能够:
此外,明确验证的原则不仅适用于身份,也适用于行动——交易的内容。 一种常见的用例是将操作表示为 API 调用,例如执行数据库查询的 API。 在这个例子中,显式验证原则不仅可以用来对调用 API 的参与者的身份有信心,还可以用于验证 API 操作使用的正确性,例如验证传递给 API 的参数是否符合适当的约束。
在成熟的零信任思维中,“证明”几乎从来都不是绝对的。 身份凭证可能被盗,设备可能受到损害;API 参数约束通常不完整。 因此,零信任环境中的“信心”一词应更多地解释为表明证明的身份或交易参数合法的可能性。 因此,在决定允许、阻止或进一步检查交易时,“信心”水平应被视为一个关键因素,但不是唯一因素。
一旦在参与交易的参与者中建立了可接受的“信任”水平,零信任方法就要求参与者(通常是请求者,“谁” )仅被授予在该系统中完成其设计任务所需的最低限度的特权。 这一原则体现了所谓的“积极安全模型”——一种默认情况下不允许所有操作,仅根据系统操作的需要授予特定权限的方法。 例如,预订系统可能允许匿名用户浏览航班时刻表,但是根据应用设计要求,匿名用户可能不允许预订航班。
这些特权可能适用于个别演员,也可能适用于某一类演员。 通常,应用消费者要么是人类参与者,要么是人类的代理,并分为几类,例如“匿名用户”、“客户”、“合作伙伴”或“员工”。 信任度较低的参与者通常需要较低的置信度阈值才能通过身份验证,但他们也可以访问更少或不太敏感的 API。 应用或其基础设施内部的参与者(例如应用内的特定服务或容器)通常可能具有更多自定义权限,例如“只有容器<X>和<Y>可以访问数据库,只有<X>可以写入对象存储,但<Y>和<Z>可以从中读取”。
实施最小特权的一个重要考虑是努力以更有针对性的方式、经过深思熟虑地应用它。7 具体来说,成熟的零信任实施不应该对所有参与者或一类参与者应用一组通用的权限,而应该对正在尝试采取的行动有更细致的了解。 例如,在非常粗粒度的情况下,“文件系统访问”可能会被授予特权,但“文件系统读取”是对所需真正特权的更严格规范,从而产生积极安全模型的高质量实现。
最后,最小特权的更复杂的体现可以与“明确验证”的成熟实现一起工作,通过将参与者的授权特权视为不是绝对的,而是基于身份验证提供的信心。 因此,仅当对证明身份( Who )的信心达到最低阈值时,才会授予特权,而该阈值特定于正在尝试的操作。 例如,某些特别有影响力的行动(例如关闭系统)可能需要 90% 或更高的置信度来确认参与者是管理员。 在这个例子中,如果在尝试关闭时系统对身份的信心只有 80%,那么系统将需要额外的验证来提高已证明身份的信心分数,然后才允许执行该操作。
明确验证和最小特权是关键概念;然而,持续评估的原则体现了这样一个事实,即这些原则必须持续评估,即:
最后一条原则是,在健康的偏执背景下,假设对手有高度的积极性。 具体来说,前提是“假设你已经被违反”,其中“违反”的定义是“本应被拒绝(在完全了解和执行的情况下)但却被允许的交易”。 这种逃避的根本原因可能是知识不完善(例如,由于未检测到的欺诈性凭证而导致的身份验证的高置信度分数不正确),或者可能是实施限制(例如,授予的特权没有足够的细粒度特异性,例如具有“开放网络连接”作为特权,但没有根据网络目的地的地理位置进行区分的能力),或者可能是由于零信任实施不完整造成的(例如,没有对内部使用的易受攻击的开源组件应用零信任)。
因此,零信任思维还必须解决如何最好地管理/最小化此类违规行为的影响。
该原则的实施与其他原则相比差异较大,但总体表现为:
如果选择的方法是使用基于策略的调整,则可以利用任何可用的静态策略工具来应用调整。 基于策略的调整的例子包括限制交易粒度的访问控制权限(即不再允许谁对谁做什么),或者对参与者(或一类参与者)采取特定行动应用更严格的“证明标准”(即要求 MFA 或更高的置信度分数)。
如果选择使用额外的“后备”层的方法,则该策略也可以实现为细粒度或粗粒度。 最细粒度的策略是精确地阻止那些超过特定风险回报率的交易,尽管如果实施需要额外的分析,该解决方案也有可能为某些允许的交易增加不可接受的延迟水平。 可以使用更粗粒度的策略,比如将该参与者的未来交易放入沙盒中,甚至完全禁止该参与者进入系统。 在极端情况下,甚至更粗暴的缓解方法(例如关闭文件 I/O)也可能是合适的。
当然,在其他条件相同的情况下,更细粒度的后备缓解通常是更可取的。 然而,通常必须根据可用的解决方案技术的限制做出权衡,粗粒度的后备通常比没有后备更好。 例如,如果防止疑似勒索软件的粗粒度响应是禁用文件 I/O,则该响应的副作用仍然可能比替代方案更可取——允许行为者继续在系统中不受检查地操作——假设不作为的结果将是勒索软件加密的文件系统。
毫无疑问,使用零信任进行安全应用开发的最佳起点是在开始的时候。 实现零信任原则运作的基本原则应融入应用开发流程的设计阶段。 因此,任何关于集成到 CI/CD 管道中的操作零信任解决方案的讨论都必须从理解这些基础元素开始,这些基础元素应该是一流的设计考虑因素。
这些基础元素的核心应该捕捉系统行为交互的期望/预期行为,并结合足够的可见性和控制来检测偏差并采取行动。 预期的交互用于定义每个参与者(谁)针对每个目标(谁)所期望采取的一系列行动(什么)。 也就是说,在某些场景和环境中,预期的交互模式可能是未知的。 在这种情况下,组织可以利用更深的可视性来“发现”一组适当的交互,8然后它可以被编入政策之中。
例如,在当今的 ZTNA 解决方案中,专注于对应用程序外部 API 的身份驱动访问控制,需要对身份验证 API 进行可见性和控制。 或者,在云工作负载保护平台 (CWPP) 环境中,检测受损的容器工作负载需要了解每个容器执行的操作,并且如果需要实时补救,则需要实时了解。
以下是与基础考虑相关的高级“桶”列表,这些桶应该成为设计过程的一部分,并附加了额外的深入分析以提供针对每个关键点需要考虑的具体问题:
明确地提出这些问题将帮助您发现实现零信任的基础中存在哪些差距。 通常,在设计早期只需询问一下,就能以最少的额外设计努力解决差距。 而且,如果差距可能仍然存在,那么简单地意识到差距将有助于引导额外的安全重点或识别脆弱的威胁面。
进行这种前期的安全开发分析是零信任思维的关键部分。 然而,尽管如此,当今零信任的大部分焦点都集中在初始设计之后发生的事情上,大多数企业的重点都集中在零信任的后设计方面。 然而,在设计阶段仔细考虑有效实施零信任的要求,将避免在应用部署后“修补漏洞”所需的更大增量努力。
正如“假设违规”思维前提所体现的那样,安全从业人员必须假设一些有足够动机的对手将设法执行恶意交易——符合政策规则的“谁对谁做了什么”的例子,但在完美的世界中,这不应该被允许。 在这种情况下,重点就转移到拥有一个有效的“后备”机制,该机制可以发现这些情况,通常基于对交易模式和系统副作用的观察,如前面的“假设违规”部分所述。
然而,就像身份概念一样,对于特定交易是否恶意的认知永远不会完美。 因此,与身份一样,理想的零信任解决方案应该报告交易合法性的“信心”分数。 举例来说,如果看到守护进程在 10 秒内以正常文件速率的 10 倍进行读写,则置信度分数(恶意性)可能会为 70%,但如果看到速率增加 100 倍,并持续 1 分钟,则置信度可能会提高到 95%。 在这个例子中,采取抑制未来文件写入的补救措施仍然会有一定的机会(30%或5%的可能性)成为错误的响应 - “假阳性”。 因此,是否采取补救措施的决定必须考虑误报的风险与允许可能的恶意行为的潜在影响。
这个例子的重点是强调,任何采取用户可见的补救措施的决定 实际上是一个商业决策,需要考虑到可疑活动的所有风险、成本和回报。 在交易中引入额外的摩擦会增加无法收到价值的可能性,但不干预/增加摩擦会带来妥协的风险。 因此,在这种情况下是否采取行动的决定取决于三个输入因素:
因此,虽然零信任策略必须接受违规行为会发生的事实,但深思熟虑的方法将采用风险与回报的方法来补救那些被允许但看似可疑的交易。 这种权衡将包含不同应用程序交易的风险级别和应用补救措施的后果,并且仅当风险级别超过预期的业务回报时才应用补救措施。
1 https://www.whitehouse.gov/wp-content/uploads/2022/01/M-22-09.pdf
2 https://csrc.nist.gov/publications/detail/sp/800-207/final
3 https://www.cisa.gov/zero-trust-maturity-model
4 https://media.defense.gov/2021/Feb/25/2002588479/-1/-1/0/CSI_EMBRACING_ZT_SECURITY_MODEL_UOO115131-21.PDF
5 https://dodcio.defense.gov/Portals/0/Documents/Library/(U)ZT_RA_v1.1(U)_Mar21.pdf
6 https://dodcio.defense.gov/Portals/0/Documents/Library/(U)ZT_RA_v1.1(U)_Mar21.pdf
8 或者至少是系统似乎需要的一组“被认为适当的”交互。 从观察中得出的一系列相互作用始终存在不完整或可能存在一些预先存在的风险。 因此,在设计时深思熟虑总是更好的。