技术分享|零信任网络建设技术总结(上篇)

百家 作者:贝壳安全应急响应中心 2021-08-05 17:41:02


前        言

本文仅作为我们零信任网络建设实践过程中的一些经验的记录,抛砖引玉,后续也将有更多的建设细节呈现出来,希望同大家分享,并共同探讨零信任网络建设方法,共同解决建设过程中遇到的困难。


传统IT安全面临的困境


传统的IT组网中,网络安全需求的落地往往把重心放在以下工作:

1、精心设计的网络结构,如:带外管理网段/带内生产网段的严格划分、不同网段之间的严格隔离等。


2、在网络边界部署专用安全“盒子”设备上,如:F5、IPS、WAF、DDOS等。


这些经典的网络安全部署方案,长期以来起到了较好的安全防护作用。但随着企业网络规模的日益扩大、网络攻击技术的不断发展、云技术/容器化的不断发展,传统安全方案的缺点越来越明显。


1、整体防御能力重边界、轻纵深,面对攻击者的横向扩展束手无策

复杂的网络部署环境造成过长的网络边界,单点突破往往难以100%杜绝,“容忍单点突破、杜绝全面失守”已成为系统化安全建设的共识。而在过于强调边界防护的传统安全方案下,网络边界越来越容易成为实际上的“马奇诺防线”。


攻击者往往第一步会通过应用薄弱点(0day或nday)、水坑攻击、钓鱼邮件等手段绕过企业重兵部署的防御边界,找到突破点后,通过端口扫描探测更大的攻击目标。


2、检测能力的局限性

WAF、IPS、DDOS等安全防护设备,都是基于规则进行防护。攻击者常用以下两种方式来实现对防护的逃逸:

1)通过编码、异形报文进行逃逸;

2)通过大流量的攻击报文,超出设备检测能力逃逸。


3、审计、权限控制的缺失

当攻击者或内部人员以正常业务操作途径,尝试恶意登录、越权下载数据、破坏数据完整性时,现有的“盒子”设备欠缺防护能力。对于上述恶意操作,一般采取以下方式进行管控:

1)确保业务系统对人员的最小授权;

2)能够通过审计能力,在事中或事后发现侵害行为;

3)通过动态风控手段,结合一定规则、用户行为特征,实现侵害行为的事前阻断;

4)无法满足企业服务上云后的安全需求。


服务上云已经成为越来越多企业的必然选择,公有云、混合云部署场景下,云上服务存在网络界面扁平、攻击面大、服务动态伸缩等特点,传统的防护手段已无法适用。而现有云上的安全组、防火墙策略,则存在配置不灵活等问题。


零信任发展历程


应对传统企业防护方式的困境,零信任的思想及网络架构的出现,给我们提供了另一种防御思路。在过去的10年里,零信任的演进也让我们看到了问题解决的更多可能性。


零信任思想,引用NIST Special Publication 800-207中的一段话:

“Zero Trust Architecture (ZTA) provides a collection of concepts, ideas, and component relationships (architectures) designed to eliminate the uncertainty in enforcing accurate access decisions in information systems and services. ”


本质上讲,“零信任”是一种思想,并不是一种“技术”,同时,也很难有一款产品,可以称之为“零信任产品”。但从另一个角度思考,凡是符合零信任思想的安全产品甚至是网络产品,也都可以称之为“零信任”产品。


零信任架构,就是利用“零信任”这个思想,所建立起来的企业网络安全架构。


根据NIST白皮书中的声明,零信任架构应该遵循6项基本原则:

1.All data sources and computing services are considered resources.

所有的数据源及计算服务,均被认为是“资源”。


2.All communication is secure regardless of network location.

不论处于什么网络位置,所有的通信都应以安全的方式进行。


3.Access to individual enterprise resources is granted on a per-connection basis.

对于企业资源的访问权限授予,应基于每个链接。


4.Access to resources is determined by policy, including the observable state of user identity and the requesting system, and may include other behavioral attributes.

对“资源”的访问授权,应取决于策略,包括用户身份认证和发起请求系统的持续可观测状态,可能还包括其他行为属性。


5.The enterprise ensures all owned and associated systems are in the most secure state possible and monitors systems to ensure that they remain in the most secure state possible.

企业应确保其所拥有或与之相关联的系统处于尽可能的安全状态,并通过对其的持续监控确保它们总是尽可能的处于安全的状态。


6.User authentication is dynamic and strictly enforced before access is allowed.

用户在访问授权之前,必须进行强制的、动态的身份认证。


零信任的优点


企业采用了零信任的思想来搭建企业安全架构,因此应遵循下列假设:

1.The enterprise private network is not trustworthy.

企业内部网络是不可信的。


2.Devices on the network may not be owned or configurable by the enterprise.

网络上的设备,可能不是企业所有的设备,或者无法由企业无法进行配置。


3.No device is inherently trusted.

没有设备是天然被信任的。


上述的3条假设,推翻了传统的静态ACL规则定义网络边界、以网络域为单位进行防护的网络安全建设方式。他的好处在于:

1、风险的横向扩散更加困难:每个资源访问请求都需要正确的认证、授权。


2、引入设备认证和风险评估,最大程度限制网络中的不可控因素。


3、通过接入CMDB、服务树等,实现对服务器、业务系统等资源的刻画,便于统一进行风险控制、权限管理和风险审计。


进而,我们将零信任对企业资产&数据资产的防护方式进行了归纳:已知的用户,在安全可信的设备上,使用加密链路,通过预置的授权访问对应的资源。同时,采用零信任架构构建的企业安全架构,也可不再关心服务部署方式与企业网络结构。


零信任全景


从我们的建设过程中,总结出我们心目中相对完整的零信任网络结构,大致如下图:

在数据平面层,我们需要通过网关(包括4层协议网关与7层协议网关),来实现数据的收口,以便实现权限的控制。


更为安全或复杂的场景,可以辅以安全客户端,来保证数据来源环境信息的可靠性。


在管理平面层,零信任的核心思想在于认证、授权以及持续的信任评估,因此,对应的需要“单点登录”来实现访问源的身份认证,需要IAM(Identity & Access Management)来实现权限管理,需要“风控中心”来进行持续的风险评估,通过“决策中心”将上述三部分进行串联,实现一次访问请求的权限授予。


当安全客户端存在时,则对应的需要其管理的服务端。服务端实现了客户端的管理与信息的收集,并以此整理“设备信息库”。客户端的管理与可控,则是以PKI为基础来实现的。


基于上述各组件,列举出其所包含的功能点,如下所列:

因此处只列举了如“安全客户端”、“安全网关”、“决策中心”、“管理平台”等组件的功能点,而类似于SSO,PKI等,由于技术相对成熟,因此不再罗列。


关于各个组件功能点的详细描述,也会在后文中逐渐展开。


零信任建设思路


参照零信任思想(对每一条流量进行认证、授权以及持续的信任评估)建设的企业网络,基本上可以简化成下图:

基于上图,我们得到了零信任最简化的实现方式--“访问授信”,同时配以“安全审计”所达成的动态风控。此时只要在流量收口处(网关)执行决策中心所作出的放过/拦截的决策,则可以达成最初步的零信任框架。


采用上述框架,可以实现对Layer7流量的基本控制。选择7层流量作为零信任网络建设的入手处,原因在于:

1、企业中,普遍存在7层网关,即企业的反向代理集群,流量收口工作已经初步实现;


2、7层协议开放度较高,如HTTP,通过cookie的支持,可以自由携带认证授权相关信息,实现起来相对简单。


因此,在建设最初的零信任框架时,我们需要完成下列组件的建设:

由于零信任网络处于建设初期,最可靠的实践场所是公司的办公网,即内网。


而在具体的办公场景中,也存在着大量无法通过7层网关实现管控的场景,因此数据平面的整体的网络结构也大致扩充如下:

在引入Layer4层的网关之后,需要迫切考虑到的一个问题就是,4层流量并不像7层流量一样具有可扩展性,身份标识无法通过或者说很难通过4层流量携带并传递至网关。因此,方案就变成了,在用户原始报文之外,封装一层,将用户身份凭证封装在内。


引入了原始流量封装的需求,我们就不得不引入另外一个零信任中颇为重要的角色:安全客户端。


安全客户端与4层流量网关之间通过合理的身份认证与密钥协商,建立起可信的传输隧道,之后将用户身份认证凭证与原始数据包封装后通过可信传输隧道发送至4层流量网关,而4层流量网关在获取用户身份凭证后,根据授权结果,判定是否将原始用户流量向后端转发。


在流量封装与可信传输通道建立之外,安全客户端的另外一个作用,则可以对访问方所处的环境,进行客观可信的评估。如安全补丁的安装状况、安全配置是否合规等,这些重要信息,将作为决策中心评估是否可以进行权限授予的重要依据。


在此时,我们在零信任网络的建设中,将增加如下组件:

当企业具备了安全客户端的能力时,零信任网络则可以在它的安全属性之外,展现它的附加价值—提效,网络无边界。


何为“零信任”,即对一切区域、一切请求,均保持不信任的状态,需要对其进行身份认证、合理授权以及持续的信任评估。而此处提到的“一切区域”,自然也包括企业“内网”。因而,当零信任不在区别对待“内网”、“公网”时,通过零信任网络建设使得企业业务访问安全得到一定程度的保证后,其访问即可以不受“内网”限制。


由此,数据平面的网络结构,也可以大致演化为下图:

相对于4层流量的管控而言,7层流量的管控,可以更细粒度一些,甚至可以做成API网关,而4层流量的管控,只能做到五元组级别。因此,相对来讲,L7的OA系统,更容易做到“网络无边界”。


但从另一个角度思考,“内网”客观上,也作为一个环境存在,确实将提高攻击者攻击成本,因而,对于敏感业务的访问,将其保留在“内网”仍不失为一个好的选择。


在解决了办公场景下的大部分问题后,下一步我们将面临的问题是,分布在办公区、生产网等各处的“哑终端”入网安全性问题。


近些年,各方报告均显示,IoT安全问题日趋严重,RCE漏洞使其成为僵尸网络的重灾区。因其扮演的网络角色相对容易被忽视,而产品安全的能力又良莠不齐,很容易成为攻击者的突破口,进而造成更严重的网络安全事故。


最简单的限制方式,是对哑终端的IP进行限制,使其能够访问资源最小化。当哑终端因IP变化或其他更复杂原因,则需要考虑引入证书对其设备与流量进行认证,相对而言,这部分的建设成本会比较高,但如果企业有私有的PKI系统的话,将会节省很大一部分建设成本。


总结上述信息,我们得出了一个零信任建设需求的优先级列表,供参考:

1、实现企业网络的基本隔离,至少应该达成区域间的隔离。


2、 构建零信任管理平台,包括策略配置管理(或引入IAM),构建策略模型,建立基本的访问准入准则。


3、构建零信任决策中心,包括身份认证(SSO)、策略查询(IAM)与授权、风险评估等。


4、依托于企业7层流量代理网关,联动决策中心,实现对企业7层业务流量的基本管控。


5、实现安全客户端,此步骤中,至少应实现认证与可信隧道能力,以此达成与4层网关联动的能力。客户端信息与环境检查,如安全性检查、病毒查杀等能力,则可以考虑通过采购的方式补足。


6、4层流量网关的搭建,联动决策中心,与零信任客户端一同实现4层流量的认证与授权。


7、建立企业的PKI/CA系统,以此来保障客户端可信与加密隧道安全。


8、建立完善的风险识别体系,使零信任网络具备持续信任评估能力,在必要时刻,持续信任评估能力可以缩短MTTD与MTTR。


9、哑终端管控能力覆盖。


后续文章,会根据所列需求,展开讲述各组件的建设细节。

END

扫码关注我们

发现更多精彩


关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接