零信任网络架构与实现技术的研究与思考

news2024/11/17 10:53:39

目前,国外已有较多有关零信任网络的研究与实践,包括谷歌的 BeyondCorp、BeyondProd,软件定义边界(Software Defined Perimeter,SDP) 及盖特提出的“持续自适应风险与信任评估”等。国内也有不少安全厂商积极投身零信任市场,包括360、安恒信息等,并推出了相应的零信任产品和解决方案。这些研究与实践对零信任网络的落地应用带来了积极影响。

 

但同时也应该看到,目前,零信任网络的推广难度较大。系统设计人员在实际应用中主要面临以下几个方面的难题:

(1)不清楚零信任思想本质,容易走入堆砌技术和产品的歧途;

(2)不清楚零信任的功能架构,容易“照顾不周”“顾此失彼”,导致安全防护功能出现短板,或者出现某一方面能力特别突出的情况,整个系统能力不佳;

(3)没有掌握零信任网络实现技术,难以将功能落地。

本文针对上述问题开展了研究,期望找到适合的应对措施,为想要提升网络安全防护能力的各类组织提供参考。

1、零信任思想的本质

零信任思想的本质是基于动态的信任度赋予适度的访问权限,其关键点在于摈弃无端或超出合理范围的信任,对实体、环境等进行持续评估,并根据反馈结果及时修正策略,从而将静态的防御转换为动态的防御。

2、零信任网络功能架构

零信任网络功能架构可分解为 5 个基本功能,分别是:

(1)网络身份管理:提供对网络实体全生命周期的管理,确保所有实体来源可信、安全可控。

(2)网络身份认证:确保网络实体在发起网络行为时向相关对象证明其身份可信。

(3)网络访问授权:实现基于网络实体的身份对网络访问进行无特权的权限管控和访问控制,保证所有访问都必须得到授权。

(4)传输安全保障:实现访问数据在网络传输过程中的安全可信,确保数据访问不可抵赖、内容不被窃取等。

(5)行为安全监控:对网络实体的运行状态和网络行为的持续监测,并抑制网络攻击对系统的影响。

3、零信任网络实现技术

3.1 网络身份管理

网络身份管理的目标是在网络空间中产生网络行为的网络实体的全生命周期内,掌握网络实体与现实实体之间的映射关系,并记录其变更过程。由于网络行为均由应用软件和设备发起,还可能来自操作应用的用户,故网络身份管理的对象既可以是用户,也可以是应用和设备。在某些场合,可将一个网络中的网络实体视为一个整体,从而实现简化管理,故网络身份管理的对象还可以是网络。

人员管理主要包括身份注册、安全审查、安全培训、身份变更处理和身份注销处理几个方面。其中,身份注册的主要目的是为可信度评估提供基础,用户信息分为基本信息和高级信息。用户基本信息包括姓名、生日、年龄等;用户高级信息包括身份证号、生物特征和住址等。根据系统的安全等级选择是否需要录入高级信息,录入的信息越多,掌握的信息越全面,判断人员可信度的参数则越多。完成可信度初始评估后,还需对人员进行安全审查,包括对其信用信息、履历和犯罪记录等的调阅和审查。在安全审查通过之前,需要限制人员对网络进行所有或者部分访问。当人员正式成为员工或者客户时,至少应该在开放访问前对其进行安全培训或提示。在高安全等级系统中,为了防止出现人为安全漏洞,需要在系统使用过程中不断进行安全提示和必要的强化培训。当人员身份信息和安全审查相关信息发生改变时需要及时更新。当人员不再使用信息系统时需要及时关闭其所有权限,进行注销处理。在发生身份注销时,应该根据信息系统的保密程度,考虑是否对人员要求签署保密条款。

设备的管理方面,应结合资产管理系统对设备的采购来源、用途等基本信息,以及 IP 地址、证书的状态进行登记和随时更新,并记录相关的变更日志。根据网络安全等级要求,应选择记录良好、资本构成符合要求的供应商进行供货,并考虑是否对供应商进行背景调查。根据网络安全等级要求,考虑是否监管供应商生产供应过程,包括元器件采购、加工、装备、检验等,以提升产品安全性,一般适用于高安全网络。接收设备时,应对设备进行系统安全检测,比如病毒扫描、漏洞扫描,掌握设备的安全风险状态。在设备上线前和运行过程中,应及时对设备进行安全加固,包括病毒查杀、修补漏洞、升级病毒库等。若设备不再接入网络使用,则应下线处理,对于安全要求高的组织机构,应该强制要求拆除设备硬盘,或者擦除硬盘数据,最后才能将设备转作他用或者报废。

应用的身份管理主要关注应用的开发、测评和部署 3 个阶段。在应用开发阶段,至少应先明确安全性需求,并明确是否允许使用高风险数据库或者第三方插件等。在应用开发完成后,应组织专业机构对应用安全性进行测评,包括是否存在已知漏洞、是否符合安全性设计要求等。在应用部署阶段,应对应用进行上线审批,建立软件白名单,通过终端管控软件控制设备允许运行的软件。

网络安全等级越高,评估的因素就越多,要求掌握的信息就越丰富。在建立身份管理系统、资产管理系统、软件白名单和网络组织清单时,信息采集应满足法律的要求,如果是采集个人信息,应该得到个人的授权,并且数据的生成、传递和保存必须采用制度和技术保护,保证数据的保密、真实和完整。

3.2 网络身份认证

网 络 身 份 认 证 时, 不 同 实 体 选 用 不 同 的 认证方式。人员认证方法有基于口令、生物特征或者私人持有的基于硬件的可信处理模块(Trusted Processing Module,TPM)等的方法。设备和应用的认证方法有通过软数字证书或者设备绑定的 TPM来认证的方法。网络的认证可以通过网络代理设备或软件代理网络整体对外认证,从而不用对网络中多个实体分别认证,在某些对计算或网络开销比较敏感的场合可以考虑使用。

身份认证方法的选择通常根据风险高低决定。当环境风险小到一定程度时,身份认证可以通过传递身份标识(如 IP、端口等)实现,如同新认识的朋友相互交换名字就知道对方是谁。但当环境风险不够高时,身份认证必须采用更安全的方式。一般来说,首先使用非常强的认证手段保证一定是该实体;其次生成一个可验证的身份断言用于基本业务,即“初始强认证”与“使用时弱认证”结合,可兼顾安全性和便利性。“初始强认证”一般在系统开设、业务开通阶段进行,比如用户到银行开户需要本人到柜台出示身份证,新员工入职时公司对员工进行安全审查,此工作可以与网络身份管理的身份录入和信息审查合并进行。经过“初始强认证”后,进入“使用时弱认证”阶段,银行颁发给用户一张银行卡,并让用户设置一个口令,允许用户通过银行卡和口令办理存取款业务;公司也给员工办理一张员工证,允许员工凭该证出入工作环境。但用户银行卡和口令必须经过 ATM 机在线验证,员工证也必须经过公司门卫手工验证或者刷卡机在线验证。

采用可变强度的身份认证。当环境风险发生变化时,身份认证强度应该及时调整。比如首次使用新设备风险较高,需要使用强认证、设置口令并绑定设备,后续允许使用口令进行操作,但再次更换新设备时,需要再次使用强认证、设置口令并绑定设备。在进行高风险操作时,也需要提高认证强度。

必须警惕口令不当使用。某些系统可能必须多人使用同一账户操作业务,造成口令知悉范围较大,没有与人绑定;某些系统口令复杂度要求低,抗攻击能力弱。上述不当的口令使用会带来很多风险,应该设法降低风险。在无法与人绑定账户的系统中,应增强环境准入控制或用其他方法保证使用者的合法性,在口令复杂度要求低的系统中,应强制提升密码复杂度要求。

使用的数字证书应当定期更新。相当多的系统使用数字证书方式进行认证,却忽视了数字证书有效期的限制。为提升安全性,其证书需要强制定期更新。此外,证书更新途径是否安全、更新周期是否得到控制等因素都会影响可信度。

充分利用信任传递技术来构建信任链 。如图 1所示,信任传递是指当 B 在一定程度上信任 C 时,A 依赖于对 B 的信任而一定程度地信任 C。比如员工与公司门卫并不熟识,但员工因公携带物品离开公司大门,若向公司门卫出具部门领导签署的审批单,公司门卫可依据审批单对其放行。上述例子中,A 对 B 和 B 对 C 的信任称为直接信任,而 A 对 C的信任称为间接信任。A 基于 B 从而对 C 的信任形成信任链。在信任链上,相邻实体间不都是绝对信任,所以信任度会随着信任传递次数的增加而减小。此外,A 对 C 的信任程度与 A 对 B 和 B 对 C 的信任程度正相关,但不一定线性。特别的,若 A 不再信任 B 或 B 不再信任 C,则 A 也不再信任 C。信任传递用途很广,只要两个实体能够借助其他实体生成一个信任链,就可以计算出信任度。

3.3 网络访问授权

一般情况下,应采用基于身份的访问控制技术,或者相应的人机结合的管理方式来进行网络授权。很多情况下,网络实体的标识不会固定不变,比如对于移动环境或者使用动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)技术的局域网,如果基于固定网络标识进行访问控制,则无法快速调整策略以适应动态的网络标识变化,给访问控制策略维护带来极大负担。这时候应该配置基于身份的访问控制策略,通过认证过程跟踪网络访问标识的动态变化,随时自动更新策略,提高策略的安全性和适应性。

524d614edbcd404cac6a90d50ffb137d.png

       图 1 任链关系及基于信任链的信任度

基于动态信任度和风险的访问控制可极大增强访问控制的安全性。零信任思想之所以更安全,是因为其根据信任度做出是否允许访问的决策。因为身份证明并不代表对方是安全的,所以大量系统仅通过身份认证就开放安全策略的方式存在诸多安全漏洞。判断是否开放安全策略的依据应该是对方是否可信,以及是否具有高风险。信任度和风险评估可从第三方获取,也可基于交互行为与预期的对比不断积累形成。

统一权限管控解决全网权限的一致性问题,确保不因权限差异导致访问受阻或产生权限漏洞。统一权限管控的高效架构是树形分级架构,该架构从主干到分支每一级管辖本级策略,并逐级细化,分支仅在主干约束范围下定制详细策略。如图 2 所示,A 分支到 B 分支的主干路径上的策略,只管理整个A 分支能否访问整个 B 分支,但 A 分支入口和 B 分支入口的策略则管理 A 分支的实体 a 能否访问 B 分支的实体 b 的约束。这样的管理架构有利于降低主干策略压力,分支策略虽受限于主干策略的限制,但有一定自主灵活度。

062340e67cb84f519ff2ec5b94eb0401.png 

         图 2 树形分级的权限管控架构

权限同步一般分为管理流驱动和业务流驱动两类。管理流驱动是指权限在各个策略管控节点之间进行同步,需要占用带宽,且每个策略管控节点需要存储大量的权限(无法事先判断权限是否有用),处理访问时本地已经有策略,处理延迟小。业务流驱动无须各个权限管控节点之间进行同步,访问者访问时向策略控制点提供权限信息,策略控制点验证权限真实性并进行生成策略,需要花费更多时间,处理延迟大。权限同步方案的选择需要根据具体需求进行。

3.4 传输安全保障

因为数据在传输时可能受到窃取、伪造、篡改和重放攻击,所以必须考虑数据传输受到上述攻击时系统是否有安全风险。

常见的数据传输安全保护技术包括互联网安全协 议(Internet Protocol Security,IPSEC)、 安 全 接口层(Secure Socket Layer,SSL)等。IPSEC 由操作系统在网络层为应用程序统一提供基于 IP 的安全性能,对应用程序是透明的。SSL 为应用层提供标准安全接口,需要应用程序进行适配实现。IPSEC和 SSL 属于网络认证和加密,可以部署在路径网关上,也可以部署在端点上。在带宽和处理能力允许的情况下,两种技术可以同时运用,进一步增强数据传输的安全性。

数据安全的传输通道构建可以因地制宜,比如在两个局域网之间的数据传输中,可以在各自网络的出口架设实体网关,对经过网关的数据进行保护,也可以在对外提供服务的数据服务器上部署代理软件,或者在其物理接口处部署实体网关,接管出入服务器的数据流。至于局域网内部流量是否加密不应一概而论,需要综合考虑网络安全需求、环境威胁、安全脆弱性等多方面因素。

3.5 行为安全监控

行为安全监控通过分析网络实体的各种攻击和异常行为的活动,可以及早发现威胁并进行风险控制,对实体信任度进行动态评价。主要方法包括网络攻击抑制、异常行为监测。

网络攻击抑制用于检测并抑制网络中已知攻击,从而对网络进行保护。网络攻击检测方法主要有两种:一种是通过检测流量是否满足某种已知特征来发现攻击,即基于流量特征匹配的攻击检测方法,这种方法对拒绝服务(Deny of Service,DoS)和 分 布 式 拒 绝 服 务(Distributed Deny of Service,DDoS)等流量攻击有效 ;另一种是通过检测网络包内容是否满足某种已知特征来发现攻击,即基于内容特征匹配的攻击检测方法,这种方法对于漏洞利用、恶意代码等攻击有效 。当发现攻击后,可以对攻击进行抑制,但很多情况下,攻击检测设备难以识别正常访问和攻击访问。攻击监测分析人员不断地深入分析攻击特征,对匹配规则进行完善,但总会出现滞后,这正是零日攻击的突破口。在数据中心,攻击检测通常搭配流量清洗工作,当发现攻击后,攻击检测设备联动网络交换设备进行引流清洗,经过清洗后,正常访问流量被导回网络继续转发。

异常行为监测用于进一步检测超越使用习惯的高风险操作,发现各种未知攻击,比如后台木马程序借用用户和终端身份发起越级访问。异常行为监测与纯粹的基于行为的网络攻击检测不同,基于行为的网络攻击检测主要通过事先把攻击模式和特征进行总结成为模型,再通过抓取流量进行分析,检查是否存在匹配相似的网络流量,从而判断是否存在攻击行为;而网络行为安全检测是评估用户行为超出正常习惯是否带来信任度降低的方法。网络行为安全检测通过不断收集正常业务的习惯,进行用户、流量、包长、时刻、间隔等多维的分析和总结归纳,形成正常业务习惯模型。有了正常业务习惯模型后,再对新流量进行分析,评估是否符合正常业务习惯特征,最终给出相应的可信度一维评价。网络行为安全检测使用人工辅助机器学习或深度学习技术,对此,研究者们提出了很多理论方法,如文献 [10] 提出了在静态的身份认证之上,通过对用户行为的实时评估,引入奖惩因子和时间因子,实现动态的信任度评价;文献 [11] 提出了一种基于灰色关联度的信任模型,对节点进行细粒度的信任评估,抑制不诚实的节点的访问行为;文献 [12] 提出了一种基于隐式反馈控制的用户行为度量模型,构建用户的状态和行为基线,并根据基线评估用户的可信度,进而实施动态的信任度评价。

4、零信任网络推广应用的突破点

利用零信任提升网络安全防护能力不能仅依靠优化网络拓扑、提升点位产品的功能,还需要在制度、架构及配套上进行相应的改变与提升。

(1)在管理方面,需要引导相关行业分步细化和落实《信息安全等级保护管理办法》等国家标准和配套的顶层制度,逐步提升全行业中涉及信息网络领域的整体安全管理水平。

(2)在业务融合方面,需要引导相关行业认识到安全能力的提升对业务能力增强的积极意义,以及两者相辅相成的关系,促进其做好充分的思想和物质准备去迎接变革。

(3)在成本方面,建立市场促进机制,推动相关行业通过市场手段共享成果,降低成本,为提升网络能力构建基础。

5、结 语

本文针对零信任网络在现实中推广存在的诸多难题,从体系架构、技术方法、管理制度等多角度进行了多方面的分析。结果表明,充分认识零信任思想本质,结合实际情况,采用契合业务和网络特点的技术方法,各行各业都能够利用零信任思想加强网络防御能力,有效降低网络安全风险。

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

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

相关文章

Unity 性能优化一:性能标准、常用工具

性能标准 推荐耗时: 性能提现到玩家直观感受,就是帧率,为了达到要求的帧率,就要控制CPU的耗时,不同类型的游戏,对帧率要求不一样。下面是推荐耗时: 推荐内存: 避免游戏闪退的重点…

network failed to load response data: no resource with given ide...

Chrome 开发者工具无法显示服务器正常返回的 HTTP 请求 - Failed to load response data 今天做开发时遇到一个问题,Chrome 开发者工具 network 标签里,虽然一个 HTTP 请求已经成功从服务器端返回,但是 Chrome 开发者工具里,仍然…

Cisco学习笔记(CCNA)——Open Shortest Path First (OSPF)

Open Shortest Path First (OSPF) 动态路由协议介绍 动态路由协议: 向路由表中添加远程网络 探索网络 更新和维护路由表 自主网络探索: 通过共享路由表信息路由器能探索到新的网络 动态路由协议的分类 内部网关协议(IGP) 适…

华为数通HCIP-ISIS高级

isis区域间的互访 1、L2区域 to L1区域 在L1区域发布的路由会以L1-LSP在L1区域内传递,到达L1-2路由器时,L1-2路由器会将该L1-LSP转换为L2-LSP在L2区域内传递; 因此L2区域的设备可以学习到L1区域的明细路由,进行访问;…

通过 API 远程管理 Jenkins

目录 前言: 背景介绍 Jenkins Remote API 的简介 Jenkins Remote API 的调用 Read More ... 前言: Jenkins 是一种开源的持续集成工具,可以帮助我们更加方便地进行软件开发和测试工作。通过 API 远程管理 Jenkins 可以帮助我们更加方便…

Windows 11 22H2 中文版、英文版 (x64、ARM64) 下载 (updated Jul 2023)

Windows 11 22H2 中文版、英文版 (x64、ARM64) 下载 (updated Jul 2023) Windows 11, version 22H2 官方原版,2023 年 7 月 更新 请访问原文链接:https://sysin.org/blog/windows-11/,查看最新版。原创作品,转载请保留出处。 作…

(三)RabbitMQ七种模式介绍与代码演示

Lison <dreamlison163.com>, v1.0.0, 2023.06.22 七种模式介绍与代码演示 文章目录 七种模式介绍与代码演示四大交换机四种交换机介绍 工作模式简单模式&#xff08;Hello World&#xff09;工作队列模式&#xff08;Work queues&#xff09;订阅模式&#xff08;Publis…

Qt 类似vscode和matlab的分屏显示效果

运行截图 向右分屏 多分屏 全屏显示 介绍 实现了一个类似vscode和matlab的标签页显示分屏效果&#xff0c;支持鼠标拖拽分屏、全屏显示&#xff0c;可自适应调整大小&#xff0c;程序把要显示的Widget独立出来&#xff0c;可随时替换为其他的用户自定义Widget&#xff0c…

挂载文件系统

文章目录 注册文件系统类型挂载文件系统系统调用mount绑定挂载挂载命名空间1.标准的挂载命名空间2.共享子树&#xff08;1&#xff09;共享挂载&#xff08;2&#xff09;从属挂载&#xff08;3&#xff09;私有挂载&#xff08;4&#xff09;不可绑定挂载 挂载跟文件系统1.根文…

YOLOv5改进RepViT结构:清华 ICCV 2023,原创Bottleneck设计

RepViT: Revisiting Mobile CNN From ViT Perspective 论文方法从块设计改进YOLOv5结构核心代码1核心代码2核心代码3yaml1yaml2yaml3论文:https://arxiv.org/pdf/2307.09283.pdf   代码:https://github.com/THU-MIG/RepViT 最近,轻量级视觉 Trans

Android App 持续集成性能测试:启动流量

目录 前言&#xff1a; get app UID 获取流量数据 获得启动流量数据 总结 前言&#xff1a; Jenkins 是一种开源的持续集成工具&#xff0c;可以帮助我们更加方便地进行软件开发和测试工作。通过 API 远程管理 Jenkins 可以帮助我们更加方便地进行 Jenkins 的配置和管理工…

临时文档3

值传递 当一个对象被当作参数传递到一个方法后&#xff0c;此方法可改变这个对象的属性&#xff0c;并可返回变化后的结果&#xff0c;那么这里到底是值传递还是引用传递 是值传递。Java 语言的方法调用只支持参数的值传递。当一个对象实例作为一个参数被传递到方法中时&…

什么是Java中的JVM(Java虚拟机)?

JVM&#xff08;Java虚拟机&#xff09;是Java平台的核心组件之一&#xff0c;是一个用于执行Java字节码的虚拟计算机。Java源代码经过编译器编译&#xff0c;生成字节码文件&#xff08;.class文件&#xff09;&#xff0c;然后由JVM来解释和执行这些字节码。JVM负责将字节码翻…

比较6组迭代次数的大小顺序

( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 让网络的输入只有3个节点&#xff0c;AB训练集各由6张二值化的图片组成&#xff0c;让A&#xff0c;B中各有5个点&#xff0c;并且让这10个点的位置没有重合。比较迭代次数。 其中有6组数据 差值结构 A-B 迭代次数 差值结构 构造平均…

tabs-pane锚点

目录 隐藏滚动条 锚点 <div class"right-wrap"><mds-tabs position"right" v-model"active" change"scroll(active, $event)"><mds-tabs-pane v-for"i in moduleNames" :key"i.val" :tab"i…

Android Service启动ANR原理

一、前言 在Service组件StartService()方式启动流程分析文章中&#xff0c;针对Context#startService()启动Service流程分析了源码&#xff0c;其实关于Service启动还有一个比较重要的点是Service启动的ANR&#xff0c;因为因为线上出现了上百例的"executing service &quo…

力扣 435. 无重叠区间

题目来源&#xff1a;https://leetcode.cn/problems/non-overlapping-intervals/description/ C题解1&#xff1a;对区间进行排序&#xff0c;根据区间的末端进行排序&#xff0c;小的在前&#xff0c;大的在后&#xff1b;由于有重复区间&#xff0c;我们拿后面的区间去看是否…

产品设计思考:如何平衡用户习惯和用户体验

在产品设计领域&#xff0c;平衡用户习惯与用户体验之间的关系是一个重要而复杂的任务。 用户习惯是指用户在长期使用产品过程中逐渐形成的一种行为模式&#xff0c;而用户体验则是用户在与产品交互时所感受到的整体感受。 在追求良好的用户体验的同时&#xff0c;还需要考虑用…

【广州华锐互动】AR智慧机房设备巡检系统

AR智慧机房设备巡检系统是一种新型的机房巡检方式&#xff0c;它通过使用增强现实技术将机房设备、环境等信息实时呈现在用户面前&#xff0c;让巡检人员可以更加高效地完成巡检任务。 首先&#xff0c;AR智慧机房设备巡检系统具有极高的智能化程度。该系统可以根据用户设定的…

C语言每天练习----输出乘法口诀表

题目&#xff1a;乘法口诀表 内容&#xff1a;在屏幕上输出9*9乘法口诀表 #define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>int main() {int a 0;int b 0;for (a 1; a < 9; a) {for (b 1; b < 9; b) {printf("%d*%d%2d\t", a, b, a*b);}}retu…