2021年5月12日美国总统拜登签署网络安全行政命令,要求联邦政府采用“零信任架构”。让零信任又大火了一把,近几年安全圈里面越来越热的“零信任”到底是个啥呢?本文就跟大家一起来探讨下“零信任”这个IP。
在传统的IT组网中,网络安全需求的落地往往把重心放在以下工作:
精心设计的网络架构,如:带外管理网段/带内生产网段的严格划分、不同网段之间的严格隔离,严格划分网络区域,不同区域执行不同的安全策略等;
网络边界处部署专门的边界安全设备,如F5、IPS/IDS、防火墙、WAF、DDOS等,这些经典的网络安全部署方案,长期以来起到了较好的安全防护作用。但随着企业网络规模的日益扩大、网络攻击技术的不断发展、云技术/容器化的不断发展,传统安全方案的缺点越来越明显;
整体防御能力重边界、轻纵深,这种理念通过“边界”来区分“可信”与“不可信”。但是复杂的网络部署环境造成过长的网络边界,同时云计算、大数据、移动互联、物联网等技术的混搭也导致网络边界越来越模糊,所以边界的界定也越来越困难。黑客一旦突破边界防御,就如同进入无人之境,而在过于强调边界防护的传统安全方案下,网络边界越来越容易成为实际上的“马奇诺防线”;
攻击者往往第一步会利用通过应用薄弱点(0day或nday)、水坑攻击、钓鱼邮件等手段绕过企业重兵部署的防御边界,找到突破点后,通过端口扫描探测更大的攻击目标。
检测能力的局限性,传统的类似IPS、WAF、DDOS和防病毒这样的防护工具,基本上都属于对已知固定恶意代码进行特征识别的一种静态分析方法,无法有效应对恶意代码变形、加壳等隐蔽手段,特别是对于针对性很强APT攻击更是无能为力。一般情况攻击者可以通过以下两种方法逃逸:
1)通过编码、异形报文进行逃逸;
2)通过大流量的攻击报文,超出设备检测能力逃逸。
审计、权限控制的缺失。当攻击者或内部人员以正常业务操作途径,尝试恶意登录、越权下载数据、破坏数据完整性时,现有的“盒子”设备欠缺防护能力。往往APT组织会利用社会工程系进行网络攻击,获取“合法权限”,就可以轻松绕过边界的“盒子”。对于上述恶意操作,一般采用以下方式进行管控:
1)确保业务系统对人员的最小授权;
2)能够通过审计能力,在事中或事后发现侵害行为;
3)通过动态风控手段,结合一定规则、用户行为特征,实现侵害行为的事前阻断。
无法满足企业服务上云后的安全需求
服务上云已经成为越来越多企业的必然选择,公有云、混合云部署场景下,云上服务存在网络界面扁平、攻击面大、服务动态伸缩等特点,传统的防护手段已无法适用。而现有云上的安全组、防火墙策略,则存在配置不灵活等问题。
基于边界的网络安全模型一直是信息安全的主要模型。它假设用户在企业网络边界内的用户是“受信任的”,而外部的任何人都是“不受信任的”。 几十年来,这种观点一直是确定用户/设备可以访问哪些资源的准则。
一旦进入边界内部,用户通常可以广泛访问许多企业资源,这意味着 恶意行为者可以来自网络内部或外部。此外,云计算和远程员工的增加使组织数字资源的保护工作更加复杂,因为存在比以往更多的出入口和数据访问点。在这种情况下,安全人员不得不寻求更加安全的方法以保障企业的网络安全。
这里特别强调下“内部”,选在很多著名的攻击都是利用社会工程学的手段,绕过边界盒子的安检,渗透到内部,成为“合法用户”去访问系统资源并执行恶意攻击。
这里引用NIST Special Publication 800-207中的一句话:“零信任是一种思想,而非一种技术”。
理解上面这句话很重要!零信任和我们常见的抗DDOS技术、入侵检测技术、身份认证等技术不一样,它不是一种新的技术,也很难有一款产品,可以称之为“零信任产品”。但是从另一个角度思考,凡是符合零信任思想的安全产品甚至是网络产品,也都可以称之为“零信任”产品。
拜登要求联邦政府采用的“零信任架构”就是利用“零信任”思想,建立的网络架构。
狭义概念:即零信任网络访问(ZTNA),解决的是人、用户、物、设备和终端的信任问题。“由一个控制点控制它怎样对 IT 资源进行访问,授予它什么权限”。
广义概念:即零信任架构(ZTA),它是基于数据的安全,从各方面采集多种数据,包括网络数据、安全数据、终端数据、身份数据等,利用这些数据做信任的计算和决策,真正动态的判断全网安全态势,最终做好决策后再交给部署在整个数字架构中各种各样的决策执行点(可能是一个网关、一个软件或 API),来决定是否允许此次访问以及能访问到何种程度。
简而言之,“零信任”即对一切区域、一切请求,均保持不信任的状态,需要对其进行身份认证、合理授权以及持续的信任评估。
零信任访问模型如下,在图 1 的抽象模型中,如果用户或计算机需要访问企业资源时,其需要通过策略决策点(PDP)和相应的策略执行点(PEP)授予访问权限。
隐含信任区表示一个区域,其中所有实体都至少被信任到最后一个PDP/PEP 网关的级别。例如,可以参考机场的乘客安检模型。所有乘客通过机场安检点(PDP/PEP)进入登机口。乘客可以在候机区内闲逛,所有通过检查的乘客都被认为是可信的。在这个模型中,隐含信任区域是登机区。
PDP/PEP 采用一系列的控制策略,使得所有通过检查点之后的通信流量都具有一个共同信任级别。PDP/PEP 不能对访问流量使用超出其位置的策略。为了使 PDP/PEP尽可能明确,隐含信任区必须尽可能小。
2010年:提出零信任安全(或零信任网络、零信任架构、零信任)最早由约翰.金德维(JohnKindervag)在2010年提出,约翰.金德维格当时是著名研究机Forrester的首席分析师;
2011年-2014年:Google共在《login》杂志上发表了5篇BeyondCorp相关的论文,全面介绍BeyondCorp的架构和Google从2011年至今的实施情况;
2017年:Google对外宣布基于零信任概念的新一代网络安全架构BeyondCrop落地完成。业界厂商大力跟进,包括Cisco、微软、亚马逊、Cyxtera,国内安全厂商等成立身份安全实验室大力跟进;
2018年:公安部开始做“一网双域” 探索并开始大规模投资建设
2019年:NIST发布了Draft NIST Special Publication 800-207《Zero Trust Architecture》为给出了零信任官方意义上的解读;
2020年:NIST发布了Draft (2nd) NIST Special Publication 800-207,细化了零信任架构的细节,更有力的推动了零信任思想的发展和落地。
零信任架构作为一种企业网络安全规划,利用了零信任概念,囊括其组件关系、工作流规划与访问策略,聚焦数据保护,横向扩展到所有政企网络中的资产。它不是单一的网络架构,而是一套网络基础设施设计和运行的指导原则,可以用来改善敏感级别的安全态势。
根据NIST白皮书中的声明, 零信任架构的设计和部署遵循以下基本原则:
图 2 中的概念框架模型显示了组件及其相互作用的基 本关系。注意,这是显示逻辑组件及其相互作用的理想模型。从图 1 中,策略判定点(PDP)被分解为策略引擎(PE)和策略管理器(PA)两个逻辑组件。
以上组件的具体描述:
除了企业中实现 ZTA 策略的核心组件之外,还有几个数据源提供输入和策略规则,以供策略引擎在做出访问决策时使用。这些数据源包括本地的和外部(即非企业控制或创建的),其中包括:
以上所有组件都是逻辑组件。他们不一定必须是个单一系统。单个服务可以执行多个逻辑组件的职责,同样,一个逻辑组件可以由多个硬件或软件元素组成以执行其任务。
根据NIST白皮书中对零信任架构 ZTA的常见方案描述,企业可以通过多种方式为工作流引入零信任架构 ZTA,每种方案都实现了零信任的所有原则,但可以使用一个或两个组件作为策略的主要驱动元素,常见方案有以下三种:
零信任到底是靠什么技术做底层支撑的呢?零信任的三种建设方案正好对应三大支撑技术,分别是IAM、MSG、SDP
基于控制通道与数据通道分离的设计,SDP构造了一个“暗黑网络”,减少了资源的暴露面,安全性更好,不仅可以替代VPN/边界网关来控制南北向流量,也可以用于内网间的访问权限控制,彻底定义一个弹性的动态的安全边界。
freebuf团队总结出一个相对完整的零信任网络结构,分享给大家,如图4所示:
可以看出,此零信任网络结构图也是在NIST白皮书中的逻辑组件基础上构建的。
在数据平面层,我们需要通过网关(包括4层协议网关与7层协议网关),来实现数据的收口,以便实现权限的控制。
更为安全或复杂的场景,可以辅以安全客户端,来保证数据来源环境信息的可靠性。
在管理平面层,零信任的核心思想在于认证、授权以及持续的信任评估,因此,对应的需要“单点登录”来实现访问源的身份认证,需要IAM(Identity & Access Management)来实现权限管理,需要“风控中心”来进行持续的风险评估,通过“决策中心”将上述三部分进行串联,实现一次访问请求的权限授予。
当安全客户端存在时,则对应的需要其管理的服务端。服务端实现了客户端的管理与信息的收集,并以此整理“设备信息库”。客户端的管理与可控,则是以PKI为基础来实现的。
任何企业环境都可基于零信任原则来设计规划。大多数组织机构在企业基础设施中已经有一些零信任的元素,或者已经通过实施信息安全和弹性政策及最佳实践走在通往零信任的路上。有几个部署场景和用例很容易成为零信任架构。例如,ZTA 就是起源于地理上分散和/或员工流动性高的组织机构。总的来说,任何组织都可以从零信任架构中受益。
最常见的情况是一个企业有一个总部和一个或多个地理上分散的分支机构, 并企业拥有的物理网络(内网)无法把他们连接一起(请参见图 4)。外部地区 的员工可能没有完全企业拥有的本地网络,但为了执行工作任务仍然需要访问企 业资源。同样,员工可能是远程办公或在外部地区使用企业所有或个人拥有的设 备。在这种情况下,企业可能希望授予员工日历、电子邮件等某些资源的访问权 限,但拒绝其访问或限制操作更敏感的资源(例如,人力资源数据库)。
在这种使用场景下,PE / PA 通常作为云服务托管终端设备资产安装了 Agent 代理程序或直接访问资源门户。
将 PE / PA 托管在企业本地网络可能不是最有效的方法,因为远程办公室和工作人员必须将所有流量发送回企业网络才能访问由云服务托管的应用程序。
一种越来越普遍的部署 ZTA 用例是企业使用了多个云提供商(请参见图 5)。 在这种情况下,企业拥有本地网络,但同时使用两个或多个云服务提供商托管应 用程序和数据。有时,应用程序托管在与数据源分离的云服务上。考虑性能和便 于管理,云提供商 A 中托管的应用程序应该能够直接连接到托管在云提供商 B 中的数据源,而不应强制应用程序通过企业网络连接。
另一个常见的场景是企业的现场访客和/或外包服务人员需要对企业资源进 行有限访问(请参见图 6)。例如,企业有自己的内部应用程序、数据库和资 产,其中包括外包给供应商偶尔需要在现场提供维修的服务。这些访客和服务提供商需要 网络连接以执行任务。实施零信任原则有助于企业在允许这些设备和来访的技术 人员访问互联网的同时隐藏企业资源。
第四个用例是跨企业协作(如图7)。两家企业的员工都可能不在他们组 织的网络基础设施上,他们需要访问的资源可能在一个企业环境中也可能托管在 云中。这意味着无需通过复杂的防火墙规则或企业范围的访问控制列表(ACL) 允许某些属于企业 B 的 IP 地址访问企业 A 的资源。如何进行访问取决于使用的技术。
许多企业的一个常见特征是面向公众的服务,该服务可能包括也可能不包括 用户注册(即,用户必须创建或已颁发一组登录凭证)。这些服务可以服务于一 般公众、一组具有现有业务关系的客户、或一组特殊的非企业用户,如员工家属。 在所有情况下,很可能请求的设备资产不是企业所有,因此企业可以实施的内部 网络安全策略是受局限的。
通常来说,对于不需要登录凭证即可访问的面向公众的通用资源(例如,公 共网页),ZTA 的原则并不直接适用。企业不能严格控制请求设备资产的状态和公共资源不需要凭证才能访问。
参考资料: