前言

我们在2022年写了这篇文章,当时正是零信任热潮的巅峰时期,RSA展厅的摊位、营销资料、分析报告,甚至美国行政部门的报告都在谈论零信任。尽管热潮已经过去,转而成为AI驱动的安全,但零信任似乎并没有真正取得进展。我们是否已经成功地采用了零信任,并将这些原则融入到行业中?还是我们仅仅在问题上加了一些身份感知代理,然后就宣布完成了?

几年过去了,我们仍然难以就零信任到底是什么达成一致,更不用说如何实施它了。如果你正在踏上零信任之旅,过去几年你走了多远?还有多远才到达终点?

什么是零信任架构?

零信任架构是一种安全模型,要求每个用户和设备在每次访问时都必须证明其可信性,本质上,将每次访问视为潜在不可信,直到证明其可信。

传统的网络架构依赖于网络边界来区分信任与不信任的用户:信任的员工在防火墙内,信任之外的其他方在防火墙外。通过转向零信任架构,个人的位置,特别是他们所在的网络,已不再是决定是否信任该个人的标准,而是使用其他上下文来决定他们是否可以访问特定的应用程序。公司网络不再有特权,物理网络也不再具有特殊地位。

BeyondCorp,最初在2014年的论文中提出,是Google的零信任架构的具体实现,后来从中发展出了更广泛的零信任架构原则。

零信任架构由用户、设备和访问组成

零信任架构关注的是用户如何访问企业资源,例如,一位新的销售经理如何使用他们的Macbook访问内部Wiki。授权时需要考虑用户他们所使用的设备,以此来判断是否可以访问

  • 用户:谁在连接你的资源? 你的用户是需要访问公司服务的员工。你需要弄清楚他们如何进行身份验证,他们可以使用哪些凭证,以及如何管理用户组。

  • 设备:他们从哪里连接? 你需要决定哪些设备可以访问你的资源(公司发放的笔记本电脑、个人手机等),并确定设备的最低安全要求(设备管理、补丁级别等)。用户凭证的安全性取决于存储该凭证的设备的安全性。

  • 访问:该用户和设备组合是否应该有访问权限? 这是最难的部分。像访问内部网站这样的简单情况可能只需要一个SSO代理,并允许特定的用户,而SSH访问生产环境则会涉及更多内容。

请注意,我们故意省略了网络部分,它不是零信任架构的关键组成部分,也不是访问决策的一部分。你所在的网络(包括是否连接到公司VPN)不会影响决策,决策完全基于用户和设备。

通向零信任的道路

为了了解你在实现零信任架构方面的进展,我们提出了一个成熟度模型。这不是关于应该在什么时候做什么的规定性指导,而是一个实现方式,帮助你评估当前的状态,并明确剩下的工作。

随着采用量的提升,从左到右,你的组织在如何保护用户、设备以及对应用程序的访问方面的能力不断增加:

  • 级别1:清单。你将VPN作为应用程序的访问控制点。你可以列出用户和设备,你使用SSO来列出用户,并通过手动方式列出设备。这些是基础的IT和安全能力。

  • 级别2:管理。你有每个服务的授权,允许你对特定应用程序进行访问分段,例如通过使用代理。你可以衡量大多数并执行一些安全控制。你使用VPN来管理你的网络,使用MDM来追踪和测量设备,用户使用SSO和MFA,理想情况下使用安全密钥。这是目前大多数重视安全的企业所处的阶段。

  • 级别3:零信任。你完全支持并与市场所定义的零信任架构保持一致,甚至可能购买了自称为零信任的解决方案!你可以根据度量对用户和设备进行分层,并基于这些特征强制执行对应用程序的分层访问。这就是目前市场上通常所说的零信任。

  • 级别4:长期发展。这是许多公司所追求的目标,尽管没有公司能完全实现。你希望能够根据风险动态执行对应用程序的访问控制。这涉及到一系列的用户、设备或访问问题,例如SaaS应用程序,使得这一目标变得非常困难。

接下来,让我们深入探讨每个级别时你组织的控制措施会是什么样的。

级别1:清单

在这个级别,你有一个用户和设备的清单。

你有一个方法列出用户,最可能通过集中式身份提供者和SSO。通常,这与人力资源信息系统挂钩,以便当新员工加入、团队变动或员工离职时,可以轻松更新其身份。不幸的是,许多SaaS工具对使用SSO进行应用授权会收取额外费用;有时甚至对于强制执行SSO的能力也会收费更多。

你有一个设备清单(可能是IT维护的电子表格),并进行一些最基本的设备管理,比如网络凭证。如果你允许员工在个人设备上访问资源,或者有多种操作系统,或需要支持移动设备,这就变得复杂了。

你使用的是传统的平面网络,如果你连接到该网络,就被认为是受信任的,就像传统的VPN一样。你知道并且理想情况下能够控制哪些用户和设备可以访问网络,即使设备的配置是手动的。但你并没有在网络中对用户和设备进行分段。

如果你只处理公司设备,并且只使用自托管的应用程序,VPN加SSO是限制访问你内部应用程序的良好初步工具。

级别2:管理

在这个级别,你可以衡量大多数并执行一些安全控制。你已经超越了仅仅列出用户和设备,进入了加强安全的阶段。

你的用户有更安全的身份验证方法,尤其是硬件安全令牌和WebAuthn。(请一定使用安全密钥)。你通过基于属性(通常是用户组)对用户进行区分,从而允许有效的基于角色的访问控制。这与HR系统关联,获取用户角色的最新信息。你还能够根据组织层次创建用户组(例如,所有销售人员)。

你的设备运行MDM解决方案或类似功能,你可以强制执行一些基本操作,如远程清除。你还能够衡量操作系统补丁级别等属性。像osquery这样的开源工具使得这变得更加简单。设备通过每个设备的凭证与清单进行绑定,以便在访问决策时进行验证。

你已经从基于是否在组织内的二元访问决策,转向了基于每个应用程序的授权和基于角色的控制。如果这些控制是集中管理的,而不是在每个内部应用程序中单独构建的,维护起来会更容易,这通常意味着针对基于浏览器的流量使用L7代理,而对于开发人员流量,像跳板机这样的不同策略。

级别3:零信任

在这个级别,你可以根据设备特征来强制执行访问。

除了仅仅保护用户登录外,你还会考虑派生的凭证,如SSH密钥、浏览器cookies和访问令牌,它们通常不如用户登录那样受到良好的保护。如果用户生成了一个强大的、永不过期的API令牌,并将其放入git库,那么强制执行SSO和安全密钥的强登录就变得没那么有用了。你通过短期会话策略来限制潜在的未授权访问,针对公司服务对OAuth应用程序进行限制。

除了衡量设备是否符合策略外,你还会根据这些特征强制执行访问。因此,你要求设备在访问资源之前进行补丁更新,或者强制定期重新启动设备。设备凭证的发放使用基于硬件的身份认证:例如TPM或平台特定的实现,如Android的Strongbox,或者像Apple的管理设备证明等平台API。

最后,你从仅基于用户的访问,转向了分层或差异化的访问。分层访问是基于设备状态:个人设备与公司设备、补丁级别以及与安全配置要求的符合性。个别设备可以根据清单属性“失去信任”,并失去访问权限,例如未及时应用更新。

现在你真正做到了零信任。

级别4:长期发展

在这个级别,你可以根据风险动态地执行对所有应用程序的访问控制,适用于所有用户和设备。例如,你可以根据风险随时更改访问要求,要求用户重新进行身份验证。

这里出现了很多问题,尤其是很难做到完全的零信任架构。SaaS应用程序、真正基于风险的访问、设备状态以及你网络上的各种设备,使得完全实现零信任架构变得几乎不可能。总会有一些例外存在,问题就变成了,如何处理这些例外?

SaaS应用程序

无法通过代理保护的应用程序很难控制访问权限。你如何将Salesforce放在代理后面?SaaS应用程序通常只提供SSO作为授权手段。如果幸运的话,可能会有API可以同步组进行基于角色的授权。第三方设备认证在行业中几乎不受支持。

一种处理SaaS应用程序的方法是将它们与您的网络对接,这样到应用程序的流量只会通过你的企业网络的IP范围进行白名单验证。这样,员工访问Workday等应用程序时,需要通过公司网络,将流量传递到应用程序。

除了速度慢,这种解决方案还回到了零信任架构的倒退,它假设你的网络是扁平的,如果某人能够连接到你的网络,他们就能访问这些应用程序。

基于风险的访问

理想情况是根据风险做出细化的授权决策。失败的方式是过度拟合模型,并陷入过多层次的诱惑。如果你环境中的每个应用程序都有自己的要求集,那么标准化将变得非常困难,甚至更难调试为什么某人有或没有访问某个应用程序的权限。

越来越细粒度的要求将要求更多的访问基础设施。一个错误跟踪器将需要每个错误的权限。一个管理面板可能需要即时授权,允许支持人员调试他们被分配的特定帐户。

并且,随着你越来越依赖具体的度量标准,正式化API的缺失问题变得愈加明显,你是因为所有员工没有及时应用补丁,还是macOS再次调整了命名规则?

设备状态

设备状态对于做出访问决策很有帮助,但是,它是由设备自报的。当你的设备被攻击时,它开始撒谎。受信启动和设备状态证明旨在帮助你检测这种情况,它们在封闭生态系统(如macOS)中工作得更好,对于多厂商的开放生态系统(如Windows)来说,复杂性更大。

当你必须为另一家公司管理的设备提供访问权限时,设备状态完全没有用了。如果你足够大,你可能可以要求供应商使用受管理设备。

网络设备

你的公司网络中有很多遗留设备无法满足级别3的安全控制,如打印机。打印机没有安全启动。你的MDM可能无法管理打印机。设置打印机的最简单方法是使用固定的IP地址。它仍然是网络中的一个设备,你希望能够像其他网络设备一样管理对它的访问,但你做不到。现有的网络中有遗留设备的公司会遇到更大的挑战,如果你在创业公司,试图采用零信任架构,你可以直接不使用打印机。

所以,忽略这些复杂的长期问题,最终实现零信任的最终目标会是什么样子?

你有一种良好的方法来管理用户和他们对SaaS应用程序的访问,并能够关联日志,查看用户访问这些应用程序的情况。今天只有两种部分解决方案:要么自己托管一切,这在大型基础设施工具和本地解决方案中越来越常见;要么就像Google或Microsoft那样,使用单点登录访问一切。

在遗留设备方面,你的零信任架构包括了公司网络中的所有设备,因为它们都是进入网络的入口。通常,解决这些遗留设备的长期问题的最简单方法是将它们从公司网络中移除,而不是确保它们满足留在网络中的所有要求。

最后,凭借所有关于用户和设备的信息,你可以做出实时的访问决策,这些决策不仅仅是基于规则的,而是根据你所知道的情况迅速变化,用户不会注意到或感到沮丧。这并不容易。

零信任是一个持续的过程

这篇文章的错误理解是将各个级别当作清单来处理,但如果你正在寻找这样的指导,并且你正处于零信任旅程的起点,应该把它当作方向性的指导,了解你要走的路。

现实情况是,零信任永远不会“完成”,它是一个持续的过程)。你应该根据你的组织所面临的风险,考虑什么是合适的,对你来说,达到最高级别可能不值得。专注于零信任架构的核心组件,用户、设备和访问,并改进每个领域,无论你处于哪个起点。

以上内容编译自 Maya Kaczorowski

声明:本文来自RedTeam,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。