系统0信任架构

58 阅读11分钟

一 背景

   为了在后端服务之间实现零信任架构,并自动处理身份验证和授权,则可以引入一些自动化工具和框架,减少人为干预。以下是一些推荐的自动化解决方案:

二 由来

   零信任也可称为 零信任网络零信任模型等,这个概念最早是由 Join Kinddervag 于 2010 年提出的,他当时是 Forrester 的分析师。Join Kinddervag 发现传统的基于边界的网络完全架构存在缺陷,通常被认为 可信 的内部网络充满了威胁,信任 被过度滥用。因此他创造出了零信任的概念,从不信任,始终在校验 便是零信任的核心思想。

三 核心概念

   既然零信任模型认为一切都是不可信的。那么该如何建立信任?因此信任管理就是零信任网络的一个重要功能。从不信任中建立信任,听起来是那么的矛盾。
   在某些情况下,人们甚至可能连自己都无法完全信任,但是至少可以确信所采取的行动的确是自己所为。因此,零信任网络中的信任往往源自于系统管理员。 如果一个公司是数十人的规模,那么每次访问搜权都经由系统管理员审批,这看起来并不是很繁琐。但如果用户剧增,成千上百人,乃至上万的体量,这个时候信任管理的工作量就会非常大,而系统管理员的角色岗位总会是那么几个,不会与之配比,那么再让系统管理员进行日常的权限信任多少有点胡来。 那么就由此出现了 信任委托(管理员信任某个特定的系统,这个系统又可以信任另一个系统,从而形成信任链)
   信任委托 非常重要,借助信任委托,人们可以构建自动化系统,在无须人为干预的情况下,以安全可信的方式管理大规模增长的零信任网络。
   返回给系统管理员的这一串信任通常被称为 信任链(Trust Chain)  系统管理员被称为 信任锚(Trust Anchor)

3.1 威胁模型

   在设计安全架构中的第一步便是 定义威胁模型, 威胁模型是用来描述潜在的攻击者及其能力、资源以及意图攻击的目标。威胁模型通常会明确攻击者的范围,并按照攻击者的能力高低进行排序,以便于人们按照从易到难的顺序,合理部署相应的攻击缓解措施。 威胁模型 作为一种机制,可以帮助我们聚焦于某个具体的威胁,并仔细思考缓解该威胁的具体措施。

网络安全领域中有多种威胁建模的方法,以下这几种都是流行的建模工具

  • STRIDE
  • DREAD
  • PASTA
  • Trike
  • VAST 一般情况下,零信任网络遵循互联网威胁模型来描述安全态势,规划缓解威胁的措施。因为零信任网路需要控制网络中的断点设备,所以它对互联网威胁模型进行了扩展,充分考虑了端点设备被攻陷的情形。 零信任网络中的威胁模型主要包括以下几种:
  1. 内部威胁:指企业内部员工、合作伙伴或供应商等人员对企业的机密信息或系统资源进行攻击或泄密的威胁。这种威胁模型在零信任网络中尤为重要,因为零信任网络假设所有用户都是不可信的,包括内部用户。
  2. 外部威胁:指来自外部网络的攻击或入侵,如黑客攻击、恶意软件、网络钓鱼等。这种威胁模型在零信任网络中同样需要考虑,因为任何人都可以通过互联网访问企业的系统和数据。
  3. 局部网络威胁:指在局部网络内的攻击或入侵,如ARP欺骗、DNS污染等。这种威胁模型在零信任网络中同样需要考虑,因为局部网络内的攻击可以导致整个网络的瘫痪。
  4. 物理威胁:指物理设备被盗、损坏或篡改等威胁。在零信任网络中,物理设备的安全同样重要,因为物理设备的安全问题可能导致整个网络的瘫痪。
  5. 社会工程学攻击:指攻击者通过欺骗、诈骗、伪装等手段获取用户的密码、账号等信息的威胁。在零信任网络中,社会工程学攻击同样需要被防范,因为攻击者可能通过伪造身份或欺骗用户获取访问企业系统的权限。 面对这么多威胁,零信任模型仅需要保证用于认证和授权操作的信息的机密性,如存储在磁盘上的凭据的机密性。至于对端点系统安全性的进一步要求,如全盘加密等,是其他安全策略需要考虑的问题。

3.2 可变信任

   信任管理是网络安全管理中非常困难的工作。确定网络中的人员和设备应该如何授权是相当耗费时间,并且人员和设备又在不断变化,这会直接影响网络的安全态势。
   定义信任策略这项工作通常由安全工程师手工完成,系统管理员可以根据用户在组织中的职责为其分配相应的权限。但是这种基于角色的策略系统导致管理员不得不制造出许多信任池,从而削弱了网络的整体安全态势 因此信任池问题凸显了传统网络信任管理的根本性缺陷:安全策略动态性不足,无法应对日益变化的网络安全威胁。 因此这种信任管理需要是动态可变的,也就是 可变信任。 在零信任网络中,可变的信任是指在任何时刻,网络中的任何设备、用户或应用程序都不应被默认信任。相反,每个实体都必须经过身份验证和授权,以确定其是否有权访问特定资源或执行特定操作。这种信任是根据实时评估和监控不同实体的行为和活动而建立的,因此可以随时改变。
   例如,如果一个用户的行为开始表现出异常或可疑的活动,他的信任级别可能会下降,从而限制他对资源的访问。因此,在零信任网络中,信任是基于行为和上下文评估的,而不是基于预设的信任级别或身份。
   当然了,凡事没有绝对性,这种模式也不是没有缺点的。其中一个问题是,单一的评分值是否足以保护所有的敏感资源。用户的信任评分能够基于历史行为而降低,同样也可以基于历史的可信行为而增加。那么,攻击者是否有可能通过在系统中慢慢建立信任,从而获得更高的访问权限呢?

3.3 网络代理

   网络代理是指在网络请求中用于描述请求发起者的信息集合,一般包括用户、应用程序和设备这三类实体信息。在传统网络架构中,一般是对这些实体进行单独授权。但是在零信任网络中,策略是基于这3类实体信息的组合整体进行制定。用户、应用程序和设备信息是访问请求密不可分的上下文,将其作为整体进行授权,可以有效地应对凭证窃取等安全威胁。
   网络代理属于授权范畴,它参与授权决策,不属于认证范畴,但认证的结果和状态会在网络代理的数据中有所体现。控制平面基于网络代理对访问请求进行授权,这些系统是零信任网络中授权的首要执行者。在某些场景中,要实现细粒度的授权,需要把网络代理的部分信息从控制平面传递给数据平面,本章也探讨了在暴露网络代理信息的时候如何保证数据的隐私安全。 代理可以作为一种安全网关,位于网络边界上,过滤和检查所有进出企业网络的流量。以下是零信任网络中使用网络代理的一些示例:

  1. 访问控制:网络代理可以根据用户身份、设备健康状况、访问的应用程序等因素,限制用户对特定资源的访问。
  2. 数据保护:代理可以加密和解密数据,以便在数据在网络上传输时保护数据的隐私和完整性。
  3. 应用程序保护:代理可以检查应用程序的行为和活动,以确保它们符合企业的安全策略和规则。
  4. 威胁检测:代理可以监测所有进出企业网络的流量,检测并阻止潜在的安全威胁。
  5. 安全审计:代理可以记录所有进出企业网络的流量,并生成详细的安全审计报告,帮助企业了解网络活动和事件。

3.4 总结

零信任网络(Zero Trust Network)的核心概念包括:

  1. 零信任原则:在零信任网络中,不信任任何网络上的任何人或设备,无论它们是否位于内部网络。
  2. 身份验证:识别请求者的身份是零信任网络的关键组成部分。通过对请求者的身份进行验证,可以确保请求者是合法用户。
  3. 行为分析:通过分析请求者的行为,可以识别潜在的攻击行为。
  4. 威胁情报:通过分析威胁情报,可以识别潜在的威胁。
  5. 上下文分析:通过分析请求者的上下文,可以识别潜在的安全风险。
  6. 多重认证:使用多重认证,可以确保请求者的身份是真实的。
  7. 动态访问控制:通过动态访问控制,可以根据请求者的安全风险评估结果来决定是否允许该请求。
  8. 实时监控:通过实时监控,可以及时发现潜在的安全威胁,并对其进行响应。

四 构建方式

  1. 服务网格

    • 采用服务网格工具,例如Istio或Linkerd,这些工具可以自动处理服务间的通信、身份验证和访问控制,而不需要手动管理令牌。
    • 服务网格还可以提供加密、监控、流量管理等功能,帮助你实现零信任原则。
  2. API网关

    • 使用API网关来集中管理服务之间的身份验证和授权。API网关能够自动处理令牌认证和权限验证,减少服务开发人员的工作量。
    • 实现统一的认证机制,让网关对所有后端服务进行身份验证和授权检查。
  3. 安全代理

    • 部署在服务前端的安全代理,能自动处理认证、加密和日志记录,加以简化服务开发。
    • 代理能够透明地插入身份验证信息,并确保安全通信。
  4. 自动化身份和访问管理(IAM)

    • 使用IAM系统来定义和管理访问策略。可以设定动态的权限策略,根据不同的服务请求自动调整。
    • IAM系统提供集中管理和分发授权信息,使得服务间通信更加自动化。
  5. 自适应安全框架

    • 采用自适应安全框架,它能动态分析风险和调整访问权限,这样可以自动响应环境变化和潜在威胁。
    • 基于AI和机器学习的系统还可以预测异常行为,自动进行安全措施。

   这些工具和解决方案能够显著减少开发人员在实现零信任架构时所需要的手动干预。通过自动化身份验证、加密和权限管理,能够更高效地在后端服务之间推行安全策略。