本篇是安全思维模型解读谷歌零信任安全架构系列文章,其它文章将陆续推出。
本篇: 安全设计视角解读 BeyondCorp 项目; 第二篇: 安全运营视角解读 BeyondCorp 项目; 第三篇: 安全产业视角解读零信任安全体系的落地。
迄今为止,绝大多数企业都还是以防火墙为基础划分出企业内网和公众网络的边界,并基于此构建安全体系。出差员工或者分支机构通过V**接入企业内网。Google公司在2011年之前也是如此。正是2009年的APT攻击“极光行动”推动Google重新搭建整体安全架构,从而诞生了BeyondCorp项目。
更为普遍的情况是,几乎所有网络安全事故的调查都指出,黑客曾长期潜伏在受害企业内网,利用内部系统漏洞和管理缺陷逐步获得高级权限;另一方面,内部人员的误操作和恶意破坏一直是企业安全的巨大挑战,长期以来都没有好的解决方案。传统看法认为企业内网是可信区域的是站不住脚的。
BeyondCorp实际上是抛弃了对本地内网的信任,进而提出了一个新的方案,取代基于网络边界构筑安全体系的传统做法。
在这个新方案中,Google对外部公共网络和本地网络的设备在默认情况下都不会授予任何特权。用户无论在哪里(出差、google大楼,全球其它分支机构等),必须:
1、使用由公司提供的“受管理设备”; 2、通过用户身份认证; 3、且符合“访问控制引擎”中的策略要求; 4、通过专门的“访问代理”,不可绕过。
才能访问特定的公司内部资源。相应的,为了保证用户获得流畅的资源访问体验,Google主要完成了:
1、准确识别设备,每台设备颁发唯一数字证书,通过“设备库存数据库”维护设备清单; 2、准确识别用户,每个用户分配唯一身份ID,通过“用户/组数据库”维护用户身份清单; 3、通过面向互联网的访问代理提供内部应用(每个应用都分配域名)和工作流; 4、实现基于已知设备和用户的访问控制,并动态更新设备和用户信息。
思维模型一:C I A Triad原则
我们先来看一个比较简单的思维模型,CIA Triad原则就是一切的攻防手段都是围绕着保密性(C)、完整性(I)、可用性(A)三原则展开的。
保密性:【保密性实际上是它的本质就是信息越界】这个边界实际上是有两类:一:时间边界;二:空间边界。时间边界就是说还没到那个时间点,他提前给放出来。比方说我们说高考试卷,每年的高考语文试卷不到6月7号上午9点,九点之前你弄出来了,这就是一个重大的泄密。再说空间边界,这个信息从你的内网跑到外网去了,从本来是只能张三李四知道是变成了王五知道。这就是一个跨越了空间的边界,信息它跨越了非授权、非受控的空间边界,它就是一种信息的泄密,保密性遭受破坏。
完整性:【完整性是指信息的它原本的状态,系统的原本的结构和组成】如果说这信息它原本的状态发生了变化,它比方说从1变成了2,它的组成是从无到有或是结构要素的位置发生了变化、或比例发生了变化,这导致了完整性遭受破坏。
可用性:这一点比较好理解,就是【我需要的时候,这个系统或信息能够去在合理的时间之内获得,就是可用性】这就是所谓的我们说的CIA这个模型上,CIA定义的有DAD模型,所有的这些工坊都是围绕CIA展开的,后面我会我们会看到CIA是怎么来运用。
思维模型二:访问控制模型
下面我们再来看这个访问控制模型,就是一切的控制手段,都是围绕主体、客体、信息流三个要素展开。
大部分的攻击最终都是为了获取相关权限,很多手段都是围绕去获取受害者的身份信息和验证信息(比如密码)。
这个模型当中,发起访问的一方就是访问主体,被访问的那方就叫做客体。整个访问就会产生信息流。在任何一个访问控制系统中,都包含以下四个行为:
身份标示:访问主体在一个确定边界的系统范围被给予唯一的标示,解决你是谁的问题; 身份验证:对访问主体需要做基本的身份验证,解决你宣称就是谁谁谁的问题。 授权:用户身份验证通过后,需要确定用户可以访问哪些资源,以及对资源进行怎样的操作(读、写、删除等)。解决用户能做什么的问题。 审计:对用户的访问行为都记录在案,以备事后追责或改进系统。
非常复杂的访问控制系统都是在此基础上构建的。主要通两类手段,我称之为在三个要素的基础上面加了两副眼镜。一个叫做望远镜,一个叫做放大镜。
望远镜:望远镜能看的更宽,它是增加访问者更多的环境的信息,比如登陆时间、地点以及登录设备状态等。 放大镜:放大镜能看的更细,加大了信息流的粒度的控制,比方说下一代防火墙,在五元组的基础上,基于应用的来进行控制,不仅仅要看ip,端口和协议,还是要具体的操作码。
这一切的手段,都是围绕着主体、客体和信息流三个基本要素以及身份标示、身份认证、授权和审计四个行为展开的。
思维模型三:边界与隔离模型
边界和隔离是安全防御的第一手段;
与美国边界的隔离墙。无论是我们所说远古的长城还是到现在的墨西哥和美国边境之间的隔离墙,边界和隔离都是非常有效的一种最古老、最朴素的技术手段,到现在还在运用。划定边界,以界隔离,大道至简。
接下来看一个相对来说比较复杂的一个事情。用安全思维模型来分析它,是否可以帮助我们更清楚地去看明白?
下面就要用安全思维模型来分析零信任安全体系,只从纯技术角度去分析零信任安全体系,不谈零信任安全体系的部署和实施,也不谈实现零信任安全防护体系的产品节奏。也即抛开运营视角和产品视角,只从安全设计的视角去看零信任安全体系。
对于复杂问题,我们一般会依照定义问题、模块思维和问题解构三个相互依赖、彼此促进的方法。定义问题给问题解构和模块思维输出问题的边界;问题解构给定义问题和模块思维输出问题拆分的结果;模块思维给定义问题和问题解构输出模块参考。这三者一般先从定义问题开始,但是也不存在绝对的先后关系。
讲了这样一种方法之后,接下来我们回来零信任体系。首先定义问题,设置问题的边界:任何时间任何位置,设备和用户都是不可信任的,只有经过安全状态检测的设备以及使用该设备且经过身份验证的用户才可以依照企业既定的安全策略访问企业的资源。这个问题定义其实基于以下几个重要的安全假设:
1、设备存在未公开的漏洞; 2、设备存在已知漏洞但是没有及时打上补丁; 3、人可能会犯错误,导致帐号、密码等敏感信息丢失;
基于这三个重要的假设,我们接下来看整个零信任安全体系,它可能够适用的安全思维模型有:
1、CIATriad原则; 2、访问控制的三要素模型; 3、边界与隔离安全模型;
初步的问题解构可以把问题拆成以下三个:
1、设备与用户的身份定义以及安全状态感知; 2、业务系统访问(层级/角色)分解; 3、访问控制引擎不过绕过;
可以看得出来,零信任安全架构体系主要是跟访问控制模型相关。下面我们就套用访问控制模型来解读零信息安全架构。
访问主体包括设备和用户,不再是以前单纯只看用户。访问主体涉及两个基本问题,一个是身份标示和身份认证。唯一的身份标示意味着需要设备和用户注册并持续维护着设备清单库和用户/组数据库;BeyondCorp项目中,使用公钥证书唯一标示设备身份,用户使用唯一身份ID来标示身份,在Google所有服务上都使用这唯一id。设备的身份认证通过自身私钥签发数字签名,由对端系统(访问代理)利用设备的身份证书验证其签名来验证设备的身份。用户的身份认证可以根据要求,进行一次身份认证甚至二次身份认证。
访问客体包括google所有的业务服务器,比如代码库,Bug追踪库等。访问主体与客体是边界隔离的,用户不可直接访问这些资源;
接下来是访问授权。授权相对是最复杂的地方,基本上看三个要素,访问主体的属性和操作,访问客体的属性以及授权策略。另外,访问授权暗含的要求是所有的访问都必须经过访问控制器授权之后才可以访问应用系统或其它资源,这意味着访问授权控制是不可被绕过的。复杂的授权可以基于这三个要素构建细粒度的、动态的授权机制。如下图所示。
BeyondCorp项目中访问主体的属性则包括设备和用户相关的属性。设备的属性信息提供则是由“设备清单服务”完成。访问客体的属性主要包括各种应用、网络设备等资源的信任层级。BeyondCorp对用户的每一次请求都会实时依照访问策略和访问主客体的属性做出授权决策。
基于前面的三个安全假设,需要评估且持续的评估设备和用户的安全状态,这是“望远镜”做的事情。设备的安全状态主要由“设备清单服务”提供。如下图所示:
这个服务核心通过漏洞扫描系统依照设备清单不断获取设备的漏洞补丁情况以及其它设备配置基线情况。
访问控制引擎不可绕过主要外化所有应用和工作流,也即谷歌的所有企业应用都分配唯一域名,在公共DNS上注册。同时把所有的应用域名解释首先指向“访问代理”,在逻辑上控制所有的访问不过绕过访问控制引擎。
运用模块化思维,Google零信任安全体系从技术层面上来看,就是这么简单。运用CIA Triad原则,边界与隔离模型,特别是访问控制模型,从底层上解构了零信任安全体系。
*本文作者:夏石信息安全,转载请注明来自FreeBuf.COM