读零信任网络:在不可信网络中构建安全系统04最小特权

news/2024/11/14 20:38:11/文章来源:https://www.cnblogs.com/lying7/p/18330066

1. 公钥基础设施

1.1. PKI

1.2. 数字证书本身并不能解决身份认证问题

1.2.1. 需要一种方法来验证获得的公钥的确属于某人

1.2.2. 公钥基础设施(PKI)解决了这个问题

1.3. PKI定义了一组角色及其职责,能够在不可信的网络中安全地分发和验证公钥

1.4. PKI的目标是允许无特权的通信双方通过共同信任的第三方来验证对方身份的真实性

1.5. PKI利用注册中心(RA)把通信实体的身份与其公钥进行绑定,然后把这种绑定关系内嵌入数字证书,并由可信的第三方进行数字签名

1.5.1. 只要发送方和接收方信任同一个第三方,发送方就可以使用经过第三方签名的证书来证明自己的身份

1.6. 证书授权中心(CA)和信任网络(WoT)是较受欢迎的两类供应商

1.6.1. CA的信任依赖于数字签名链,用户能够根据数字签名链回溯到初始的可信根节点

1.6.1.1. CA的流行程度远远超过信任网络

1.6.2. WoT没有使用信任链的形式,而是允许参与通信的系统断言对等方身份的有效性,最终形成相互背书的网状结构

1.6.2.1. WoT在PGP系统中得到了广泛使用

1.7. PKI通常被部署为公共的信任系统,签发和管理互联网上使用的X.509证书

2. CA

2.1. CA是数字证书链的信任锚,它们签署并公开发布公钥及其绑定的身份信息,允许无特权实体通过数字签名来验证这种绑定关系的有效性

2.2. CA证书用于表明CA自己的身份,CA证书对应的私钥用于签署由其颁发的客户证书

2.3. CA证书是众所周知的,所以通信实体可以使用CA证书来校验该CA颁发的客户证书的数字签名

2.4. CA作为可信的第三方,能够为客户签发并维护数字证书的有效性

2.5. CA作为可信的第三方拥有非常高的特权,因此必须不惜一切代价保护CA的安全性

2.5.1. CA的安全性一旦遭到破坏,就会导致灾难性的后果

2.6. X.509数字证书标准支持证书链,所以根CA可以保持离线状态

2.6.1. 离线状态的根CA可以得到更好的安全保护,这也是绝大多数PKI体系的根CA的标准做法

3. 零信任模型中PKI

3.1. PKI是零信任模型身份认证的基石,大多数零信任网络都采用PKI来证明身份的真实性

3.1.1. PKI可以绑定实体的身份和公钥

3.1.2. 需要安全地保存实体的私钥,并且应当使其尽可能靠近实体的物理位置,这在身份认证机制中是非常重要的一点

3.2. 零信任网络颁发的证书数量可能会很多,因此非常有必要对证书进行自动化管理

3.2.1. 数字证书的签发毕竟是敏感度很高的工作,因此很多系统在设计时都会保留人工可以介入的审批流程

3.3. 虽然公共PKI非常适合作为互联网的信任基础设施,但是却不适合零信任网络

3.4. 为什么公共PKI不适合零信任网络?

3.4.1. 突出缺点是成本

3.4.1.1. 机构都是商业化运作的,签发证书需要收取费用

3.4.1.2. 零信任网络可能会使用大量的证书,如果考虑到凭据轮换策略,证书的使用量会更大,这会产生高昂的证书签发费用,很多组织难以承受

3.4.2. 另一个重大缺点,那就是CA机构的可信度问题

3.4.2.1. 很多公共的CA机构是由不同的国家和政府运营的

3.4.2.2. 任何一个CA机构出现问题,都会切断整个零信任网络的信任

3.4.2.3. 只使用特定的某一个公共CA,但是如果它与其他组织使用的CA没有交集,那么如何建立和保持信任就是一个挑战

3.4.3. 使用公共CA会影响零信任网络的灵活性和可扩展性

3.4.3.1. 零信任网络为了完成身份认证,可能需要在证书中存储与组织相关的元数据,比如用户角色或用户ID等

3.4.3.2. 规定并不一定适用于特定组织的零信任网络

3.5. 使用公共PKI总比完全没有PKI要好

3.5.1. 如果在零信任网络建设的初期选择使用公共PKI,那么在意识到风险变大时,需要有明确的路径能够切换成使用私有PKI

4. 最小特权

4.1. 最小特权原则是指一个实体应该只被授予完成任务所需要的特权,而不是被授予该实体想要得到的权限

4.2. 最小特权原则能够极大降低用户或应用程序滥用权限的可能性

4.2.1. 对应用程序来说,最小特权通常意味着其运行在服务账号、容器或“监狱”(Jail)中

4.2.2. 对用户来说,最小特权通常表现为“只有工程师才能访问源代码”这样的安全策略

4.2.3. 终端设备也同样需要考虑最小特权原则,但通常情况下终端设备采用与用户或应用程序相同的策略

4.3. 以保护隐私的名义进行网络数据包加密是一种经常被忽视的最小特权应用

4.4. 如果确实需要更高的访问权限,那么用户可以并且只能在需要的时候获得这些特权

4.4.1. 当需要提升权限时,则需要使用拥有更高权限的独立账户执行操作

4.4.2. 提升用户的权限通常需要验证其身份

4.5. 零信任网络的情形与之类似,用户在大多数情况下以最小特权模式访问网络资源,只在需要执行敏感操作时才提升权限

4.5.1. 对于风险相对较低的操作,特权提升过程可以很简单,只需重新提示用户输入口令、要求出示双因素认证令牌或者给用户的手机推送认证通知

4.5.2. 对于高风险的操作,可以选择通过带外方式要求相关人员进行主动确认

4.6. 强制性关联身份认证的过程和现实世界是一个不错的办法,这能够避免已被攻陷的系统干扰正常的操作

4.6.1. 人们在配置一台新的计算机时,第一步往往就是禁用保护计算机应用程序的安全框架,这几乎成了常态

4.7. 零信任网络中的特权比传统网络更具有动态性

4.7.1. 除了用户,零信任网络也应当为应用程序配置最小特权

4.7.2. 零信任网络还需要考虑设备的特权

4.7.2.1. 这种方式有效地降低了用户凭据丢失或被盗而造成的损失和影响

4.8. 传统网络中的安全策略往往是静态的,如果遇到需要更高特权的情形,则特权的请求者通常需要说服系统管理员变更安全策略,或者请求系统管理员代替他们执行操作,后一种做法更普遍

4.8.1. 在管理相对宽松的组织中,特权数量会随着时间的推移而逐渐增长,最终导致最小特权原则失效

4.8.2. 无论组织的管理是宽松还是严格,系统管理员都被赋予了更高的访问权限,这会导致其成为攻击者实施网络钓鱼攻击的主要目标

4.9. 零信任网络依靠网络活动的诸多属性来分析当前访问请求的风险

4.9.1. 时间属性

4.9.1.1. 某用户在正常活动时间窗口之外的访问请求更加可疑

4.9.2. 空间属性

4.9.2.1. 某用户从与上次访问不同的地理位置发起访问请求

4.9.3. 行为属性

4.9.3.1. 某用户试图访问通常情况下不应该访问的资源

4.9.4. 用户在正常工作时间从其正常地理位置访问数据库的请求应该被授权,但是从新的地理位置或者在非工作时间访问数据库的请求则被要求使用多因子身份认证

4.9.5. 基于网络活动的风险分析主动调整访问权限的能力是零信任网络的安全特性之一

4.9.5.1. 通过动态调整安全策略和访问权限,零信任网络能够积极应对已知和未知的恶意攻击

5. 可变的信任

5.1. 信任管理是网络安全管理中非常困难的工作

5.1.1. 安全网络的黄金标准:根本就不存在高特权的系统管理员

5.2. 定义信任策略这项工作通常由安全工程师手工完成

5.2.1. 初级的用户权限区隔(如超级用户、管理员和普通用户),很难满足高级用户的需求

5.2.2. 安全策略变更之后导致的影响范围也同样很难界定,于是系统管理员对策略的变更非常谨慎

5.2.3. 权限分配通常也是手工作业,系统管理员根据用户在组织中的职责为其分配相应的权限

5.2.4. 管理员不得不制造出许多信任池(pool of trust)

5.3. 安全策略动态性不足,无法应对日益变化的网络安全威胁

5.3.1. 需要重新思考网络参与者的信任关系,意识到网络参与者的信任是基于参与者过去和当前的行为而不断变化的

5.3.2. 安全策略的定义不仅基于确定性的描述,还要基于不断变化的度量分值,这为系统提供了一种防御任意威胁的机制

5.3.2.1. 持续监视参与者的网络活动,并据此持续更新其信任评分,然后使用这个评分作为授权策略判定的依据之一

5.3.2.2. 能够对确保信任所需的检查与平衡进行细粒度的决策判定

5.4. 安全成熟度比较高的组织会针对网络活动部署审计设备,执行审计流程,但是审计工作的执行频率往往不高,而且坦率地说,网络活动的审计工作非常乏味,以至于没人愿意认真做好这件事

5.5. 由于零信任网络中的所有网络流量都是加密的,因此传统的流量监听方法很难达到预期的效果,只能看到有限的内容

5.6. 强策略是信任的“增压器”

5.6.1. 基于信任评分的策略能够根据历史行为等多种变量动态影响授权的判定结果,这将极大地改善网络的安全态势

5.6.2. 经由这种机制检查和授权的访问会话有更高的可信度

5.6.3. 这种信任评分积累机制可以显著降低此依赖,从而改善用户的使用体验

5.6.4. 用户的信任评分能够基于历史行为而降低,同样也可以基于历史的可信行为而增加

5.6.4.1. 只要延长用户积累信任所需的“正常”行为的时间,就能够延缓攻击者积累信任的进度,从而应对这种威胁

5.6.4.2. 把敏感操作的若干条信息公布给控制平面,并将其配置成只有可信位置的可信用户才能够访问

5.6.4.3. 既可以显式描述确定的授权策略,又可以通过计算信任评分的方式应对未知的威胁

5.6.5. 单一的评分值是否足以保护所有的敏感资源

5.7. 安全策略和用户组织角色之间的解耦可能会给最终用户带来一定的困扰

6. 控制平面和数据平面

6.1. 基本思想是,网络设备有控制平面和数据平面两个逻辑域,这两个逻辑域之间存在清晰的接口

6.2. 数据平面的作用是转发网络流量,它需要高速处理数据包,因此其处理逻辑相对简单,通常使用专用硬件

6.2.1. 零信任网络中的数据平面由直接处理网络流量的应用程序、防火墙、代理服务器和路由器组成

6.2.2. 不能使用数据平面上的服务来获得控制平面的特权,从而在网络中横向移动

6.2.2.1. 数据平面与控制平面之间的接口必须非常清晰,确保数据平面中的系统不会因为被攻陷而导致在网络内横向移动

6.2.3. 数据平面和控制平面系统之间的交互请求必须使用私有PKI系统进行身份认证和加密,以确保接收方的可信度

6.3. 控制平面可以看作是网络设备的大脑,系统管理员用它来配置管理网络设备,因此控制平面会随着策略的变化而变化

6.3.1. 控制平面的强可塑性导致其无法处理高速网络数据包流量

6.3.2. 任何在数据平面执行的策略行为,都要尽可能减少向控制平面发送请求(相对于网络流量速率来说)

6.3.3. 控制平面和数据平面之间的接口应当类似于操作系统内核空间和用户空间之间的接口,为了防止提权攻击,两个系统之间的交互需要进行高度隔离

6.3.4. 控制平面是整个网络的信任授予者

6.3.4.1. 由于控制平面对网络行为的控制力度非常大,因此其自身的可信度至关重要

6.3.4.2. 零信任网络中存在这样一个具有极高特权的参与者

6.3.5. 控制平面授予数据平面的某个参与者的信任应该具有时效性

6.3.5.1. 租用访问令牌或短生命周期证书是实现这一原则的较合适的解决方案

6.3.5.2. 通过限制数据平面和控制平面进行凭据交互的时间窗口,能够降低对网络进行物理攻击的可能性

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux工作原理13用户环境

13用户环境 本书主要关注 Linux 系统中通常作为服务器进程和交互式用户会话基础的部分。但是,系统和用户最终还是要在某个地方相遇。在这一点上,启动文件扮演着重要角色,因为它们为 shell 和其他交互式程序设置了默认值。它们决定了用户登录时系统的行为方式。 大多数用户不…

[vue3] Vue3源码阅读笔记 reactivity - baseHandlers

vue3的reactivity模块的baseHandlers主要为普通对象和数组的Proxy实现了拦截操作的处理,通过3个类分别实现了getter和setter等操作的拦截,并对一些数组原型上的方法做了特殊处理,使得数组操作可以更好地适配vue的响应式系统。源码位置:https://github.com/vuejs/core/blob/…

Go语言结构体(struct)面向对象编程进阶篇(封装,继承和多态)

作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 目录一.Go语言的封装(encapsulation)实现1.什么是封装(encapsulation)2.封装(encapsulation)的好处3.golang如何实现封装(encapsulation)4.代码实现4.1 代码组织结构4.2 创建go.mod文件4.3 dongman.go4.4 mai…

解决历理 如何用cmd运行小键盘

cmd不可以直接运行键盘上的按键,但是可以打开电脑上的软键盘来对应键盘键。 打开软键盘来运行键盘上的按键步骤如下: 1、点击Windows徽标键和R键,在出现的窗口中输入cmd; 2、点击确定,弹出命令提示符窗口; 3、在命令提示符窗口输入osk,点击键盘上的Enter,屏幕上就会出现…

ARGOCD用户管理

1.创建用户alice kubectl apply -f argocd-cm.yamlapiVersion: v1 kind: ConfigMap metadata:name: argocd-cmnamespace: argocdlabels:app.kubernetes.io/name: argocd-cmapp.kubernetes.io/part-of: argocd data:# add an additional local user with apiKey and login capab…

全网最适合入门的面向对象编程教程:27 类和对象的Python实现-Python中异常层级与自定义异常类的实现

本文主要介绍了在使用Python进行面向对象编程时,异常的层级和如何使用继承关系完成自定义自己项目中异常类,并以传感器数据采集为例进行讲解。全网最适合入门的面向对象编程教程:27 类和对象的 Python 实现-Python 中异常层级与自定义异常类的实现摘要: 本文主要介绍了在使…

初识WPF

1.新建wpf程序,app.xaml文件说明: 2.Attribute特征:为了表示同类标签中的某个标签阈值不同,可以给它的特征赋值: 3.命名空间的引用:使用xmlns特征来定义名称空间:语法格式为:xmlns[:可选的映射前缀]=“命名空间”,如果没有写映射前缀,说明是默认的命名空间: 4.x:Cl…

认知觉醒-1-大脑的构造

最近重新开始审视自己的生活和规划,无意间在微信读书上看到了《认知觉醒》这本书评价挺不错的,所以通过听书和看书的方式进行了学习,感觉对自己的现状很有启发,简单记录一下自己的读书心得。 大脑的构造导致了你就是不爱学习 本书提到,人类的大脑是由三部分构成的,可以分…

前端断点及使用

原文链接:https://www.cnblogs.com/sunny3158/p/17797552.html 一、打断点的方式1.找到源码位置,添加断点(1)寻找源码位置①如果是正常html页面,那么源码一般是在对应域名下面。如果是webpack处理的页面,并且开启了源码映射,源码就是在webpack://下面。可通过快捷键ctrl…

emojiCTF2024

emojiCTF2024emojiCTF2024 WEB http 题目: ​​ 思路:修改 UA 头为 EMOJI_CTF_User_Agent_v1.0:User-Agent: EMOJI_CTF_User_Agent_v1.0​ 修改 http 方法,试了一下,修改成 PUT,可以 添加一个自定义头部,EMOJI-CTF-Auth: Passw0rd!​ 抓包修改就行,成功后在路径上加个 …

2024 年巴黎奥运会 All In One

2024 年巴黎奥运会 All In One2024 年巴黎奥运会 All In One https://olympics.com/zh/paris-2024 奖牌统计 - 2024年巴黎奥运会奖牌榜 https://olympics.com/zh/paris-2024/medals https://olympics.com/zh/paris-2024/medals/medallistsmewatch https://www.mewatch.sg/paris…

7.29.01

fish = 1while True:temp, YES = fish, Truefor _ in range(5):if (temp-1)%5 == 0:temp = (temp-1)//5 * 4else: YES = Falseif YES:print(fish)breakelse: fish += 13121