【零信任】BeyondCorp:谷歌是怎么做甲方安全的
2021-04-14
来源: 白话零信任
谷歌是世界上技术最牛的公司之一。谷歌内部的网络安全体系BeyondCorp是安全领域最知名的安全架构之一。对于学习者来说,非常幸运的是,谷歌没有把BeyondCorp当做秘密藏起来,而是发了6篇论文,事无巨细地介绍了BeyondCorp的技术架构、资源配置、如何一步步上线、怎么给员工培训……基本上,这6篇论文可以当做企业实施零信任的傻瓜式教程了。
我就是做零信任的,我设计产品的时候,常常会借鉴BeyondCorp的理念。我在实施项目的时候,也常常会碰到BeyondCorp团队碰到过的问题。下面就是我对这BeyondCorp 6篇论文做的一次总结,也是对这几年辛苦日子的一个纪念。
1、BeyondCorp的诞生
为什么谷歌会搞BeyondCorp呢?
因为谷歌在2009年曾经受到过一次可能源自中国的严重网络攻击“极光行动”。谷歌的一名员工点击了即时消息中的一条恶意链接,最后引发了一系列事件导致这个搜索引擎巨人的网络被渗入数月,并且造成各种系统的数据被窃取。
事后谷歌对安全事故进行了全面调查。结果几乎所有调查报告都指出,黑客在完成攻击之前,甚至之后,曾长期潜伏在企业内网,利用内部系统漏洞和管理缺陷逐步获得高级权限,最终窃取数据。
分析调查结果,谷歌发现了自身存在一个严重的问题——对来自内网的攻击防护太薄弱。
做BeyondCorp之前,谷歌与大多数企业一样,都是以防火墙为基础划分出企业内网和公众网络的边界,并基于此构建安全体系。企业内网被认为是可信的,为了便于开展日常工作,通常都不会对员工在内网中访问各种资源设置严格限制。如果员工出差或在家办公而只能使用公共网络,则需要先使用VPN接入企业内网;如果员工要使用手机等移动设备办公,也需要先配置VPN才能使用内网办公资源。
谷歌的经验证明了这种做法是错误的。
这种做法的问题在于一旦边界被突破,攻击者可以畅通无阻地访问企业的内部特权网络。
随着应用上云、移动办公的流行,以及APT攻击的泛滥,边界的防护变得越来越难。例如谷歌遇到的极光行动,例如这两年的勒索病毒……来自内部的攻击事件已经成为大概率事件。内部威胁成为最严重的威胁。
那么,要怎么防护内部威胁呢?谷歌的答案是——BeyondCorp。
2、BeyondCorp的架构
下图是BeyondCorp架构的主要组件。各组件之间相互作用,保证——只有通过严格认证的设备和用户才能被授权访问需要的企业应用。
从图中可以看出BeyondCorp的几个特点:
(1)谷歌大楼的内网是无特权网络。谷歌员工插上公司网线或连上wifi之后,只能连接互联网和有限的基础设施服务(如DNS、DHCP、NTP)。不能直接连公司内部的业务系统。而且员工进行802.1x认证之后才能连上内网。
(2)无论用户身在谷歌大楼的内网,还是咖啡馆公共网络,要连公司的内部系统的话,都要通过“访问代理”的验证,才能访问。访问代理是面向互联网的。
(2.1)访问代理会验证用户的身份。用户通过单点登录系统(SSO)的双因子认证来验证身份。外化的单点登录系统起到了一层防骚扰的作用,没有通过身份验证的人只能看到访问代理,看不到后面的业务系统。
(2.2)访问代理会验证用户的设备。只有企业采购并妥善管理的受控设备才能连接访问代理。谷歌公司的设备通常会禁止用户乱装软件,自动更新安全补丁和病毒库。
(2.3)访问控制引擎持续给用户的信任等级打分。等级保持在“高级”的用户才能通过访问代理。例如,一个未安装最新操作系统补丁的设备,其信任等级可能会被降低。一个从新位置访问应用的用户,其信任等级可能会被降低。而且用户的等级是基于每个访问请求随时改变的。用户一旦做了可疑操作会被立即降低信任等级。(信任等级的判断是BeyondCorp中的核心,以后可以单开一篇文章来讲)(2.4)用户授权判定也往往参考用户身份和设备的信任等级。例如,可以限制只有全职工程师、且使用工程设备才可以登录谷歌的缺陷跟踪系统;限制只有财务部门的全职员工使用受控设备才可以访问财务系统。
(3)一切检测都通过之后,访问代理会将用户请求转发给后面的业务系统。客户端和应用之间的流量被强制加密。访问代理还提供负载平衡、应用健康检查和DDoS防护等等功能。
3、用户访问流程
codereview.corp.google.com是谷歌工程师审核代码用的系统。下面就以codereview网站为例,看看BeyondCorp体系是如何配置的,员工是如何使用的。
(1)首先配DNS。把codereview网站的域名在公共 DNS 中注册,CNAME 指向访问代理。用户访问该域名时会连接到访问代理上。
(2)配置访问控制规则。例如,限制只有最高信任等级的受控设备可以访问、限制只有最高信任等级的全职和兼职工程师可以访问。
(3)一位出差的工程师小明使用谷歌配发的笔记本电脑,接入机场的wifi,不用VPN,直接访问企业内网。(如果小明身在内网,则电脑需与 RADIUS 服务器进行 802.1x 握手,并获取设备证书。)(4)小明访问请求指向访问代理,笔记本电脑提供设备证书。
(5)访问代理无法识别小明的身份,重定向到单点登录系统。
(6)小明提供双因素认证凭据,由单点登录系统进行身份认证,颁发令牌,并重定向回访问代理。
(7)访问代理现在持有小明的设备证书和单点登录令牌。
(8)访问控制引擎进行授权检查:确认小明是工程组成员、设备信任等级是高级、设备在受控列表中。
(9)如果所有检查通过,则小明的请求被转发到一个某个应用后端获取服务。
(10)小明可以正常访问内网系统了。但是每次访问行为都受到监控,一旦发现异常,小明的电脑会被立即隔离,或者触发二次认证。
4、BeyondCorp的好处
BeyondCorp增强了企业对抗内部威胁的能力,持续检测用户可信级别,只允许合法设备连接内网。具体来说BeyondCorp零信任安全可以提升对抗以下10大威胁的能力。
5、实施过程
谷歌2011年开始实施BeyondCorp,逐步推广,2017年全公司都在使用BeyondCorp办公。用6年时间,在不干扰用户的情况下,完成如此大规模的任务,项目实施非常成功。6年时间积攒的实施经验可能比BeyondCorp架构本身更加宝贵。
BeyondCorp团队是如何得到管理层、公司其他部门的支持的呢?
(1)管理层:人人都恨VPN,推广BeyondCorp的一个重要理由是——摆脱VPN,经过身份认证的远程用户可以直接访问企业 Web 应用。向管理层证明,由此产生的生产力提升可以轻松超过BeyondCorp的实施成本。
(2)业务部门:把推广的动机、基本原理、威胁模型以及所需成本形成文档。然后,向每一个业务部门解释迁移过程的价值和必要性。高度透明和对标准的清晰解释帮助加深了与干系人的共识。让他们充分参与到愿景及目标的规划中。
(3)关键负责人:争取到关键领域负责人的支持:安全、身份、网络、访问控制、客户端和服务器平台软件、关键业务应用程序服务,以及第三方合作伙伴或IT外包等等。让负责人梳理和确定各领域专家,获得其承诺,并确保他们投入时间和精力。
(4)保持沟通:高层领导、团队负责人和其他参与者会通过在线文档、邮件组和定期会议(面对面的和远程的)联系,始终保持对当前进展和项目状态的了解。
(5)组织内部宣传活动来提高大家对 BeyondCorp 的认识,比如推出了电脑贴纸、标识和口号,还在办公室张贴随处可见的文章。
取得了公司支持之后,下一步就是制定合理的推广策略。
推广BeyondCorp时,并不是逐步改造现有网络,而是新建了一个环境,逐步把设备转移到新的环境里。这样始终保持了老环境是可用的,而且可以稳步推进新环境的建设。
第一阶段:用户在内网可以直接访问业务系统。外网通过VPN访问。
第二阶段:用户在老内网可以直接访问业务系统。新内网和外网可以通过“访问代理”访问。此时,DNS解析是分开的,内部域名服务器直接指向应用,外部域名服务器指向访问代理。
第三阶段:用户在老内网、新内网和外网都可以通过“访问代理”访问。并且限制VPN的使用。网络策略也逐步地由基于IP的策略变为依靠信任等级分配策略。
有些系统在开发时,默认用户永远是直连的。这些系统需要进行改造之后才能迁移到“访问代理”之后,接受保护。
所以在第二阶段,首先迁移的是那些无需改造的系统及其用户。
为了方便判断哪些用户符合迁移要求。谷歌开发了一个小工具。用户安装小工具之后,工具会记录用户所有访问流量,如果用户访问的所有系统都已经兼容BeyondCorp了。那么小工具会变成仿真模式,模拟新内网的环境,让该用户试用。连续30天试用没问题后,用户会被自动迁移到新内网。
同时这个小工具也会记录哪些系统访问量大,接下来开发团队与系统所有者合作,优先改造这些系统。
随着迁移的系统越来越多,新员工默认会被分配到新内网。
当用户被选中进行迁移时,系统会自动给他们发送一封启动邮件,内含:
(1)明确时间安排
(2)迁移的影响
(3)常见问题答疑和加急服务点
(4)此外,还提供一个自助服务门户网站,允许受业务关键时间节点约束的用户延迟迁移。
通过这种方法进行过渡,用户使用不兼容 BeyondCorp的应用不会感到不太方便;迁移压力基本都在服务提供者和应用程序开发人员上。
在不到一年的时间里,超过 50%的设备迁移到了新内网。
6、怎么做用户教育和运维
在提高安全的急迫性与改变终端用户的使用习惯之间总是存在矛盾。当基础设施和工作流的改变威胁到生产力的时候,这种矛盾只会升级。在发展和稳定之间取得平衡,与其说是科学,不如说是艺术。
(1)引导用户使用BeyondCorp
对于许多新员工来说,BeyondCorp 模型这个概念是相当陌生的。他们习惯了通过VPN、公司专属 WiFi、和其他特权环境来访问他们日常工作所需的资源。
BeyondCorp 上线之初,许多新员工仍然会申请 VPN 接入。用户过会习惯性地认为如果不在办公室的时候需要工作,就是需要 VPN。
BeyondCorp 架构师原本以为用户不在办公室,有远程访问需求时,会尝试直接访问内网资源,并发现可以成功访问。
然而事与愿违,远程访问需要申请 vpn 权限的用户习惯根深蒂固。
后来,谷歌做了一个改进。在VPN的申请门户上明确提醒了用户 BeyondCorp 是自动化配置的,他们在请求 VPN 访问之前应尝试直接访问他们需要的资源。
如果用户跳过这个警告,BeyondCorp 团队还会对用户通过 VPN 隧道访问的服务进行自动分析。如果用户在过去 45 天内没有访问过任何一个BeyondCorp 模式不支持的企业服务,就会收到一封邮件。邮件中会解释,由于他们访问的所有公司资源都支持 BeyondCorp。除非访问了不支持 BeyondCorp 的服务,否则他们的 VPN 访问权限将会在 30 天内失效。
(2)入职培训
显然,在用户开始谷歌的 IT 之旅时,就应该让其尽早了解这种新的访问模式,因此在新员工入职培训时就会开始介绍 BeyondCorp。在培训中,不会大段地讲解模型的技术细节,而是关注最终的用户体验。强调用户不需要 VPN,就可以“自动”获得远程访问权限。
使用BeyondCorp非常容易。一旦验证了必要的用户凭证,就会自动获取一个Chrome插件。从用户的角度看,只要能够看到插件中的绿色图标,他们就可以访问企业资源。
(3)技术人员的培训
要在支持团队中培训一批技术人员,将他们培养成为 BeyondCorp 模型的专家和本地的主要接口人。这些受过专业训练的技术人员有比其他部门同事更高的修复系统的权限。
作为 BeyondCorp 上线的第一批“观察员”,他们会通过全球科技论坛、讨论列表、午餐时间和办公时间来给其他支持团队做培训。
谷歌鼓励技术人员在发现问题后立即在内部文档中添加新的临时变通办法或修复手段,以便将解决问题的能力尽可能遍布全网,更有效地实现信息共享并获得规模化支持。
(4)用户自助修复
“为什么我的访问被拒绝了?”这是迁移到BeyondCorp之后最常见的一个问题。除了培训 IT 运维人员回答疑问之外,谷歌还开发了一种服务,它可以分析信任引擎的决策树和影响设备信任等级分配的事件的时间顺序,从而提出补救措施。这样,有些问题用户就可以自己解决了。
(5)用户自助申请权限
如果一个资源要求特定群组成员才可访问,门户会提供群组名和一个链接。用户可以点链接申请访问权限。门户在后台查询后端的访问控制列表来判断该资源的授权要求,与用户当前部门比较,门户前端将比较结果进行提示,并引导用户用户自助申请加入有权限的用户组。
(6)错误页面
BeyondCorp的错误提示页面上会带上用户信息,这样技术人员更容易排查。例如如果用户信任等级不够,错误提示弹窗中会展示用户的设备、名称,技术支持人员让用户截图就可以获取足够的信息去后台查询该用户的权限不足的具体原因了。
7、实施的难点
(1)系统对接
BeyondCorp能够从广泛的数据来源中导入数据。系统管理数据源可能包括Active Directory、Puppet 和Simian,其他设备代理、配置管理系统和企业资产管理系统也会输入数据。还有括漏洞扫描系统、证书颁发机构和诸如 ARP 映射表等网络基础设施单元。每个数据源都可以发送设备相关的完整数据或增量更新数据。
BeyondCorp已经从超过 15 个数据源中吸收了数十亿的增量数据,速度约 300 万条/天,总量超过 80TB。
许多数据源之间并不具备数据关联所必须的“统一标识符”。例如,资产管理系统可能存储资产 ID 和设备序列号,而磁盘加密托管系统存储硬盘序列号,证书颁发机构存储证书指纹,ARP 数据库存储 MAC 地址。这些数据只能在报告几个或全部这些标识信息之后,才可能合并为一条记录。
如果再考虑到设备的全生命周期,相关的信息及其关联过程将更加一团糟,因为硬盘、网卡、机箱和主板都有可能被替换,甚至会在设备之间交换。另外,如果还存在人为的数据录入错误,情况会更加复杂。
(2)协议支持
事实证明,BeyondCorp一开始只打算支持 HTTP 协议是完全不够的,随着项目的推进,不得不为更多的协议(其中多数都需要端到端加密,如 SSH)提供解决方案。支持这些协议通常需要对客户端进行改造,以确保“访问代理”能准确识别设备。
第三方软件通常比较麻烦,因为它可能无法提供 TLS 证书,也可能其实现逻辑假设网络总是直连的。为了适配这些软件,谷歌设计了一种可以自动建立点到点加密隧道(使用 TUN 设备)的方案。软件对隧道无感知,就像是直连到服务器一样。
8、意外事件的处理经验
意外紧急情况主要有两类:
(1)生产类紧急事件:由于服务访问的逻辑链路上关键部件的中断或失灵造成的紧急事件。
(2)安全类紧急事件:由于迫切需要撤回特定用户的访问权限造成的紧急事件。
快速推送安全策略是解决意外紧急情况的关键能力。比如,由于安全扫描设备可能尚未升级,检测不出某种零日攻击,但可以通过例外处理立即阻止某台可能遭受零日攻击的设备。
物联网设备的安装和维护可能并不容易,可以通过例外处理,直接为其分配适合的信任等级以确保正常访问。
面对某些重要用户访问失败的情况,也需要在后台直接进行紧急处理,以便保证用户工作能够顺利进行。
9、总结
BeyondCorp经过这么多年的发展,已经从一个前卫的理念,变成了一个成熟的方案。之前BeyondCorp一直是谷歌内部用。今年疫情,谷歌把BeyondCorp中的“访问代理”抽象出来,做成了商业产品,在谷歌云上卖。不过国内用起来肯定比较麻烦。国内有不少厂商模仿BeyondCorp做了解决方案。大家有兴趣的话,后续我也可以分享一些国内产品。