零信任网络建设及部分细节讨论(二)

百家 作者:贝壳安全应急响应中心 2022-06-02 21:08:36

点击蓝字关注我们

本文约7000字,承接《零信任网络建设及部分细节讨论》篇的内容来介绍我们零信任网络二期建设中遇到的一些难题与解决设计思路。一期建设的侧重点为网络域的合理隔离、七层访问的统一收口、七层网关实现统一的4A能力;二期建设中重点探索了终端的安全准入、四层网络的安全准入、终端的持续风控、无边界办公等能力。在这里同大家进行分享,共同探讨零信任网络建设中遇到的难题与建设方法。


01 建设背景

在贝壳零信任一期建设中,我们落地了7层流量的零信任管控,具备了7协议流量的细粒度管控能力。在此基础上,对于七层的入网流量,能够比较好的落地统一的4A能力(账号、认证、授权、审计)。但在“人”使用“终端”,接入“内网”访问“业务资源”时,仍存在以下问题:

1、终端的安全基线不可控:

一期建设中,主要着力点在于零信任网关对于网络的收口,没有对设备进行重点管控,接入的设备中,是否符合基本的安全基线,如必要的安全补丁是否已经安装、高风险端口是否已经关闭、是否安装了必要的杀毒软件,这些客户端安全基线在复杂的公司内部网络中,往往是必需的。

2、终端的安全风险不可感知:

在满足了基本的安全基线之外,往往还需要根据公司内部网络和业务特点,持续对设备进行安全监控。如电脑是否存在横向渗透动作、是否存在连接外部矿池的动作、是否有大规模数据爬取行为等等,也需要对终端进行持续的风险评估和管控。

3、终端的数据安全保护能力缺失:

当前数据安全的重要性和风险越来越突出,很多企业也面临终端数据泄漏的风险,DLP的必要性成为终端数据安全治理的共识。如何将终端安全基线、终端持续风控能力与DLP有效结合起来,实现终端数据泄露风险可感知、可阻断,也是本期目标之一。

4、无边界办公能力待完善:

我们这里定义的无边界办公,体现在两方面:

(1)首先是公司外的无边界,由于疫情等因素的影响,居家远程办公成为一种刚需。传统解决方案是通过VPN访问内网,但VPN有着授权管理平面化,攻击面易扩散的风险。一期建设中的四层加密隧道,只实现了“VPN”的功能,缺少精细的权限管理、持续的终端风控能力。安全能力上的缺失,很难完全放心把内网“全局”性的开放出去。因此传统的做法往往是根据不同用户群体、开放部分网段,然而这又有疫情下无法现场办公的实际情况相矛盾。

(2)其次公司内的安全无边界,出于安全考虑,各家公司在网络域划分时,一般会区分办公网、测试网、生产网,网段之间通过一定的策略进行隔离。然而对于产研团队来说,时常有数据库、SSH等四层协议下跨域的访问的需求。常规的做法常常是在防火墙上根据IP开白,然而这种做法又导致了敏感资源暴露、授权无法精细到人的问题。如何在保证安全性的前提下,满足这类研发侧访问需求,也是我们要解决的一大难题。


基于以上零信任构建一期遗留的问题、难点。我们对零信任构建全景图进行了补充:

在上图中,本系列文章的第一篇已经介绍过的模块不再赘述。本文主要讲解为了解决上述问题而增加的新模块(图中橙色序号标注)。这些模块、功能的作用概述如下:

1、终端安全立体防控:

如橙色序号1所示模块,为了解决终端安全不可感知、数据安全缺乏保护能力问题,我们在零信任客户端上引入UEM、反病毒、漏洞扫描、DLP等功能模块。零信任客户端由原来单一的网络隧道功能,丰富集成了各类终端安全、数据安全模块。并由零信任客户端程序,进行统一的模块集成、信息采集、策略下发、安全管控。

2、 终端采集信息的完善与策略的下发:

如橙色序号2所示模块,对于新加入的各类终端,统一对设备进行注册和管理,并实现账号、设备的绑定管理——如限制同时登录设备、绑定常用设备等。

3、七层准入服务:

如橙色序号3所示模块,7层通过统一的网关能力,实现业务服务的统一4A能力,并具备与零信任客户端的联动能力,获取零信任客户端的安全基线、登录信息、设备状态。同时对于外网远程办公、内网高敏感资源访问需求,将7层服务放在4层网关后面,实现账号、设备、资源的更高级别安全管控。

4、四层网络流量的精细授权管控:

如橙色序号4所示模块,为了完善无边界办公能力,实现四层网络流量的精细授权管控。我们在决策中心中加入四层网络流量的精细授权管控引擎。实现可以对任意四层资源(IP、端口、协议)的对人、组织、IP、环境的授权管理。相比传统VPN、防火墙具备更细粒度的授权能力。

5、七层、四层零信任网络的风控融合:

如橙色序号5所示模块,为了提升动态授权管控能力,在7层流量的动态风控授权的基础上,融入4层流量的动态风控授权。并将4层、7层的风控、审计能力进行打通,并具备统一的持续风控模型


以上新增与相关涉及内容,为本文详述重点。其他模块的设计思路,请参考本系列的上一篇文章《零信任网络建设及部分细节讨论(一)》,本文不再赘述。

02 终端安全性的感知与准入控制

终端上可能面临的风险,我们划分为以下几个方面:

考虑快速落地与甲方研发成本,以上模块均通过外采的方式的进行采购,并与其协商API接口调用的方式,实现策略的下发与安全性结果的查询。

通过自研零信任客户端实现对各模块的信息集成采集、控制。终端安全性通过各安全模块进行检测、上报,为后续安全基线检查提供基础。安全基线检查的策略如下:

以上各模块通过零信任客户端进行统一的组件完整性检查,包括各组件程序的完整性检查、获取各组件当前的登录、运行状态。最终将结果定期上报至设备信息管理服务。

用户终端访问7层办公资源时,准入控制服务的各模块联动方式如下:

当终端用户希望通过浏览器访问办公资源时,由于七层零信任的访问管控,用户首先需要进行登录。在登录服务的HTML页面中嵌入JS代码来调用零信任客户端的本地服务接口,获取设备编号。

获取设备编号后,准入服务查询该设备的安全组件完整性、漏洞扫描结果、恶意软件感染情况、数据泄漏情况等安全属性,进行综合的终端安全性评估。若当前终端不具备入网的安全条件,则用户登录不通过,无法访问办公OA资源。以此实现终端安全性的准入卡点。

03 四层网络准入与授权管控

为了保障终端上内网流量访问的安全性,降低流量被劫持、窃听的风险,同时实现四层流量的准入、访问管控。零信任客户端具备建立内网访问安全隧道的能力。通过TLS加密封装身份凭证与原始访问数据包至零信任四层网关。四层网关根据设备、身份凭证验证,与授权查询结果,来判断该流量是否转发至后端服务。该部分技术细节已在本系列的第一篇文章中叙述,在此不再赘述。

但由于办公网环境的复杂性、零信任四层网关的性能压力等原因,终端代理的流量范围需要根据不同场景进行区分。总体策略如下:

零信任客户端具备感知当前所处网络环境、可根据所处的不同网络环境进行相应的代理路由设置的能力。

当员工在外网办公时,零信任客户端进行所有公司内网网段的访问代理,由此实现外网环境下的无边界办公。

当员工在内网的办公网时,零信任客户端对内网网段进行选择性代理:

1、跨防火墙安全域访问时,进行网络代理:

根据本系列文章第一篇所叙述,在实现零信任之前,我们通过防火墙对公司内网网段进行了划分与隔离。公司内网划分为了办公、测试、预览、生产等不同级别的安全域。不同安全域之间不可以直接访问。

但在实际落地的过程中,产研同事存在跨网段的访问需求,如在办公环境中希望对预览环境的服务进行测试、调试等。在四层零信任落地前,我们通过防火墙临时开白满足这类需求。但防火墙只能基于五元组授权,不可对某资源(目的IP、端口、协议)进行基于人、组织、访问设备等细粒度的授权。随着零信任二期的零信任客户端、四层零信任网关的落地,通过配置四层零信任授权策略,实现了该细粒度的授权管控,取代了原来申请防火墙开白。

因此对于跨隔离网段的访问,我们需要进行代理,并通过四层零信任进行细粒度权限管控。

2、高数据敏感服务,需要进行网络代理:

访问高数据敏感性的服务,出于对数据安全保护,需要通过零信任终端进行流量访问代理,并根据配置的四层授权策略进行访问管控。当认证、授权均通过时方可以进行资源访问。

3、 办公网资源访问,不需要代理:

考虑到办公网环境的历史复杂性,访问办公网资源不需要代理。复杂性体现如:IT部门历史上对办公网进行的策略、性能优化,域控服务根据IP进行的域控配置等。如果用户处于办公网内办公,进行全内网网段的代理,则所有流量都会被代理至零信任网关,由此绕过了办公网环境,从而会覆盖办公网所做的历史上的性能优化等工作。因此不对该类流量进行代理。

04 便捷办公能力建设

在安全能力提升同时,也要兼顾用户的办公使用体验。为此对于零信任客户端我们做了如下便捷办公能力的建设。

1、零信任客户端、办公系统的登录态打通:

该建设以优化如下场景:用户在零信任客户端登录后,如访问需要SSO认证的Web办公系统,需要进行二次的用户登录,会降低用户体验。为此我们进行零信任客户端、办公系统的登录态打通工作,从而实现在零信任客户端登录一次,全网办公系统无需重复登录,将单点登录的节点前移至零信任客户端,客户端上进行登录态的统一存储、维护。具体如下图所示:

2、无边界办公能力:

通过终端四层隧道构建无边界办公能力,实现在外网可以在保证安全性、相比VPN更为精细的授权的情况下,更便捷地访问内网资源。

3、 零信任客户端的消息通道:

进行终端消息隧道的构建,通过消息通道实现服务端对零信任客户端的指令下发与错误提示消息的下发,主要应对如下场景: 用户通过浏览器进行七层零信任访问时,若当前服务无权限访问,可通过错误页来告知用户无法访问原因。但在落地四层流量管控后,用户访问目标资源失败时无法区分是网络不通、服务故障或是无权访问,且基于TCP、UDP协议无法通用性为用户返回错误信息。

如用户无权限访问某SSH服务器时,流量被前置的四层零信任客户端拦截,不会进行流量的转发,则用户无法感知不可访问的原因。我们通过消息隧道的方式,将出错信息通过消息隧道推送给对应的访问客户端,客户端通过气泡的方式,告知用户不可访问的原因,达到更好的体验效果。详细过程如下图所示:

05 可靠性

落地四层零信任后,零信任终端代理了办公网访问测试、预览、生产网络的流量,为了提升系统整体的可靠性,我们做了如下工作:

1、进行网关的内外网网关集群的划分:

将四层网关进行内外网集群的划分,当零信任客户端处于外网环境下连接外网集群,内网环境下连接内网集群。由此应对如下可能场景,如:外网四层网关被DDoS攻击时,可保证内网网关依旧可用,不影响内网用户通过零信任客户端访问资源。

2、立体监控、告警、降级:

对四层网关及周边服务,进行了立体的监控、告警、降级设计。实现多方面的可监控、可告警、可降级,如下图举例所示:

首先为了更加细致、全面的分析系统,我们对系统进行层级划分。对于四层网关服务,我们分为了应用层、服务层、数据层、系统层。而后对每层和核心业务功能、周边依赖进行枚举。如在四层网关程序本身的系统层,我们有访问流量认证、授权、流量转发的核心业务,在数据层网关有依赖的外部Redis缓存服务。

而后我们对这些枚举分析出的核心业务与核心依赖,进行立体监控的设计。这里所谓的立体性,即我们分别从用户视角与系统视角出发。

用户视角即从用户使用的角度出发,对系统的稳定性程度,进行立体感知。如对于应用层的认证核心业务,在用户视角上我们进行历史同比入网率、认证成功率的监控。当入网率、认证成功率同比骤降时进行监控告警,可先于用户发现问题。

系统视角即为大多数系统常见的稳定性监控指标,如数据库的出错、慢、超时、服务完全不可用,网关所在服务器的CPU使用率、内存、磁盘使用等情况进行告警监控。

对于可降级,我们首先需要识别系统整体对于某功能、依赖服务,是否是强依赖。强依赖表示该依赖不可降级,为主要核心业务。如对于四层网关的认证功能,即为出于安全性的强依赖,若功能失效或降级则所有人均可入网,对于该功能不可执行降级。对于弱依赖可制定相应的降级策略,如授权为弱依赖,当授权查询出现问题时,可接受降级为VPN级别的安全性,并执行相应的降级策略。

3、 零信任客户端错误日志上传分析:

前文所述的零信任客户端消息隧道,除了有服务端对客户端进行指令下发与出错消息推送的功能。同时具备客户端将错误上传至服务端进行汇总的功能。全网客户端可以通过消息隧道,将生成的错误日志上传至服务端,进行统一的全网客户端稳定性分析,如对于终端系统升级后,导致客户端组件无法兼容的问题,可实现早发现、早止损。

06 安全性

安全性作为安全产品的核心特性,我们进行了如下的细节设计:

1、 四层流量的认证:

对于四层零信任的用户的身份信息,我们在四层加密隧道中进行携带。同时通过密码学的方式实现一次一密的动态身份凭证。对于用户的每次入网访问,我们均会对身份凭证进行校验。

四层隧道封装格式如下图:

零信任客户端对用户身份凭证与原始流量加密封装至TLS Data中。零信任四层网关进行私有头部解析与原始数据包解析。从私有头部获取用户身份凭证,而后前往决策中心进行认证判断,若认证通过则保持加密隧道,否则中断用户连接。

2、 四层流量的授权:

相比于防火墙与VPN,四层零信任对四层流量的授权更为精细,示意图如下:

在四层零信任中,我们以服务的IP、端口、协议来定义唯一资源Resource,对该资源可以进行人、组织、IP、设备级别的授权管理。如上图最右侧我们存在三个OA资源,分别为OA1(IP_OA1, PORT_OA1, PROTO_OA1)、OA2(IP_OA2, PORT_OA2, PROTO_OA2)、OA3(IP_OA3, PORT_OA3, PROTO_OA3)。如上图所示,对于这三个OA资源,我们于图中的蓝框内制定了三条授权策略,如其中第一条:对OA1、OA2、OA3,需要用户UserA在设备DeviceA上访问。四层网关逐包解析私有头部、原始数据包获取人、设备、访问资源的信息,并将这些信息发往决策中心进行逐包授权查询,当授权通过后,方进行当前数据包的转发。

3、可审计性提升,原始IP的透传:

客户端的内网代理访问流量均需经过四层零信任网关的认证、授权、转发后才可以达到后端系统,但达到后端系统时,用于经过了四层零信任网关的NAT转换,后端系统接收到的源IP均为零信任网关的IP,无法获取客户端的真实IP。这会对审计溯源、四层与七层零信任的授权、风控打通带来极大不便利。为了解决该场景下的问题,我们尝试了如下方案:

1>   对网关NAT日志进行存储记录,但存在数据量庞大,无法有效关联的情况。

2>   采用ProxyProto的方案,该协议需要客户端与服务端均进行协议支持的改造。若存在未进行改造的后端服务,则会导致TCP握手失败,无法进行服务访问。由于历史等因素,公司服务采用云上、IDC等多种方式的混合部署,落地该方案存在改造量大、遗漏改造线上影响性较高等问题,作为安全基建服务并未采用该透传方案。

3>   采用TOA(TCP OPTION ADDRESS)方案。我们在零信任网关进行改包,将客户端原始IP根据协议格式封装至TCP OPTION中,后端服务加载的TOA插件即可获取网关封装好的原始IP。若后端服务未加载内核插件也不会影响访问连通性,更适用于公司内服务混合部署的复杂场景。且经压测后发现加载TOA插件的性能损耗不大,加载时流量抖动极低,我们最终采用该方案进行客户端原始IP的透传。

4、 梯度认证:

对于内网服务我们进行了分级治理、梯度认证防御,高敏感服务需要用户动态提升认证级别后才可以进行访问,以增强访问的安全性。我们根据服务的数据敏感等级、业务等级,进行访问该服务所需的安全等级建模,如下图所示:

根据数据敏感等级、业务等级确定的访问该服务所需的安全等级S(n),对于不同的安全等级,所需的认证方式如下:

如用户首先访问一个S1安全等级的后端业务,则通过静态用户名、密码的认证即可访问。若后续又访问了一个S4安全等级的后端业务,则零信任系统会跳转到登录页面,并需要用户通过网盾动态码的认证后才可以继续访问。

5、四七层持续风控、动态授权:

为了实现全方面的动态入网、授权管控。我们根据零信任的业务特性,建立了如下的风控机制:

在风控策略命中后,通过向零信任网关、零信任决策中心、零信任客户端下发对应的执行策略,实现对访问流量的禁止入网、新增梯度认证、授权撤销的效果。

详细策略举例如下:

07 性能优化

由于零信任四层网关承载办公网内四层流量传输的压力,同时需要进行数据包级别的认证、授权,因此面临着较大的性能压力挑战。为此我们进行逐隧道认证、逐子流授权的方式减轻授权查询压力:

零信任客户端通过TLS长连接的方式与零信任网关保持通信,并在该隧道中传输原始访问数据包。在长连接的生命周期内,我们仅需对长连接进行一次身份认证。但对于逐包的用户授权查询,必定带来较大性能消耗,因此我们采用多级缓存+逐隧道中子流的方式进行授权优化,如下图所示:

当多级缓存中存在该用户的目标资源授权结果,则不去重复查询策略中心,降低授权查询次数,从而实现将包的授权维度,降低至逐子流的授权维度。


结语

经过二期零信任安全网络建设,我们实现了终端的安全性可感知、终端安全基线可控、基于风控的动态授权、更完善的无边界办公能力。在后续落地使用的逐步深入过程中,必定会发现新的场景与问题,这会是一项艰难且长期的工作。

 本文作为我们在一期实际落地后,遇到的新场景、新问题的一些总结与思考记录,希望同大家分享起到抛砖引玉的作用,共同探讨零信任的建设方法,实际深入落地过程中遇到的难点与困难。

更多精彩

● 扫码关注我们

我知道你在看


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

[广告]赞助链接:

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

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