“网络安全需要的是集中统一编排、研判和处置,而数据通信的环境现在却越来越碎片化,两者的发展趋势一个向左、一个向右,而我们依然还想在同一个网络平面上试图同时解决两个方向截然相反的问题。这导致大部分网络防御手段的安全能力被锁死,往上提升的空间已经没有多少了。”
01 碎片化网络带来的挑战
任何一款有价值、有意义的产品,一定是满足了某些特定需求,或是解决了某些特定问题。做产品就是要找到这种最本质、最核心的问题,也就是我们通常说的0到1的问题。所以,当我们起心动念要去定义一个跟零信任相关的安全产品时,就先得想清楚我们到底要解决什么核心问题?满足什么核心需求?
随着云计算、移动互联网、物联网、5G等基础技术的革新,政府和企业的办公网、生产网都出现了巨大变化——网络越来越碎片化了。一个企业同时使用多个云服务、多个数据中心、多个办公职场已经非常普遍,再加上移动办公、分支机构、渠道合作伙伴远程协同,远程连接业务资源,这让我们的办公网、生产网变得越来越像是一个私有的互联网。
在碎片化网络里,网络通信本不是问题,有很多技术和方法都可以实现,但安全治理却出现了很多新的挑战。
1、暴露面越来越多:网络逐渐碎片化,意味着需要通过不可信网络进行数据传输的网络通道就越来越多,导致了不可信网络的暴露面增多,攻击者可用来渗透的入口也持续增多。
2、统一安全管控变得更难:大多数企业都有自己的集中身份管理、单点登录系统等等,有些对安全有更高要求的企业还有终端DLP系统、终端集中管控系统、统一威胁分析系统、态势感知系统。在碎片化网络中如果想全局统一进行管控,就需要让这些系统跟每一个独立网络都能通信,要让所有分布在各个网络碎片中的终端可以访问这些系统,把各类安全数据发送到这些系统上来,以及从中心系统把安全策略分发到每个网络碎片中去,这势必又要把这些系统暴露在外。这样虽然实现了统一管控,但暴露面又增加了,安全风险也与日俱增。
在碎片化的网络里,统一管控和减少暴露面怎么才能共存?这是个很大的挑战。
3、网络IP地址与人的关联越来越弱:现在的网络环境越来越繁杂,在碎片化的网络中使用了大量的IP地址转换和动态IP技术,网络地址跟人或终端的关联性越来越弱,这让原来的网络安全产品的实际效果大不如前。安全的本质问题是人的问题,但传统的网络安全产品大多基于网络流量进行威胁检测和阻断,IP地址现在跟人和终端没有关联,即便是检测到了威胁,仅仅凭借一个源IP,即找不到真正有恶意企图的人,又不敢直接封禁IP,因为没准这一封禁,就把一群人都封禁了。
内网互联网化的过程中,暴露面问题、统一管控问题、网络地址与人无关问题,是最硬核的需要解决的三个问题。
02 我们距离零信任还有多远?
零信任是一套安全原则,给出了一个安全网络应该具备的特性,比如:隔离、隐藏、白名单模式、以身份为中心的策略、最小授权、动态信任等等,让安全回归到人和数据本质。按照这套原则,理论上是已经解决了上述三个问题。但零信任概念里并没有一个标准的实现方法,这就是零信任让大家觉得非常认可,但又非常困惑的原因,也是零信任市场目前特别热闹的原因。
典型的企业安全接入方案
大部分企业在网络安全接入方面采用的都是这样一套全家桶方案:终端准入+VPN+IAM+SSO+堡垒机(或应用网关)+防火墙+专线+威胁分析系统,IAM分别与准入、VPN、SSO、堡垒机打通,用统一身份进行认证授权。通常已经上了安全接入全家桶方案的企业,往往对零信任的理解更加容易困惑,为什么已经全副武装了还要搞零信任?
如果我们要找到产品的意义,就不能假设客户环境中什么安全措施都没有,而是需要思考在这种“全副武装”的环境下,我们离零信任还有多远,找到这个差距,也就找到了产品存在的价值。
首当其冲是暴露面问题,很明显VPN就是一个典型的互联网暴露面,近几年VPN的0day漏洞层出不穷,成为了攻击热点。但我们说的暴露面不仅仅是互联网暴露面,而是指不可信网络的暴露面,这里还包括内网中的暴露面,内网中的暴露面问题就更多了。
在网络上,访问控制一般分成两层来管控,一个是应用层,我们可以通过IAM、SSO、堡垒机或应用网关,基于用户统一身份进行访问控制和审计;另一个是网络层,一般通过防火墙进行访问控制,通过流量日志进行审计。
这其中有个明显的问题,虽然应用层我们可以用统一身份进行管控和审计,但网络层我们只能基于网络数据包来进行管控和审计,众所周知,网络协议是不带身份的,零信任中以身份为中心的原则在这里出现了断层。攻击者一旦进入内网,不能指望他按照我们设计的那样通过IAM、SSO、堡垒机,用正常流程来访问业务资源,并且只在应用层进行攻击。攻击者完全可以在网络层对所有网络可达的业务资源或终端进行攻击,比如直接攻击IAM、SSO等等,没有任何阻拦。
我们已经部署的各种威胁检测系统,如:SOC、SIEM、态势感知等等,它们不能保障网络的安全吗?很可惜,这些系统会遇到IP地址与身份无关的问题,无论是模式匹配、上下文分析、行为基线分析、威胁情报分析、威胁溯源,都只能基于IP地址来做,基于IP的行为数据只代表了一个人的行为片段,无法代表一个人的完整行为,所以在这种环境下安全分析能力会大打折扣。另外,即便分析出来某个IP有威胁,怎么封禁?封了这个IP,攻击者下次更换一个IP还是一样进来。
问题还可能变得更复杂,上图所示的网络中,所有人在访问业务资源之前都先接入到总部职场的办公网中,通过这种牺牲带宽和体验的方式强制所有人在访问业务的时候都先经过统一身份认证和授权,同时确保认证系统不在互联网暴露。假设有多个职场,每个职场也有自己的业务资源,部署在不同的地方,业务访问是在多职场之间,多方向同时进行。要让所有人都能使用统一的身份和管控策略,我们就不得不把IAM、SSO这些系统都放到互联网上才行,但这又会产生新的暴露面。
绎云的一个客户,非常关心敏感数据流出的问题,在每个终端上都部署了DLP客户端,原来都在局域网内使用,可以通过网络准入系统强制要求入网时DLP客户端必须开启,DLP日志服务器也部署在局域网内,能采集到的所有终端的DLP日志。疫情期间,员工都居家办公了,远程接入,网络准入系统失效,怎么才能让员工在任何地方都必须开启DLP?同时还能在不暴露DLP日志服务器的前提下,让分布在任意地方的终端把DLP日志实时传到日志服务器上?
很显然,客户对网络准入的需求已经发生了转变,客户现在需要的是场景准入,而不再是物理网络准入。当访问互联网时,员工在任意地点都能随时访问,当访问业务资源时,无论在哪都必须符合安全要求,经过认证授权才可访问。
03 实现零信任的关键技术问题
可见,要实现零信任,在技术层必须解决两个核心问题:
1. 在网络上,需要同时满足网络碎片化、统一安全管控和分析以及网络零暴露。
2. 网络层也需要身份化,要以统一身份为核心打通认证、授权、接入、网络层访问控制、应用层访问控制、用户行为分析、敏感数据访问审计、威胁场景化分析、帐号终端实时处置全过程。
先来看看第一个问题。现在我们面临的是一个既要在物理网络上碎片化,又在安全策略编排上集中化的问题。什么技术能实现与物理位置无关、同时又能集中编排?——云计算。
用云的思维解决物理位置无关和集中管控问题
云的本质是虚拟化,是一种通过虚拟化实现资源共享的技术。云把多个位于不同物理位置的服务器虚拟化,构建在一个Overlay网络中,租户在这个Overlay网络中集中对资源进行编排,但实际业务分布在不同的物理服务器上,数据传输也实际在物理网络中传输。对于租户而言,无需再考虑物理资源和物理网络。
我们对云的理解太狭隘了,云一定是在远端吗?云一定都是服务资源的虚拟化吗?PC端、手机端、物联网终端不能是云的一部分吗?云不能无处不在吗?我们自己不能身在云中吗?
按照这个思路,我们可以把虚拟化的范围再扩大一下,不仅仅是把IDC的服务器资源云化,而是把分布在各种云上、IDC、自建机房的业务资源,以及在任意位置PC端、手机端都云化,构建在一个Overlay网络中,那会是个什么景象?这样的方式使得所有终端、所有业务资源的物理位置已经不再重要,传统的内网已经被云化了。
云化后的内网会变成一个与物理位置无关,极简的端到端网络,在这个网络里我们只聚焦跟安全相关的三个对象:人、终端、业务,所有策略、分析研判都基于这三个关键对象来制定和执行。
端到端的极简网络
终端是人的延伸,一个具体的人和一个具体的终端构成一个网络实体。这个网络里存在三种通信关系:人与业务、业务与业务、人与人。(我们需要认识到,在网络中访问方向不是“十”字型,而是“工”字型,东西向流量有两种方式,即人与人、业务与业务两种方式。)
这些关系的编排就是授权策略,统一在控制中心进行授权编排和细粒度策略实时计算,细粒度策略实时分发到端和业务侧,用分布式策略引擎来执行。
内网互联网化与集中管控共存的问题解决了,我们构造的云化网络可以跨越整个互联网,连接任何位置的业务资源和终端,同时可以集中统一的对策略进行编排。
接下来,我们再看看如何将这个网络打造成私有的隐匿网络。
在SDP的架构里实现网络隐身使用的是SPA单包授权技术,这是一种在会话建立前通过一个UDP单向包来实现身份验证和会话开关的技术,也是SDP最关键的技术。
在我们构建的网络里实现隐身,可以做到比SDP更彻底、更简洁一些,因为我们在网络层、应用层都是完全可控的,没必要一定在上层来实现隐身,完全可以在更底层来实现。
在网络层实现网络隐身不是什么新鲜事,几乎每个人每天都可以接触到,例如:每个人家里的家庭网络就是个隐匿网络,我们每个人家里都有个家庭路由器,家里的电脑、电视都是通过这个路由器接入互联网,但是我们不用担心有人会从互联网主动连接到家里的电脑或者电视上,因为我们并没有在路由器上开放任何内部IP地址和端口,这是个单向访问网络。那用同样的方式,我们把原来开放的IP和端口停掉,把业务资源所在的业务局域网也都改造成这样的单向访问网络,不就实现了网络层的隐身吗?而且这种隐身方式更为彻底,不光是业务资源隐藏起来了,零信任控制器、零信任网关都隐藏起来了,不光是应用层隐藏了,网络层也隐藏了。
另外,SPA又被称为敲门协议,每次听到“敲门协议”都会让我想到一个画面:一个小伙,在家里吃着火锅唱着歌,突然听到一阵敲门声,跑到门口从猫眼里看到一个人畜无害的小姑娘,她说:“物业的,查水表!”于是,小伙把门打开了。突然两侧冲出来数个大汉,瞬间把这个小伙死死地摁倒在地上。
不是说好了要“永远不信任,始终在验证”吗?
既然在TLS会话建立过程中,可以通过一个UDP单向包来实现身份验证和会话开关,那我们不如再彻底一点,把所有业务访问数据包都改造成UDP单向包,使用逐包认证、逐包加密的方式来实现网络隐藏,让未经过认证授权的终端,连三次握手的SYN包都发不过来。
对,小姑娘可以进来,大汉们必须全堵在门外。
这样第一个问题就解决了,再来看看如何破解第二个问题。
上文提到,对于政府和企业的办公网、业务网来说,统一身份管理并不缺,网络准入、VPN接入、应用层的访问控制已经可以实现用统一身份进行管控,但网络层基于统一身份的访问控制是缺失的,零信任原则里以身份为中心的访问管控在网络层出现了断层,而原因就是因为网络协议本身都不带身份属性。
绎云的解决方法非常简单粗暴,但是很高效,我们直接在所有网络层数据包都上加上了身份信息,让网络五元组变成网络六元组,在网络层每一个数据包里都增加一个身份的维度。
降维打击分两种,一种是让对手降低维度,另一种是自己升高维度。既然我们无法让攻击者降维,那我们就在网络底层给自己升维。
这也就意味着,在这个能覆盖全球的网络的任何一个位置,我们都能看到是什么人、用什么终端、对什么业务、收发了什么数据包。也就是说,在网络上任意一个点都可以基于帐号、终端、业务进行权限控制和行为干预。
通过这种升维,基于身份的全链路管控能力就都有了,实现零信任的各种安全原则,就有了一个身份化的网络基础设施。
网络流量包含了所有人对业务和数据的访问行为,所以我们都想通过网络流量来捕获到所有威胁行为,但通过网络数据进行威胁分析存在两个不足:
1. 网络数据包不带身份信息,所以通过网络流量不可能做到真正基于人或者终端的行为分析,无论是上下文关联,还是用机器学习的方式找到人的行为基线,几乎都不可能。
这个问题绎云通过在网络数据包上加上身份信息的方式已经解决了。我们从网络上捕获到的流量日志无论是网络层还是应用层都会带上身份信息。这样所有采集到的数据都天然基于身份做了聚合,然后再基于这些聚合后的信息进行基于人或终端的行为分析,不需要关心源IP是什么,所有分析结果都可溯源到人和端。
2、 业务资源可能会在应用层加密,在网络流量上看到的是加密后的数据,无法识别具体内容。在某些场景下可以用应用网关,用ssl证书对流量进行卸载,虽可以做一些内容识别,但是交付复杂,识别率也差强人意。
这个问题,我们通过用浏览器解决。我们在终端Agent上内置一个安全浏览器,可以设置策略,要求终端用户必须用内置浏览器访问一些特殊业务资源,禁止用其他浏览器访问。浏览器是人与数据交互的末端,浏览器里全是明文信息,通过浏览器识别敏感数据可以无视所有网络加密手段,因为人总是要用明文进行信息传递的(用密文传递信息的人是无间道、是余则成,这里不做讨论)。
通过这种方式我们可以轻松了解到:谁、用什么终端、在哪、访问了什么业务资源、看到了什么敏感数据,反过来也能看到都有哪些敏感数据,都存储在在哪些业务系统上,它们的整个数据流动过程是怎样的。然后基于这些基础数据,结合机器学习算法,识别异常的敏感数据访问行为。
举个例子:某企业全国有上百个销售渠道,上千销售人员每天都在使用CRM和工单系统销售企业的产品或服务,销售员需要录入客户的手机号、姓名、银行账号这些个人隐私信息。通过刚才说的方式,我们可以看到每个人都在哪、什么时间段、通过什么方式、访问了哪些数据、访问频率以及数据量都是多少,然后用机器学习算法,计算每个人的敏感数据访问行为基线。当某个销售员某天对敏感数据的访问行为发生较大偏差时,比如:对于销售员来说日常写入敏感数据比较多,突然有一天他的读取敏感数据的行为增加了,或者说对某单一类型数据访问量过大,系统会自动让这个帐号暂时退出网络,对终端和人进行多因素的二次身份校验,再次确认身份;或者直接禁用这个帐号,那这个帐号无论在什么地方,使用什么终端,都无法再访问这个业务资源。
04 安全云网能力结构
讲到这里,产品的功能架构基本就清晰了,如下图,这就是整个安全云网的功能结构。
从能力分层上,至下而上分为四层:
1、底层是一套基于SDN技术的端到端隐匿网络。让业务资源和终端摆脱物理网络限制,让内网互联网化,构建一个跨多个网络的隐匿内网,同时让网络层数据包具备身份维度,可以基于身份在任意网络节点进行管控或者行为捕获,为上层能力提供基础支撑;
2、第二层是安全接入和控制层。这一层遵循零信任原则来设计,用身份打通任意位置入网、网络层控制、应用层控制,细粒度授权、动态授权等等零信任相关的能力,同时开放各种接口,对接已建的安全系统。(BTW:安全云网不是一种零信任产品,而是一种符合零信任安全原则的云化安全网络,未来所有安全产品都会依据自身定位,多多少少地满足零信任安全原则,不存在独立的零信任产品)
3、第三层是威胁检测层。这里利用云网数据包身份化的优势,汇集各种带有身份的数据,以人、端为中心对数据进行聚合,同时利用机器学习算法对异常行为、威胁行为进行研判、验证和处置;
4、第四层是智能化运营层。云化网络也好,零信任也好,威胁检测也好,都不是安全的最终目标。安全不是一个功能,不是一种状态,而是一个持续且有周期的运营过程,智能化运营层就是在构建这样一个自适应安全运营过程。在这一层里我们整合下面每一层的能力,让我们对整个网络具备全面感知、全面管控的能力,对每一个网络实体进行实时的安全风险评估,基于威胁场景自动化的对各类数据进行关联、溯源和研判。”
05 部署案例
这样一整套安全云网,看起来功能不少,但如果构建这么一个安全云网需要中断业务、需要改造应用、需要冒着风险,这套方案也就失去了实际应用的意义。
选择用Overlay的方式构建云化网络的主要目的就是要让安全运营与数据通信彻底分离。网络安全需要的是集中统一编排、研判和处置,而数据通信的环境现在却越来越碎片化,这两者的发展趋势一个向左、一个向右,而我们非得在同一个网络平面上把他们俩凑一块,就会出现各种各样的问题。大部分的网络安全设备正是因为这个原因,导致安全能力被锁死,再往上提升的空间已经没有多少。
通过构建一个全新的云化网络,在虚拟网络里做安全的事情,在物理网络上做数据通信的事情,这就是信域安全云网。
以下是一个部署案例:
这是一个相对比较大的网络,接近一万员工、上千业务资源、多个云、多个数据中心、多个异地职场。全网采用高可用多活架构设计:控制平台异地高可用集群,在两个数据中心同时为所有终端用户服务,每个物理区域都部署多个网关,每个业务资源同时由多个网关代理接入云网,终端根据链路质量自动选择最优路径。
整个云化网络构建耗时也就两三个小时,并且是在工作日办公时间完成部署,业务毫无感知。
云化网络除了可以轻松突破物理位置限制、改造底层协议、编排所有策略,还可以轻松实现对业务无感知、全网高可用、弹性、交付简单等等,基本上云的优势全都继承过来了。
06 对网络的认知需要升级了!
在过往的认知里,网络就是由各种网线光纤、路由器、交换机、防火墙构建成的网状的数据通道,就像高速公路一样将不同的服务器、终端连接在一起,完成数据的流通,在流动中让数据产生价值。
未来的网络需要面对业务互联网化的趋势,需要突破物理网络限制,随时随地可以安全接入,同时它应该是个身份化的隐匿网络,能开放地对接各种安全能力,甚至为其他安全能力赋能,是持续安全运营的安全网络底座。
未来的网络会进化成一个智能的分布式生命体,网线光纤、路由器、交换机组成了这个生命体的骨架和脉络。每一个终端、每一个资源就像是这个生命体的神经元,承载了人的意识和有价值的数据。集中的控制中心就像小脑,用策略控制整个网络的数据流通,以及对每个网络实体的实时响应。分析中心就像大脑,通过每一个神经元感知整个网络世界的所有活动,具备场景化的研判和处置逻辑,自动发现这个网络世界里存在的异常和威胁,自动生成响应策略,并向控制中心发出指令,对异常或威胁点实时处置。