BeyondCorp 打造得物零信任安全架构

news2024/9/25 1:17:13

1. 背景

当前,大部分企业都使用防火墙 (firewall) 来加强网络边界安全。然而,这种安全模型是有缺陷,因为当该边界被破坏,攻击者可以相对容易地访问公司的特权内部网。

边界安全模型通常被比作中世纪城堡:城墙厚厚的堡垒,四周有护城河,戒备森严单点入口和出口。任何位于墙外的东西都被认为是危险的,而位于墙内的任何东西都是可信的。任何通过吊桥的人可以随时访问城堡的资源。

传统的安全模型:

当所有员工都在公司提供的办公地点工作时,这种方式可以很好的工作,随着移动办公的出现、以及当前疫情的关系,越来越多人在家办公,这种安全模型的方式不再成立。虽然大多数企业认为内部网络是应用的安全环境,但 Google 的经验证明这种信念是错误的。相反,人们应该假设内部网络与公共 Internet 一样充满危险,并基于此假设来构建我们的企业应用程序。

企业安全攻击示意图:

企业安全的痛点:

  • 如何防护应用安全漏洞

应能够防护应用安全攻击,避免被内部和外部人员攻击,以及及时发现各类应用安全漏洞。

  • 如何防范各类业务风险?

需要防止应用上如越权、未授权、数据泄露等被利用,导致业务出现风险,引起重大损失。

  • 如何具备快速响应能力?

没有绝对安全,一旦出现安全事件,应能及时响应,可以快速溯源攻击来源以及攻击目标,评估影响。

  • 如何兼顾效率与安全?

因为安全人员紧张,应尽可能提高安全效率,实现安全一体化,以及避免对业务的效率降低影响。

2. BeyondCorp理念

2.1 历史背景

BeyondCorp 是 Google 打造的零信任模型。它以 Google 十年的经验为基础,并借鉴了相关社区提出的理念和最佳实践。通过将访问权限控制措施从网络边界转移至具体的用户,BeyondCorp 使用户几乎可以在任何地点安全的工作,访问仅取决于设备和用户凭据,而不必借助于传统 VPN。无论用户的网络位置如何——无论是企业位置、家庭网络,还是酒店或咖啡店。根据设备状态和用户凭据,对企业资源的所有访问都经过完全身份验证、完全授权和完全加密。因此,所有 Google 员工都可以在任何网络上成功工作,本地和远程访问企业资源之间的用户体验是一致的。

2.2 核心模块

BeyondCorp 由许多协作组件组成,以确保只有经过适当身份验证的设备和用户才有权访问必要的企业应用程序。

2.2.1 BeyondCord 组件与访问控制流程

2.2.2 设备可信验证

  • 可信设备数据库

BeyondCorp使用“托管设备”的概念,托管设备就是企业采购和主动管理的设备,只有受控的设备才能访问公司的应用程序,一个准确的设备数据库是BeyondCorp模型的基础。如何把所有的公司设备都能纳入管理范围,不漏、不错非常的关键。安全就是要全方位,不留死角,否则就会千里之提,溃于蚁穴。我们得物IT部门建设了自己的资产中心,能够对全司所有资产进行管理。

  • 设备认证

所有受管设备在设备库中均有记录,完成设备唯一标识的方式是为每个设备颁发证书,证书存储在硬件或者TPM(Trusted Platform Module) 上,设备认证过程会去验证设备的有效性,只有足够安全的设备才算受管设备,证书也会定期更新。得物并没有采用此种方式,而是基于字节飞连终端软件(集 NAC准入、有线、VPN于一身),通过账号密码实现身份认证。

2.2.3 可信用户身份

  • 用户数据库

BeyondCorp 会跟踪和管理用户数据,这些数据与人力资源系统紧密集成,新员工加入公司,角色或者职责变更、或者离职,数据库都会更新。

  • 单点登录(SSO)

外部化SSO(外网可以访问)系统验证用户身份,生成短期令牌Token作为访问资源的凭证。得物建设有自己的单点登录系统,能够实现多因子认证,支持账密、短信,KEY口令等方式,未来还会支持指纹、人脸等方式。

2.2.4 去除网络可信

  • 802.1x 认证

对于有线和无线访问,通过RADIUS服务器,基于802.1x 认证协议为设备分配到一个合适的网络里面,这样就不依赖与交换机端口的静态配置。托管设备提供其证书作为此 802.1x 握手的一部分并分配给非特权的网络,没有被识别和管理的设备分配给访客网络。

2.2.5 设备可信的访问控制实现

  • 设备可信

用户或者设备的访问级别会随着时间环境改变,通过各类数据,动态的判断访问级别,这些信息会作为访问控制引擎(Access Control Engine)决策的一部分。举个例子,一个没有升级最新版本OS的设备在访问的时候等级可能会被降低。用户在新的地点登录或者访问会被属于不同的访问级别。

  • 访问控制引擎

访问控制引擎基于用户、设备、环境数据为每个服务请求提供授权,甚至是基于地理位置的访问控制。比如对于gitlib的访问只会授权给技术部门,对于财务系统的访问只会授权给财务部门的同事。

3. 得物零信任安全实践

3.1 得物零信任需要达到的目标

因为不同企业面临的现状,技术能力,基础架构都有所不同,零信任的实施也不能照搬照抄。我们需要思考如何在现有组件下建立起适合得物的零信任体系。因此,得物安全技术经过反复讨论,验证与思考,决定得物零信任需要具备以下几个关键要点:

  • 设备可信
  • 用户身份可信
  • 环境可信
  • 应用身份可信(ACL静态授权)
  • 动态访问控制
  • 用户行为审计(UEBA)

得物零信任的长期业务目标:不需要VPN、防火墙就可以随时随地安全的访问公司资源。

3.2 得物零信任架构

3.2.1 架构说明

1.设备认证,可信设备基于飞连终端与飞连设备数据。(802.1x协议)
2.轻量级终端(得物安全控件):我们基于Rust语言编写的轻量级终端,通过自研硬件设备指纹做到有效、准确标识每一台访问设备的目的。
3.飞书、EHR提供用户身份认证数据:得物的SSO是基于飞书认证,我们打通了飞书与得物内部系统。
4.无Access Proxy,通过应用网关接入访问控制引擎,实现同时动态与静态的访问鉴权。
5.4层和7层纵深防御:我们不仅在7层对每一次访问做动态认证,在4层,通过AC控制器在网络层也做精准的防控和拦截。

3.2.2 实施挑战

挑战一:自研硬件设备指纹技术

在建设得物零信任架构过程中,主要面临的挑战是设备唯一性的问题,一开始我们尝试了通过浏览器指纹技术比如开源的 fingerprintjs、clientjs来实现终端唯一标识,但是试验数据表明,浏览器指纹稳定性、碰撞率都不达预期,所以我们决定自研硬件指纹技术,100%唯一、0.01%的碰撞率。

挑战二:信息加密与防伪造

设备信息的上传过程中,我们采用了多种加密算法,数据防篡改技术保障了数据传输的安全性。数据在传输过程中还做了充分压缩,避免数据太大影响系统性能与用户体验。

3.3 零信任平台产品能力

3.4 应用场景举例

  • 账号安全

得物是一家非常重视效率、用户体验的公司,公司有招聘大量的客服人员24小时服务用户,通过终端设备指纹,能对账号共用场景精准识别,降低公司资金损失。

  • 数据安全

数据泄露是每个互联网公司都要面临的巨大难题,得物零信任基于各类大数据体系,能够对内网爬虫等数据场景进行实时分析、阻断,有效降低企业数据安全风险。

4. 总结

互联网安全事件频发,给我们做安全的同学敲响了一记沉重的警钟,作为安全技术人员,我们在时刻思考着要如何通过工程技术、AI等手段帮助公司建设牢固的安全体系,为企业业务保驾护航。零信任只是一个理念,在具体实施环境要因地制宜。此外,安全体系化建设不是靠一个产品,一种技术就能够轻松达到,要时刻保持警惕,从细节入手,不放过任何一个隐患,得物零信任体系建设还在发展阶段,我们希望能够将零信任的理念在得物充分实施,切实保障企业安全与得物用户数据安全!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/131679.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mysql 报“Finished with error”,该怎么及解决?

用了多年的Mysql,当用navicat导库时,偶尔会遇到“Finished with error”错误, 如下图: 下面是我结合工作经验,总结一下,将相应情况及解决方法提供给网友们: 情况1:导入的sql数据库脚本文件中日…

vue3 antd项目实战——Form表单的重置【使用resetFields()重置form表单数据】

vue3 ant design vue项目实战——Form表单【resetFields重置form表单数据】关于form表单的文章场景复现resetFields()重置表单数据项目实战关于form表单的文章 文章内容文章链接Form表单提交和校验https://blog.csdn.net/XSL_HR/article/details/128495087?spm1001.2014.3001…

剑指offer----C语言版----第五天

目录 1. 重建二叉树 1.1 题目描述 1.2 复习基础知识 1.3 思路分析 1.4 总结 1. 重建二叉树 原题链接: 剑指 Offer 07. 重建二叉树 - 力扣(LeetCode)https://leetcode.cn/problems/zhong-jian-er-cha-shu-lcof/submissions/ 1.1 题目描述…

极简四则运算解释器

前言: 这是最近完成的一个小的 demo,一个极简四则运算解释器。前面,已经基于这个想法发了两篇博客了: 四则运算和二叉树 简单四则运算语法树可视化 然后,前两天也就完成了这个总体的 demo 程序。本来整个程序的思路大致上有了&…

前端框架 Nuxt3 集成axios 配置跨域

目录 一、安装axios 二、Nuxt3项目集成axios 1、项目根目录下创建server/api目录 2、调用封装的单例axios对象 3、页面中调用请求函数 刚开始通过Nuxt3使用axios时,以为axios还需要配置跨域,但经过多次测试发现,在Nuxt3框架里并不需要配…

磨金石教育摄影技能干货分享|胡杨为什么被新疆人奉为精神图腾

痴迷于胡杨的摄影家 新疆摄影师王汉冰,昨天我们介绍了他一张《沙狐之眼.》,天人合一的画面让我们感到震撼。 除此之外王汉冰还有一个称号那就是“胡杨王”。 意思很明确,那就是擅长拍摄胡杨,作品也多是以胡杨见长。 新疆地大物博&…

【OpenCV 例程 300篇】253. 多帧图像(动图)的读取与保存

『youcans 的 OpenCV 例程300篇 - 总目录』 【youcans 的 OpenCV 例程 300篇】253. 多帧图像(动图)的读取与保存 1. 多帧图像(动图) 多帧图像是将多幅图像或帧数据保存在单个文件中,也称为多页图像或图像序列&#xf…

eNSP 实现静态路由中的路由备份

eNSP 实现静态路由中的路由备份 eNSP 实现静态路由中的路由备份;路由备份功能,可以提高网络的可靠性。用户可以根据实际情况,配置到同一目的地的多条路由,其中一条路由的优先级最高,作为主路由,其余的路由…

06 retrieveFileStream 之后需要调用 completePendingCommand 否则业务代码会存在问题

前言 问题是这样的 之前 同事碰到了这样的一个问题, 说是基于 ftp 客户端更新文件名字 更新失败 然后 看了一下, 原来是 调用了 retrieveFileStream, 然后 没有同步等待 数据传输完成, 然后 之后直接调用了 rename 的方法 然后 发现 rename 返回的是 false, 并且 文件名…

看我今年奋斗,观我未来之路

看我今年奋斗,观我未来之路 。 博客之星评选已经进行了几天。我也没有很去关注这东西,毕竟一个刚注册一年、写了无数水文的误导他人的博主,怎么可能拿到博客之星? 我,只是无聊时转发一下,那句毫无新意、从…

大学生如何在网上赚零花钱,适合学生党可做的零花钱项目

大学生的课余时间是非常多的,利用这些时间,我们可以去做点小兼职赚点零花钱,既可以补贴生活费,又可以获得不一样的生活体验。 现在大学生完全可以不用去大街上发传单,或者去咖啡店当服务员了,自己在网上就…

【数据结构】单链表(线性表)的实现

目录 一、什么是链表 二、单链表的实现 1、动态申请一个结点 2、单链表打印 3、单链表尾插 4、单链表的尾删 5、单链表的头插 6、单链表头删 7、单链表查找 8、单链表在pos位置之后插入x 9、单链表删除pos位置之后的值 10、单链表在pos位置之前插入x 11、单链表删除pos位置的值…

前端期末考试试题及参考答案(04)

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl 一、 填空题 在页面中&#xff0c; ______标签用于创建一个表单。< form>中的______属性用于指定接收并处理表单数据的服务器url地址。< form>中的______表示以…

基于springboot+Vue的疫情防控系统(程序+数据库)

大家好✌&#xff01;我是CZ淡陌。一名专注以理论为基础实战为主的技术博主&#xff0c;将再这里为大家分享优质的实战项目&#xff0c;本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#xff0c;希望你能有所收获&#xff0c;少走一些弯路…

Linux 资源限制 setrlimit

有的时候为了避免程序毫无意义的占用CPU&#xff08;如死循环&#xff09;、过度占用内存&#xff08;如内存泄漏&#xff09;&#xff0c;我们可以限制程序使用的资源。 下面主要从两个角度限制资源&#xff1a; 限制程序累计运行时长限制可以使用的内存大小 限制资源使用到…

微信小程序 | 小程序系统API调用

&#x1f5a5;️ 微信小程序专栏&#xff1a;小程序系统API调用 &#x1f9d1;‍&#x1f4bc; 个人简介&#xff1a;一个不甘平庸的平凡人&#x1f36c; ✨ 个人主页&#xff1a;CoderHing的个人主页 &#x1f340; 格言: ☀️ 路漫漫其修远兮,吾将上下而求索☀️ &#x1f44…

Go语言进阶

一、并发 VS 并行 1: 多线程程序在一个核的CPU上运行 2: 多线程程序在多个核的CPU上运行 Go可以充分发挥多核优势&#xff0c;高效运行。 线程&#xff1a;用户态&#xff0c;轻量级线程&#xff0c;栈MB级别。 协程&#xff1a;内核态&#xff0c;线程内跑多个协程&#xff…

最短路径的java代码实现

1.最短路径定义及性质 有了加权有向图之后&#xff0c;我们立刻就能联想到实际生活中的使用场景&#xff0c;例如在一副地图中&#xff0c;找到顶点a与地点b之间的路径&#xff0c;这条路径可以是距离最短&#xff0c;也可以是时间最短&#xff0c;也可以是费用最小等&#xff…

爬虫的奇技淫巧之ajax-hook

声明 本文仅供学习参考&#xff0c;如有侵权可私信本人删除&#xff0c;请勿用于其他途径&#xff0c;违者后果自负&#xff01; 前言 随着反爬力度的不断升级&#xff0c;现在的爬虫越来越难搞了。诸如加密参数sign、signature、token。面对这种情况传统的方式可以使用自动…

Redis集群系列九 —— 集群伸缩之扩容

集群伸缩 Redis 集群提供了灵活的节点扩容和收缩方案&#xff0c;当有新节点加入时&#xff0c;需要把一部分数据迁移到新节点来达到集群的负载均衡&#xff1b;当旧节点退出时&#xff0c;需要把其上的数据迁移到其他节点上&#xff0c;确保该节点上的数据能够被正常访问。从…