概述
微软对零信任的理解和基于微软自身安全产品的实践,提出了零信任战略、原则及建设的关键举措和步骤,并围绕Azure AD构建零信任用户访问参考架构。本文对微软零信任访问的安全架构进行简要阐述和解读。
零信任战略
零信任很难有清晰的定义,它不是一个产品和平台,而是一个横跨多层的、且经常需要改变传统安全思维方式和实践的一种战略。零信任战略是企业数字化战略的组件,与传统的网络边界的安全方法最大的不同是能增加对各类业务资产,数据和应用的安全保障。
微软零信任战略可引领四个方向的安全能力的增强:1)用户访问,零信任首要和最重要的是用户访问,能够使组织明确验证访问资产的每个请求,验证访问者用户的账户和设备的信任情况,同时需要动态的表达对访问不充分的信任。2)现代的安全运营,无论资源位于什么位置,都能够提供快速检测、响应和恢复能力,提供深度的可视化,以提高警报质量和调查工作流程。3)在OT和IoT领域引入零信任的原则,加强设备安全、API安全等;4)在数据中心应在转换或迁移云的过程中,与工作负载、应用、API的同步规划零信任的升级。
微软零信任原则
微软提出了零信任建设的3个基本原则,指导零信任建设的依据。首先是明确的验证,验证访问相关的用户、设备、工作负载、数据分类,并需要基于位置、健康信息、上下文信息和异常活动信息进行明确验证,而非隐含的信任。其次是最小化权限,对普通用户及特权用户都需执行最小权限,并能基于风险的自适应调整权限。最后是假设违规,这也是零信任默认不信任的的主要原则之一。
明确的验证:
- 用户身份和位置
- 设备健康
- 服务或工作负载的上下文
- 数据分类
- 异常的活动
使用最小权限访问控制:
- Just-in-time (JIT)
- Just-enough-access(JEA)
- 基于风险的自适应策略
- 针对带外向量的数据保护
假设违规:
- 按网络、用户、设备和应用程序感知隔离访问
- 端到端加密所有会话
- 使用分析进行威胁检测、态势可见性和改进防御
协调网络和身份访问控制
零信任架构存在基于网络控制和基于身份标识的两大类,主要区别有两点:
- 管理的团队不同,身份控制通常由应用主管部门负责,而网络控制由网络部门或安全部门负责,但不同部门对安全的认识和理解不一致;
- 身份标准的控制可拥有丰富的上下文信息,但仅适用经过身份验证的会话,而网络控制与之相反,可拦截广泛的各类流量,但缺乏通信的上下文。企业不同通信场景对控制的要求也不一样,如远程办公访问云服务,要完全通过拦截流量进行控制就不切实际,但可以在分支机构采用网络控制的方式,微软认为需要协调这两类不同的控制能力,才能发挥更好安全效果。
场景一:用户访问和生产力
身份相关控制是主要重点,重点是构建身份控制平面,需要确保所有云服务和移动设备都连接到企业单一的控制平面(如Azure Active Directory),以便集中管理身份验证和访问。网络控制仍然具有核心的基本的卫生作用,比如客户端的防火墙阻止未经请求的流量。网络控制也可用于实施细粒度和动态的控制,但要从本地静态策略为指导改为以零信任策略管理中心指导,也就是网络控制设备(防火墙)作为零信任PEP。
场景二:运营技术(OT)和行业IoT
与用户访问和生产力的正好相反,此类环境于多数为专有协议,且系统通常比较陈旧,执行基本的安全功能(如扫描网络漏洞)就很容易导致宕机。对于这类场景,通常关注OT与公司IT环境隔离或使用被动的方式监控流量以识别异常活动和漏洞。所以,身份相关控制的作用主要是保护连接到这些环境的IT的暴露点,例如确保将IT最佳实践严格应用于与OT系统交互的IT系统。
场景三:数据中心安全
IDS/IPS和其他控制阻止未经授权的流量,在内部通过Azure网络安全组(NSG)、应用程序安全组(ASG)和Azure防火墙使用网络分段来隔离应用程序/工作负载或应用程序。网络控制隔离朝着细粒度的方式演进。
AD或其他工具对系统执行访问控制,另外也执行根据工作负载、应用程序、API接口之间的访问控制,使用服务账号、API Key、证书等多种身份认证方式,也基于身份执行更细粒度的访问控制。
零信任建设优先级举措
微软在识别零信任场景的基础提出了零信任建设优先级以及关键举措。认为用户访问和生产力、现代化安全运营可作为高优先级;而OT和IoT、数据中心场景的安全通常则由云数据中心的迁移或OT/IOT产生新的应用驱动零信任建设。
用户访问和生产力
主要举措分为三个步骤:一是显式的验证所有访问请求,并在允许访问之前显式验证用户帐户和设备的信任,这也是零信任的基本原则;二是增加对关键访问资源的安全保护;三是治理,持续性的监控安全态势,并要能够评价安全成效;
- 最重要的是因素身份验证(MFA)(最好是无密码身份验证),企业首先要解决的是跨越只使用密码认证的阶段。设备访问的完整性检查需要执行合规检查,然后汇聚XDR的信息。
- 加强应用的安全保护。考虑将所有SaaS应用程序对接Azure AD,对于不支持现代身份协议(如OAuth/OIDC和SAML)的应用程序微软提供两个递进的方法和步骤:1)VPN设备集成到Azure AD身份验证,通过Azure AD的 Conditional access 实现对用户和设备的显示验证;安全性得到增强,但仍无法解决VPN能提供完整的网络访问的问题。2)使用Azure AD App proxy功能替换VPN,该应用代理可发布本地数据中心和IaaS应用,并将帐户限制为一次访问单个应用程序。加强数据的保护,无论数据流动到哪里,如云服务、USB设备、公司端点和服务器等,都采用全生命周期的方法(发现、分类、保护和监视),根据数据安全优先级选择实现相应功能的技术,如Microsoft information protection(MIP)数据进行加密,并需要向云服务验证解密密钥。
- 对用户访问的治理,通过使用Secure Score工具来度量组织的安全态势现状,与基准进行比较,建立关键绩效指标以减少安全风险。
现代化安全运营
安全运营的现代化主要考虑的是新的云应用程序、远程设备、身份等传统安全边界之外的其他资产的安全运营工作,包括威胁检查、响应、恢复及预防性的访问控制,零信任主要举措包括:
- 简化响应,一方面使用XDR技术提供告警质量,另外减少人工延迟,并能尽早发现攻击者;
- 统一的可见性,汇聚数据进行安全调查、发现威胁,提供更广阔和深入的洞察;
- 自动化技术,如内置于Micorsoft 365 Defender和Azure Sentinel(SIEM)的SOAR技术。
OT和行业IoT
OT及行业IoT环境应先发现资产,然后通过隔离有漏洞/或重要的工作负载与网络的连接,再使用Azure Defender for Iot专用的安全工具监控,包括复杂的异常检测。
数据中心安全
数据中心安全的零信任防护措施主要构建在传统的安全能力上:
- 安全卫生,使用基础的安全实践,构建相应的安全控制,也可通过Azure安全中心的Secure Score对安全态势进行评价打分。淘汰高风险的如旧的身份验证协议的传统技术。
- DevOps集成,采用集成的架构和开发安全的实践集成到DevOps中。
- 微分段,将微分段的概念应用在身份控制和网络控制的组合,限制资源的爆炸半径,将资源的访问限制到较小的“段”,从而降低了风险。微分段的工具和控制措施包括:阻止管理员使用的管理端口;数据中心的边界防护,网络过滤(Internet防火墙,IDS/IPS或WAF),传统静态的细粒度访问控制需要深入了解应用程序的工作流及交互关系,才能有效执行数据中心内的网络过滤;内部资源身份验证,身份团队和工作负载的所有者应该确保服务器、应用程序和服务在相互通信之前进行身份验证。
零信用户访问架构
该参考架构是以Azure AD Conditional Access为决策中心,其技术上的主要特点如下:
- 访问风险信息源于内外部
- 用户风险:
- 识别组织内部可疑的用户及该用户可疑的潜在威胁,结合Microsoft Defender for Identity利用本地的AD的数据发现用户的高级威胁。
- 用户访问业务的异常风险,使用Microsoft Cloud App Security代理用户访问应用,来分析用户访问行为的异常。
- 用户认证方式的风险,是否采用MFA;
- 设备风险:
- 通过微软Defender for Endpoint、Intune及与第三方MDM,能够获取到PC和移动终端的设备配置、面临的病毒威胁等安全风险信息。
- 微软威胁情报提供的信息,用以获取外部相关的威胁情报;
- 企业本地Active Directory提供的设备注册信息,用以判定该设备的管理属性。
- 用户风险:
- 用户及设备的风险分析判定
- 用户风险的分析。用户相关风险数据、会话信息汇聚到Azure AD 的Identity protection,然后由其计算多个因素的风险,包括泄露的账号、 非典型的旅行、 恶意的IP地址、恶意的链接等信息,评估出用户的高/中/低不同的风险级别。最终评估的风险级别结果发送给 Conditional Access,Conditional Access去执行访问策略的决策。
- 设备风险的分析,由Intune通过获取Microsoft Defender for Endpoint及MDM系统对于该设备的扫描信息,来最终判定设备的合规性,再将信息发送给Conditional Access。另外也可通过根据设备是否注册到AD信息,来判断是否是企业或个人设备。
- 访问策略的决策核心是Conditional Access
- Conditional Access作为Azure AD的高级组件,是微软身份驱动的控制平面中心。将汇聚所有风险信息,将获取的这些信息与已配置的策略进行比对,做出策略决策。这种静态策略和动态实时信息(威胁情报、会话上下文等)的结合为提供了一种自适应的方法。访问控制的类型包括阻止访问、授权访问(必须满足的条件)、限制访问等。
- 策略的重新评估,由于用户的风险和环境始终是变化的,Conditional Access提供了三种情况下的重新评估:用户每次访问请求,令牌到期后的刷新,安全态势的变化(汇聚得到风险信息的变化)。
- 不同类型的应用提供了不同的资源控制的实现方式
-
- 微软SaaS应用,如微软Office365 、Sharepoint,自身具备了完善的安全控制功能,当使用Azure AD作为IDP时,应用可根据传入的风险信息,动态执行更细粒度的访问限制;
- 其他SaaS、云应用都可使用Micorosoft Cloud App Security(MCAS)作为访问代理,执行访问控制策略;
- 对于本地的WEB应用,使用Azure App Proxy连接,并通过MCAS监视访问会话,实现与访问云应用一样的访问控制策略,如阻止数据外泄、下载时保护、阻止上传、阻止访问、阻止自定义活动等。
Azure AD Conditional Access
Conditional Access (有条件访问)是Azure AD的高级功能,是身份驱动控制平面的核心。决策的依据是广泛收集各类环境信息:如Sign-in风险、用户风险、设备平台、位置、客户端app。其中Sign-in风险是表示给定的验证请求不是被身份所有者所授权的可能性,判定依据包括上下文及等相关的信息,用户风险是表示给定的身份标识和账号被损害的可能性,这两个风险数据都来源于Azure AD Identity protection的分析。
Conditional Access 的访问控制方式分为Grant和Session两种控制,Grant控制方式主要有两大类:阻止访问、授权访问但需要额外的安全要求,如多因素认证、需要设备标记为遵从性、需要授权的客户端;Session控制监视应用会话,执行更细粒度的访问限制,由SaaS应用自身或应用代理执行。这两类控制策略均集成到Azure AD Conditional Access统一管理,实现动态的访问控制。
- 应用执行限制,由Azure AD传递设备信息到后端的应用,然后应用根据连接的设备是否来自合规的设备或企业的设备,执行限定的访问或完全的访问,目前仅支持SharePoint Online 和 Exchange Online应用。
- 应用代理执行限制,Conditional Access基于某类条件的策略决定,授权允许的流量被路由到 Microsoft Cloud App Security执行访问会话的控制。
持续性访问评估(CAE)
CAE功能是要能够持续的发现安全风险,如果访问风险发生变化时,提供一种机制及时响应和处理。CAE主要提供了两种方法执行:
- Azure AD中的关键事件评估,即用户风险的发现,如账号已删除、密码已更改、Azure AD检测到用户风险高作为事件由云应用订阅该事件,实现实时的访问评估。目前支持的仅包括Exchange Online、SharePoint Online 和 Teams少数应用。
- 应用方执行条件访问策略评估,先由应用服务同步关键的条件访问策略信息,后续由应用服务本身进行评估,以实时限定访问权限。
- 由于风险和策略是实时评估的,原有的静态的令牌生存期的规则不再有效,比如在Azure默认情况下,访问令牌的有效期为1个小时,但通过缩小令牌寿命来响应条件的变化会降低用户的体验和可靠性。微软则提供的方式是通过令牌颁发者(Azure AD)和依赖方(应用)之间的双向信息传递,即当依赖方发现到风险变化,则通知令牌者(Azure AD)吊销会话。微软引入了客户端声明质询的方法,资源程序也可以拒绝未到期的令牌,而需要由 Azure AD 颁发一个新的访问令牌。吊销令牌则是由关键事件和访问策略评估来驱动,不过该功能仅支持Outlook、Teams、Office、OneDrive最新版本。
用户条件更改事件流图示
终端持续评估集成示例
当检测到终端系统感染威胁时,信息将由Intune云服务根据组织策略在Azure AD上将该设备标记为未遵从,Azure AD Conditional Access则会阻止用户在此设备的访问,直到恶意代码被清除完成。采用连续访问评估(continuous access evaluation )的方法,则应用则会获取到设备得遵从性的信息,则由应用侧评估条件访问策略,实时阻止或限制用户的访问权限。
小结
微软基于对零信任战略的理解,认为零信任是要转变传统的安全思维,从战略角度看,其核心仍然是保护资产免受攻击。网络控制和以身份为主的控制都是零信任战略的具体的不同的执行手段,在用户访问、现代化安全运营、OT和IoT及数据中心的不同场景中,这两类控制需要互相协调。
用户访问场景通常是零信任建设的最高优先级考虑,也是大多数企业应用对外开放、移动办公所驱动的,需要同时满足生产力和安全的要求。微软提出了各场景下的关键举措活动,在用户访问场景中基于主客体及治理3个方面,重点提出了对用户控制的加强措施,包括MFA、集成威胁情报的分析、行为异常分析 和设备的认证。 还需要覆盖SaaS和传统的应用并加强敏感数据的发现和防护,持续的安全态势风险监控,实现零信任访问控制策略的闭环。在数据中心领域,做好基本卫生防护后,对端口、应用、内部区域等执行不同粒度的微分段,但由于应用互访关系的复杂性,执行细粒度的微隔离难度较大,所以也催生了市场上通过流量的可视化分析自动执行微分段的技术,这是当前实现数据中心内部零信任的一种主要方式。数据中心零信任安全的另一个重要举措是加强服务之间进行身份验证,这在多租户场景下微服务之间的访问尤其重要。
软的零信任访问架构以Azure AD Conditional Access为中心构建,Conditional Access提供了访问策略的集中管理和控制,而微软身份保护工具相当于信任分析引擎,广泛采集各类数据并风分析得到完善的用户风险等级数据,提供决策的数据支撑。设备风险的采集也主要来源于微软自家的端点安全产品,目前主要以设备的遵从性来最终判定设备的风险,遵从性的判定策略则由Intune来执行。
由于该架构是构建在Azure云上,因此策略执行点则考虑了企业应用资源的不同位置属性,兼顾了SaaS和本地的基于AD传统认证方式的应用。由于微软的SaaS应用及Cloud app security提供了大量的访问控制,与Azure AD集成后,这些访问控制组件则成为零信任访问的策略执行点,并执行不同粒度的限制性访问,即权限的控制或基于风险加强安全控制措施。
由应用客户端发起的持续性评估也是微软该架构的特点之一,业务用户体验在实施零信任访问架构时非常重要,而由资源所有方去根据应用安全的不同要求去持续性检测,是平衡应用体验与安全的一种较好的方式。