未来要接触一个企业安全项目,先了解了下Google的BeyondCorp安全模型。
传统的企业安全是通过使用防火墙来实现的,然而这个方式暴露出来了很多问题。例如一旦企业的内网边界被突破,攻击者可以在内网为所欲为。而且随着企业开始使用移动和云技术办公,企业的边界安全越来越难以保证。谷歌采用了一个不同的安全模型实现了企业的网络安全—BeyondCorp。BeyondCorp取消了员工访问企业内网的要求,将公司的应用迁移到了互联网。
BeyondCorp是一个零信任模型,它认为公司网络安全的一个重要的大前提是无论内网和外网都是不安全的。与传统的边界安全模型不同,BeyondCorp不是以用户的物理登录地点或者用户使用的网络作为访问服务的判定标准(无论员工是在家or在公司or咖啡店),其访问策略是建立在设备信息(device)、状态(state)和关联用户(associated user)的基础上,更偏向用户行为和设备状态的分析。企业资源的所有访问都是完全验证,充分授权,并根据设备状态和用户凭证完全加密。BeyondCorp针对公司不同资源实现了不同粒度的访问控制。这样做的结果就实现了所有谷歌员工可以在任何网络下工作,根本不需要VPN.
架构 Architecture
- Trust Tiers 信任级别. 信任级别据访控敏感度分为不同的层级。员工的设备和资源都被赋予了不同的信任级别,只有高于资源最小信任级别的员工设备才能访问资源,这样确保员工能够以最小权限履行职责,这样既减少了运维开支,又提高了设备可用性。
- Resources 资源是一系列接入访问控制的应用,服务或者基础设施。资源包括任何来自在线知识库,财政数据库,或者链路层链接,实验室网络的数据。每个资源与一个最小信任层关联。
- Trust Inferer 信任推断系统。信任推断系统持续分析和标注设备的状态。信任推断系统设置被设备访问的最大信任层级和设置设备使用的局域网。这些数据记录在设备清单服务中。
Device Inventory Service 设备清单服务组件是系统的核心。在设备的生命周期中,该组件持续收集,处理,发布设备的更新。清单是基于清单访问控制的必备基础。员工的设备(例如手机,笔记本电脑)以及他们设备的动态环境(设备的操作系统)都要登记到设备清单服务上。设备清单服务就像一个持续更新的管道一样,管道的另一端是来自数据源的大量数据。数据源包括:活动目录、Puppet软件自动化配置和部署工具和Simian冗余代码检查工具;各种配置和企业资产管理系统;漏洞扫描器,证书管理以及ARP地址解析表等网络基设施元素。beyondcorp从15个数据源获取了上亿级数据,每天处理三百万数据,数据总量达到80T。可以利用员工历史数据做一些数据分析达到安全审计和调查目的。
设备清单服务还依赖设备清单数据库,BeyondCorp设备清单数据库集群通过一个元清单数据库规范多个来源的设备信息,并向下游组件提供这些信息。被企业管理的设备需要在设备清单数据库上有唯一的id。给设备赋唯一id的方法可以给每个设备安装一个设备证书。这样也表明此设备为“managed device”,即被公司管理的设备。
- Access Control Engine 位于访问代理服务器内部的访控引擎是一个策略实施中心。访问控制引擎对每次访问企业应用的请求进行服务级的认证授权。授权取决于访问的用户,用户属于哪个组,用户使用的设备证书,设备清单数据库的纪录。例如,谷歌Bug跟踪系统只限制于全职工程师的工程设备访问。财务应用程序只限制于在会计组的全职和兼职职员的管理非工程设备。访问控制引擎还可以通过不同的方式来限制访问应用程序的部分功能。例如,在我们的Bug跟踪系统,更新或搜索比查看一个Bug记录有着更严格的访问控制。
- Access Policy 访问政策是资源,信任层等等的程序表示。
- Gateways 网关
数据分析
前文说到,BeyondCorp访问策略是建立在对访问者的设备信息(device)、状态(state)和关联用户(associated user)的用户行为和设备状态的分析基础上。这就涉及到了对数据的收集和分析。数据来源为15个上文提到的数据源,BeyondCorp把数据分为两类:observed data
和 prescribed data
.
observed data
数据为通过所编写的程序生成观测数据。 它包括:
- 上一次在设备上执行的安全分析及安全分析的结果
- 活动目录上一次的同步政策和时间戳
- 操作系统版本和补丁等级
- 任何安装的软件
Prescribed data
数据为手动维护的数据,它包括:
- 设备的所属人
- 访问设备的用户和群体
- 使用的DNS和DHCP
- 直接访问的DNS
Data Processing数据处理步骤为:
- 将输入数据转换为一个统一的数据类型
- 统计数据相关性. 来自不同数据源的数据需要被统一成为这个设备的唯一的数据记录。
- 当输入的数据被融合为一个统一的数据记录后,Trusted Inferer被通知去触发重评估。
网络建设 - 内网和外网几乎没有区别
不再相信内网-公司内部网络建设:. BeyondCorp将公司内部访问和远程访问等同,并在Google大楼内部建立了一个无特权网络(unprivileged network). 所有谷歌大楼内办公的设备都连接这个无特权网络。对于有线和无线接入,谷歌使用RADIUS(远端用户拨入验证服务)服务器将设备分配到合适的网络。
所有谷歌企业应用都对外解析:所有谷歌的企业应用都通过面向互联网的访问代理服务器暴露给了外部和内部用户,并强制对通信进行加密访问。访问代理服务器被配置为每个应用程序提供通用的功能,如全球可达性,负载均衡,访问控制检查,应用健康检查,和拒绝服务保护。代理服务器在访问控制检查完成之后再将请求发送到后端应用。
从任意网络访问企业应用
当一个工程师使用笔记本电脑访问公司代码评审url: codereview.corp.goole.com, 在beyondcorp会发生:
- 访问请求被重定向到访问代理服务器。笔记本提供自己的设备证书。
- 访问代理服务器识别不出此用户,将请求重定向到SSO系统。
- 工程师提供他或她的主要凭证和次要凭证给SSO系统进行验证,通过验证后,分配一个token,并被重定向到访问代理服务器
- 代理服务器为codereview.corp.goole.com执行特定的授权检查。授权检查是基于每个请求的:
- 该用户是否隶属于工程师组
- 用户是否拥有一个足够的信任级别
- 设备为公司的管理设备
- 设备拥有一个足够的信任级别
- 当以上1-4条件满足后,请求才会传递到coderreview后端。
参考
- http://www.tomsitpro.com/articles/google-beyondcorp-future-network-security,1-3229.html
- Ward R, Beyer B. Beyondcorp: A new approach to enterprise security[J]. login, 2014, 39: 5-11.
- Osborn B, McWilliams J, Beyer B, et al. BeyondCorp: Design to Deployment at Google[J]. 2016.
- https://cloud.google.com/beyondcorp/
- https://www.scaleft.com/product/web-access/#works
- https://duo.com/blog/beyondcorp-for-the-rest-of-us