读零信任网络:在不可信网络中构建安全系统18零信任代理

news2024/9/23 1:23:00

1. 零信任代理

1.1. 零信任代理是应用级代理服务器,用来保护零信任网络,它是处理认证、授权以及加密的基础设施

1.2. 零信任代理分为反向代理和前向代理两种工作模式

  • 1.2.1. 运行时可以同时采用这两种工作模式,也可以只采用其中的一种

  • 1.2.2. 在反向代理工作模式下,代理接收来自零信任客户端的连接请求,并接收初始连接,校验此连接是否应该被授权,授权通过后,把客户端请求传递给后端的应用系统处理

  • 1.2.3. 在前向代理工作模式下,非零信任感知的组件需要向另一个零信任系统发出网络请求

    • 1.2.3.1. 因为非零信任感知的组件不能和零信任控制平面交互,所以不能正确地初始化该请求,只能通过认证代理完成请求的初始化

1.3. 利用代理构建零信任网络时,代理应该以嵌入式的方式部署在运行工作负载的设备上

  • 1.3.1. 以这种方式构建零信任网络,所有工作负载的网络通信流量在进入网络之前都会被强制引流到代理上

1.4. 最好不要把零信任代理部署在一台单独的外部设备上

  • 1.4.1. 把零信任职责交由外部设备代理的做法违背了零信任模型声称的保证所有流量安全的目标

  • 1.4.2. 这种做法不能保证代理/负载均衡器和后端服务之间的流量安全

1.5. 如果系统管理员对于网络中的设备和服务没有完全的控制权,那么构建零信任网络就会变得非常困难

1.6. 在不可修改的组件和零信任网络之间部署零信任代理,就可以让该组件参与到零信任网络中来,尽管不能保证足够高的安全性

1.7. 将非零信任感知的组件完全隔离非常重要,而且这种隔离必须保证流入和流出该组件的网络流量都只能经过认证代理

  • 1.7.1. 如果可能,代理最好采用串联部署而非旁路部署模式

2. 客户端与服务端迁移

2.1. 通常首先是从客户端—服务器之间的交互着手实现零信任模型

  • 2.1.1. 客户端一般是指移动设备或者源自非受控网络的访问服务

  • 2.1.2. 零信任架构的自动化系统需要兼容多种客户端操作系统

  • 2.1.3. 不是每个客户端设备都能安装现有的自动化系统

  • 2.1.4. 在客户端—服务器层面构建零信任将会面临很多挑战

2.2. 从服务器—服务器之间的交互着手构建零信任网络相对来说更容易一些

  • 2.2.1. 服务器通常都已经安装了自动化工具

  • 2.2.2. 服务器供应商的数量相对较少,对系统自动化工具的兼容性要求也更低

  • 2.2.3. 从安全角度考虑也应当尽快着手实现服务器之间的零信任

    • 2.2.3.1. 服务器通常是那些保存敏感数据的系统,所以它们也是攻击者的攻击目标

2.3. 网络安全较薄弱的环节恰恰是构建零信任网络的着手点

2.4. 使用威胁建模方法可以预测攻击者会在组织的哪些脆弱点进行攻击、如何攻击,然后依此决定在哪里投入资源和时间研究以实现零信任

3. PagerDuty的云无关网络

3.1. PagerDuty系统的日常运营重度依赖广域网(WAN)通信

  • 3.1.1. 互联网的网络环境相对比较恶劣,可能会出现意外的高延迟和数据包丢失等状况

  • 3.1.2. 广域网的通信需要采用认证和加密机制以保证数据的隐私和完整性

3.2. 部署无边界的零信任网络成为理想的解决方案,零信任网络集群中的每个节点都仅仅负责它自己的通信,可以实现故障的隔离

3.3. 配置管理系统作为自动化平台

  • 3.3.1. Chef系统

    • 3.3.1.1. Chef已经被用来配置系统中的虚拟机,因此它是一个理想的、随时可用的自动化系统,可以利用它来构建零信任网络
  • 3.3.2. 好处

    • 3.3.2.1. 网络计算资源能够随着实例数量的增减而自动伸缩,随着网络的扩展,这种伸缩性能够降低购买更大的共享硬件服务器的需求

    • 3.3.2.2. 更好地隔离故障

      3.3.2.2.1. 该方案事实上是采用大量“微型防火墙”代替了传统的完整防火墙

      3.3.2.2.2. 即使微型防火墙失效,也只是影响很小范围的网络流量

  • 3.3.3. 贯穿整个网络设计的分布式策略的缺点

    • 3.3.3.1. 需要持续校验预期策略的状态,以确保所有节点正确地执行预期策略

    • 3.3.3.2. 策略变更会逐步作用到整个集群

  • 3.3.4. 选择合适的配置管理工具作为着手点,能够快速实现零信任网络的理念落地,但是配置管理工具并不是理想的长期解决方案

  • 3.3.5. 随着零信任网络的成熟度不断提高,管理员应该尽快摆脱对Chef系统的依赖,实现自己的自动化平台,以获得最佳性能,为目标进行部署并持续迭代调优

    • 3.3.5.1. 随着网络规模的扩大,系统的配置不再依赖Chef,而是由一个专用服务负责

3.4. 动态配置本地防火墙

  • 3.4.1. Chef系统需要基于现有的系统知识生成IPtable配置

  • 3.4.2. 每个主机都需要构建IPtable链表,枚举特定角色的服务器的IP地址,然后就可以使用这些链表来定义基于角色的访问控制规则

3.5. 分布式流量加密

  • 3.5.1. PagerDuty实现了一个基于IPSec主机—主机模式的网状网络

    • 3.5.1.1. 所有数据包都经过系统中每个节点的加密和认证

    • 3.5.1.2. 因为认证和加密是在系统中分布式部署的,所以这些关键功能会随着主机数量的增加而增长

  • 3.5.2. 3个问题

    • 3.5.2.1. 不是每个应用都能正确实施加密规范

    • 3.5.2.2. 缺乏响应安全漏洞的配置控制手段

    • 3.5.2.3. 导致系统性能降低

  • 3.5.3. 为了保证安全能力的一致性,系统管理员应当把TLS基础设施从应用系统中剥离出来

  • 3.5.4. 随着系统中应用程序的数量不断增加,越来越多的系统倾向于利用过程外(Out-Of-Process)加密机制来保证网络通信安全

  • 3.5.5. IPSec通信通常采用ESP数据包传输,但是有些云服务提供商不能路由ESP数据包,所以需要使用UDP数据包封装所有IPSec流量

    • 3.5.5.1. 优点是可以有效处理随着主机数量增加而不断增长的业务吞吐量

    • 3.5.5.2. 缺点:初次上线运行时,IPSec通信双方的状态不一致经常会导致通信的失败,而这类问题对于网络的生产运营至关重要

  • 3.5.6. 分布式流量加密也采取了渐进式部署模式

    • 3.5.6.1. 以空操作(No-Op)的方式在系统集群中部署IPSec策略,这些策略用于控制网络流量是否应该使用IPSec通信

    • 3.5.6.2. 不使用(None)​:不使用IPSec通信

    • 3.5.6.3. 使用(Use)​:如果通信双方可以通过协商调整关系参数,那么最好使用IPSec

    • 3.5.6.4. 必须(Required)​:必须使用IPSec通信

    • 3.5.6.5. 在实际应用中,不能直接把整个网络同时配置成“使用”状态,而是先将一小部分网络迁移到“使用”状态,然后再将它们重新配置成“必须使用”状态

3.6. 用户管理的去中心化

  • 3.6.1. PagerDuty的用户访问控制也是集中式部署的,但是其用户管理没有依赖中心化的LDAP系统,而是由网络中的每个主机构建本地用户和群组

  • 3.6.2. 系统根据LDAP服务器和其他相关数据库中的信息,集中完成用户和群组的定义

3.7. 部署上线

  • 3.7.1. 步骤

    • 3.7.1.1. 定义新策略

    • 3.7.1.2. 在不影响生产系统的情况下部署策略,同时收集有用的测量指标和日志

    • 3.7.1.3. 长期收集监测测量指标或日志,确保整个系统运行在期望状态下

    • 3.7.1.4. 策略逐渐覆盖整个系统集群,从只覆盖系统的一部分直到百分之百完全覆盖

3.8. 供应商无关系统的价值

  • 3.8.1. 构建与供应商无关的系统需要巨大的工程投入

  • 3.8.2. 供应商无关网络将显著减少供应商移除过程所花费的时间,并且降低了风险

  • 3.8.3. 调研新供应商

  • 3.8.4. 试新供应商的系统

  • 3.8.5. 使用Chef自动化系统重新配置

  • 3.8.6. 真正对生产系统部署变更的时间只需要1周,并且不会对客户造成任何影响

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

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

相关文章

libcurl8.9.1 上传json

在postman中 PUT----》body----》raw----》json 结构体定义: #define MAX_ARRAY_SIZE 5*1024*1024struct SMART_DATA_CACHE {char* buf;long dwTotalLen;SMART_DATA_CACHE(){dwTotalLen 0;buf nullptr;while (!buf) {try {buf new char[MAX_ARRAY_SIZE];}c…

C++:有序关联容器set

什么是有序关联容器 (1)顺序容器,容器中的元素是按它们在容器中的位置来顺序保存和访问的(可以理解是数组) (2)顺序容器有array、vector、deque、list、forward_list、string等 (3)关联容器中的元素是按关键字来保存和访问的,关联的意思就是关键字&…

STM32-外部中断-AFIO-串口-串口通信-串口中断(空闲中断和接收中断)-printf移植-ADC数模转换-初始化和读取光敏电阻AO

常用的中断包括外部中断、串口中断、定时器中断; 1、外部中断: 引脚复用按钮导致的外部中断: 注意:初始化引脚,添加引脚和EXTI输入线的映射;使用外部引脚的中断时需要使用AFIO映射; 操作步骤&…

如何获取android的SHA1或SHA256

在使用地图类的功能时,例如百度地图或者高德地图,会需要在开发者平台里填写SHA1或SHA256的指纹密钥,很多开发者小伙伴还不知道如何获取。当然关于如何获取android的SHA1或SHA256,网络上进行搜索已经有很多图文教程了,本…

mfc140u.dll丢失的科学修复手段,简单又方便的mfc140u.dll修复

遇到 "缺失 mfc140u.dll 文件" 的提示时可能会让你疑惑,但不用担心。这个文件是 Microsoft Visual C 2015 的重要组成部分,对运行特定程序非常关键。幸运的是,解决这一问题并不难。本文将简单指导你如何恢复或修复丢失的 mfc140u.d…

多台PC网络ADB连接同一台RK3399 Android7.1.2设备

在RK3399 Android7.1.2上面,进行网络ADB调试时,如果多台电脑连接同一台Android设备,第一台连接上的能正常操作,之后连接的看到设备状态为OFFLINE,分析了下ADBD相关代码,发现在ACCEPT Client的时候没有区分别…

设计师必备:2024最新PDF转CAD软件盘点

随着科技的飞速发展,设计师们不再受限于传统的设计流程,可以利用一些新欣的工具来提升工作效率、优化工作流程的新工具。其中,PDF转CAD工具成为了设计行业的一大热门话题。面对海量的数据和复杂的设计需求,一款高效、精准的PDF转C…

11、MySQL-SQL优化

目录 1、插入数据 1.1、批量插入 1.2、手动提交事务 1.3、主键顺序插入 1.4、大批量插入数据 2、主键优化 2.1 页分裂 2.2 主键顺序插入 2.3 主键乱序插入 2.4 页合并 2.5 主键的设计原则 3、order by优化 4、group by优化 5、limit优化 6、count优化 6.1 coun…

【Bifrost】ubuntu24.04 远程构建及clion设置编码风格google

Bifrost 构建通过clion 远程到ubuntu24.04 构建感觉是不认识这种写法,这种至少是c++11 fix : 修改absl 的构建cmakelist,明确c++17 好像还是不行error: ‘uint8_t’ was not declared in this scope加入:#include <stdint.h>可以解决一部分。那么,这种呢?/home/zha…

浅谈 DNS 篡改劫持

故事背景&#xff1a;产品反馈线上站点操作后跳转至空白页面&#xff0c;浏览器 URL 地址异常&#xff0c;ping 命令测试后定位可能是 DNS 解析异常&#xff0c;联系七牛云技术人员排查&#xff0c;反馈是由于带宽突变&#xff0c;触发节点防攻击策略所致&#xff0c;后续先调整…

keepalived安装-集群部署

1.服务器信息 服务器版本服务器IP介质版本安装用户CentOS Linux release 7.9.2009 (Core)192.168.10.244keepalived-2.2.8.tar.gz nginx-1.26.1 rootCentOS Linux release 7.9.2009 (Core)192.168.10.245keepalived-2.2.8.tar.gz nginx-1.26.1 root2.服务器基础配置 参考:Lin…

二、AI工作流(低代码)-输入-文本组件详解

对工作流感兴趣的小伙伴可以去试一试。&#x1f525;偷偷的告诉你&#xff0c;它的GPTo4.0 mini 不要&#x1f4b0;。传送门&#xff1a;https://www.nyai.chat/chat?invitenyai_1141439 一、能用AI工作流介绍 能用AI-工作流是一个“低代码”工具、它也是个人或者中小企业的…

Spring源码调试环境搭建(IDEA)

文章目录 引言开发环境搭建步骤步骤一&#xff1a;下载 Spring Boot 源码步骤二&#xff1a;导入项目到 IntelliJ IDEA步骤三&#xff1a;处理build报错报错一报错二 测试步骤新建module修改build.gradle新建测试类启动测试 引言 无论是面试&#xff0c;还是工作&#xff0c;S…

政安晨【零基础玩转各类开源AI项目】基于本地Ubuntu系统部署及应用歌唱语音转换框架NeuCoSVC:歌曲音色转换工具

目录 论文简介 部署 模型下载 编译REAPER 最后 政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; 本文目标&#xff1a;《Neural Concate…

模拟三层--控制层、业务层和数据访问层

三层的概念:https://developer.aliyun.com/article/1390024 一、新建一个项目 我新建好的项目名为spring__ioc_02,然后在 src-main-java 下建立三层&#xff08;数据访问层、业务层和控制层&#xff09;的包 dao、service 和controller、并在包下建立相应的接口和实现类 Proje…

网络命令之查看网口最大网速的一些方法?(/sys/class/net/ethx/speed、ethtool ethx)

文章目录 背景方法1: sysfs的net方法2&#xff1a;ethtool方法3&#xff1a;通过网卡型号获取方法4&#xff1a;通过网卡lspci输出信息直接获取方法5&#xff1a;高性能网卡可以通过物理连线光口信息获取后记 背景 经常需要查看不同网卡的网速&#xff0c;甚至相同大版本型号网…

一个简单的pytorch项目框架

框架的基本功能&#xff1a; 1. 模型的定义、训练与测试 2. 数据生成与数据迭代器 3. 训练日志记录 4. 训练过程实时监控 有了这个框架&#xff0c;后续所有复杂的AI项目都可以在此基础上拓展开发。 项目基本结构&#xff1a; 四个文件&#xff1a; sequence_mean_generate…

C++初阶_2:引用

本节咱们来说说引用&#xff1a; C添加了“引用”&#xff0c;与指针成了两兄弟——这两兄弟对我们今后写C代码可谓各有特点&#xff0c;缺一不可。 何谓引用&#xff1f; 引用&#xff1a;就是取别名 不知诸位可有别名&#xff1f;这里不妨举一本耳熟能详的小说《水浒传》&…

Redis16-批处理优化

目录 Pipeline 集群下的批处理 Pipeline 单个命令的执行流程&#xff1a; N条命令的执行流程&#xff1a; N条命令批量执行&#xff1a; Redis提供了很多Mxxx这样的命令&#xff0c;可以实现批量插入数据&#xff0c;例如&#xff1a; msethmset 利用mset批量插入10万条数…

vivado报错:file ended before end of clause

最近在学习Xilinx FPGA时&#xff0c;遇到 Vivado 报错如下图所示&#xff1a; 刚开始&#xff0c;看到错误是在第1行代码中出现的&#xff0c;我的第一反应是该行代码写错了&#xff0c;然后搜了搜语法&#xff0c;发现没错。 分析报错信息发现&#xff0c;该错误应该是和文件…