读零信任网络:在不可信网络中构建安全系统17无控制器架构

news2024/11/24 19:02:57

1. 建立系统框图

1.1. 实现零信任网络的第一步重要工作是建立系统框图

1.2. 系统框图能够帮助我们透彻地理解内部网络和外部网络间的通信模式,有助于系统通信信道的设计

1.3. 对于现有的网络来说,建议首先利用日志工具来记录网络流量,然后观察通信信息的流向,一旦捕获到网络流量信息,构造系统框图就是一个简单地将通信流量进行分类的过程

2. 理解网络流量

2.1. 网络流量是源系统和目标系统之间具有时间限制的通信

  • 2.1.1. 对于双向传输协议(如TCP协议)来说,单个网络流量能够完全覆盖一个完整的会话过程

  • 2.1.2. 对于单向传输协议(如UDP协议)而言,单个网络流量一般只能覆盖网络会话的单一方向的通信

2.2. 从逻辑上来说,捕获现有生产网络中的所有流量是现有网络系统向零信任模型转变的第一步

  • 2.2.1. 长期记录并分析网络流量是一种非侵入式的网络分析方法,它能够发现现有网络中存在哪些类型的网络连接,在新的安全模型下应当如何考虑安全设计

  • 2.2.2. 如果没有预先的网络流量收集过程,那么在现有网络系统向零信任模型迁移的过程中可能会引发频繁的网络通信问题,使得迁移过程具有过大的侵入性和破坏性

2.3. 网络流量的收集方式考虑因素

  • 2.3.1. 网络的类型

    • 2.3.1.1. 物理网络还是虚拟网络

    • 2.3.1.2. 物理网络的原始网络流量数据包很容易被捕获,大多数交换机都支持把数据包镜像到SPAN端口(镜像端口)

    • 2.3.1.3. 在网络负载不高的交换机上启用此方法是相对安全的,但是可能会造成网络中的某些错误数据包丢失

    • 2.3.1.4. 利用串接在网络中的TAP设备来捕获数据包,TAP设备能保证所有网络数据都被传输到监控设备上

    • 2.3.1.5. 虚拟网络自身提供了查看网络流量的能力,但这种能力仅停留在相对粗粒度的阶段

  • 2.3.2. 管理员对端点系统的访问级别

    • 2.3.2.1. 在端点系统可控的情况下,安装工具监听网络流量可以更细粒度地掌握网络流量的来源

    • 2.3.2.2. 收集并记录所有网络流量之后,下一个目标就是基于高层的系统级连接来对网络流量进行分类

      2.3.2.2.1. 零信任网络的很多安全操作都要基于这个系统级连接数据库来进行

2.4. 对超大规模网络而言,捕获和分类所有网络流量将会是一项非常繁重的工作

  • 2.4.1. 零信任网络可以在现有的基于边界安全模型的网络基础上分阶段实现,对网络流量的捕获也可以分阶段地进行

  • 2.4.2. 在完成一个网络区域的零信任模型改造之后,再逐渐扩展到其他网络区域,逐步实现全面的零信任网络

    • 2.4.2.1. 这种方法在增强现有网络的安全性的同时,也充分考虑了系统实现的可行性

3. 无控制器架构

3.1. 成熟的零信任网络的核心由几个控制平面系统构成,它提供关键的安全服务

3.2. 实现所有控制平面系统是一种非常理想的状态,在实际建设过程中,可以从现有的通用基础设施着手一步一步向理想架构迭代

3.3. 配置管理系统

  • 3.3.1. IT运营管理成熟的机构大多使用配置管理工具来管理其基础设施

  • 3.3.2. 配置管理系统可以计算出系统从当前状态到理想状态需要进行哪些配置变更

  • 3.3.3. 可以保持整个系统变更的一致性

  • 3.3.4. 配置数据可以保存在版本控制系统中,因此能够提供各种变更及其原因的历史记录

  • 3.3.5. 配置漂移发生的可能性微乎其微,因为配置状态受到配置管理系统的监管

  • 3.3.6. 部署配置管理系统的第一种用途通常是管理个人计算机的配置

    • 3.3.6.1. 个人计算机的初始状态通常为“白板”状态(即只安装操作系统的初始安装配置)​,然后配置管理系统会基于这些计算机在基础设施中的角色重新将它们配置成理想状态

    • 3.3.6.2. 以自动化的方式实现此配置过程可以使基础设施的变更简单易行

  • 3.3.7. 配置管理系统不仅有利于基础设施的管理,也可以作为通用的自动化管理框架

    • 3.3.7.1. 配置管理系统可以用作零信任网络的控制平面,提供部分安全功能
  • 3.3.8. 许多控制配置管理系统支持资源或操作集合的扩展机制,利用这些机制,可以在系统中构建更复杂的资源概念

    • 3.3.8.1. 可以定义服务资源的概念,用来表示所有使网络服务可用的标准基础设施
  • 3.3.9. 在部署配置管理系统时,应当以尽快使系统配置达到稳定状态为目标

    • 3.3.9.1. 配置管理系统只是实现零信任网络控制平面的一个过渡工具,最终将会由专用的控制器负责实现控制平面的功能

3.4. 应用认证和授权

  • 3.4.1. 零信任场景中的典型机构通常会提供很多服务,并且这些服务大多是使用客户端浏览器来访问

    • 3.4.1.1. 每项服务都必须具备认证和授权的能力
  • 3.4.2. 将每个应用系统与外部身份管理系统进行集成,以提供集中的认证和授权检查功能

    • 3.4.2.1. SAML(安全断言标记语言)​、OAuth2等都是用来集成应用系统和身份管理系统的协议和技术
  • 3.4.3. 应用系统使用集中式身份管理系统提供的认证和授权能力并不意味着其完全不需要具备授权能力

    • 3.4.3.1. 应用系统需要保留应用级授权能力,特别是在用户权限经常变化的情况下
  • 3.4.4. 正确的做法是把账户管理、用户认证以及高级别的授权/访问等任务交给外部集中式身份管理系统完成,而应用系统保留应用级授权操作

  • 3.4.5. 应用系统与身份管理系统集成提供认证能力时,必须使用多因子认证机制,确保用户凭证不会被轻易盗取

3.5. 认证负载均衡和代理

  • 3.5.1. 在后端系统中,对应用进行授权的较好方法就是在运行时插入一个临时凭证,可以是API密钥、短期证书等

  • 3.5.2. 每一个凭证都唯一代表了运行的应用实例

  • 3.5.3. 在采用负载均衡的系统中,负载均衡软件本身可以被看作是服务端应用,每个软件实例都需要首先使用临时凭证向上游主机标识自己

    • 3.5.3.1. 这一认证过程是终端设备认证的一种补充
  • 3.5.4. 负载均衡器就可以承担用户和客户端设备的认证和授权职责,在必要的情况下,它也可以与身份管理系统集成

  • 3.5.5. 使用安全令牌而不是TOTP(基于时间的一次性口令)

    • 3.5.5.1. 使用安全令牌的协议(如U2F)能够有效防御钓鱼攻击,同时对于用户来说其易用性也更好

    • 3.5.5.2. 应尽可能选择安全令牌系统代替传统的TOTP

3.6. 基于关系的策略

  • 3.6.1. 零信任提倡由控制平面负责将授权判定结果导入到网络中,然后建立可信通信

  • 3.6.2. 在基于关系的策略中,两个实体之间的通信安全策略的定义和控制与传统的防火墙数据包过滤机制非常类似,同时还要求使用TLS连接保证安全性

  • 3.6.3. 主要的区别在于策略的作用范围,零信任模型中的策略作用范围不再是网段之间的通信,而是设备之间的通信

    • 3.6.3.1. 这种机制也被称为“微边界”​

3.7. 策略分发

  • 3.7.1. 不完善的零信任网络不仅要考虑如何强制执行策略,还要考虑如何分发策略

  • 3.7.2. 如果在零信任网络部署中缺少控制平面,那么就必须用配置管理系统来弥补这一缺失

  • 3.7.3. 配置管理系统能够对设备进行动态的配置,使设备执行预期的网络通信,具体实现方法是根据关系策略数据库配置基于主机的防火墙

    • 3.7.3.1. 主机防火墙能够配置针对每台主机的强制执行策略,这种方式比防火墙的集中式强制执行全局策略更易于操作
  • 3.7.4. 利用现有的配置管理系统构建虚拟控制平面,就可以将执行责任分发到网络结构中

    • 3.7.4.1. 缺点

      3.7.4.1.1. 如果该策略被删除或者篡改,那么主机可能会受到损害

      3.7.4.1.2. 在策略被部署到系统之后,通过配置管理系统进行的变更往往不能在整个系统中长期保持一致

4. 定义和安装策略

4.1. 安全策略的保存应当独立于实施它们的个人设备

  • 4.1.1. 有利于执行安全策略的审计,检查安全策略的实施是否达到预期

  • 4.1.2. 在切换策略执行系统时可以重复使用策略定义

4.2. 使用单独数据库保存的安全策略很快就会过时,除非采取某种机制确保它和执行时的安全策略一致

  • 4.2.1. 解决这一问题的较好办法就是利用配置管理系统,基于策略数据库生成策略的实施配置

4.3. 随着网络成熟度的提高,系统管理员更愿意把安全策略定义提取到外部进行保存,这样他们就可以把这些安全策略定义应用在其他地方

  • 4.3.1. 如果把安全策略定义从配置管理系统中提取出来的话,基于主机的防火墙和托管的网络防火墙就可以共享同一个策略数据库来进行配置

4.4. 在定义新策略(特别是在现有网络基础上定义新策略)时,其测试机制会给系统管理员带来非常大的帮助

  • 4.4.1. 系统应当有能力执行提议的策略,并且在执行后报告使用新策略后哪些流量被拒绝了

4.5. 建立策略测试系统需要记录生产环境网络流量的数据库、策略模拟器,以及可以标识当前生产环境策略和新定义策略区别的系统等组件

4.6. “先记录后执行”的过程能够为发现生产环境网络中的意外事件提供充裕的时间保证

  • 4.6.1. 在此基础上分阶段部署更新策略,在某一个特定的网络范围内执行策略变更,可以在不影响整个生产系统的条件下发现意外问题

4.7. 更简单、安全地导入策略变更的方法

  • 4.7.1. 抽取所需策略集的一个子集,该策略子集就是建议策略

  • 4.7.2. 以仅记录日志的方式部署建议策略

  • 4.7.3. 在一个足够长的周期内收集生产环境的网络流量

  • 4.7.4. 研究那些执行建议策略后被拒绝的网络流量

  • 4.7.5. 执行建议策略

  • 4.7.6. 重复上述(1)~(5)步骤,直到所需策略都部署完成

  • 4.7.7. 完成所有策略部署后,开启一个默认拒绝所有流量的策略

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

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

相关文章

2万多条初中历史题库ACCESS\EXCEL数据库

这段时间破解了中高学生知识题库,包含高&中英语题库、小&学英语题库、初&中地理题库、初&中历史题库、高&中历史题库、初&中生物题库,数据表结构都一样,今天发的这份是上万条的初中历史题库,截图包含所有…

CSS——伪元素:before

CSS——伪元素&:before 简单介绍: ::after和::before的使用很简单,可以认为其所在元素上存在一前一后的两个的元素,这两个元素默认是内联元素,但我们可以为其增添样式。::after和::before使用的时候一定要注意,必…

数据结构之二叉树详解——包含递归及迭代遍历方式

二叉树的种类 二叉树(binary tree)是一种非线性数据结构,代表“祖先”与“后代”之间的派生关系,体现了“一分为二”的分治逻辑。与链表类似,二叉树的基本单元是节点,每个节点包含值、左子节点引用和右子节…

计算机毕业设计 扶贫助农系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

Golang面试题六(GMP)

目录 1.Go线程实现模型 1:1 关系 N:1关系 M:N关系 2.GM模型 3.GMP模型 概念 模型简介 有关P和M的个数问题 P和M何时会被创建 4.调度器的设计策略 5.go func() 调度流程 6.调度器的生命周期 7.Go work stealing 机制 8.Go hand off 机制 9.Go 抢占式调度 9.Sys…

8.3.数据库基础技术-关系代数

并:结果是两张表中所有记录数合并,相同记录只显示一次。交:结果是两张表中相同的记录。差:S1-S2,结果是S1表中有而S2表中没有的那些记录。 笛卡尔积:S1XS2,产生的结果包括S1和S2的所有属性列,并且S1中每条记…

[C++][opencv]基于opencv实现photoshop算法色阶调整

【测试环境】 vs2019 opencv4.8.0 【效果演示】 【核心实现代码】 Levels.hpp #ifndef OPENCV2_PS_LEVELS_HPP_ #define OPENCV2_PS_LEVELS_HPP_#include "opencv2/core.hpp" #include "opencv2/imgproc.hpp" #include "opencv2/highgui.hpp&quo…

Re:从零开始的逆向笔记02day

1-C语言 参数传递 参数传递是通过堆栈的,传递的顺序是从右到左 函数返回值是存储在寄存器eax中 类型 char x -1; //0xFF 1111 1111 int y x; //0xFFFFFFFF 1111 1111 1111 1111 1111 1111 1111 1111 其余位为符号位unsigned char x -1; //0xFF 1111 1111 in…

云快充协议1.5版本的充电桩系统软件

介绍 小程序端:城市切换、附近电站、电桩详情页、扫码充电、充电中动态展示、订单支付、个人中心、会员充值、充值赠送、联系客服; 管理后台:充电数据看板、会员管理、订单管理、充值管理、场站运营、文章管理、财务管理、意见反馈、管理员管…

腾讯云COS和阿里云OSS在Springboot中的使用

引言:之前本来是用OSS做存储的,但是上线小程序发现OSS貌似消费比COS多一些,所以之前做了技术搬迁,最近想起,打算做个笔记记录一下,这里省去在阿里云注册OSS或腾讯云中注册COS应用了。 一、OSS 1、配置yml …

Linux 网络设备驱动

一.网络设备驱动框架 接收 将报文从设备驱动接受并送入协议栈 老API netif_if 编写网络设备驱动 步骤 1.注册一个网络设备 2.填充net_device_ops结构体 3.编写接收发送函数 // SPDX-License-Identifier: GPL-2.0-only /** This module emits "Hello, world"…

IOS 02 SnapKit 纯代码开发

SnapKit是一个Swift语言写的自动布局框架,可以运行到iOS,Mac系统上;OC版本的框架是Masonry,都是出自同一个团队。 用这个框架的目的是,用起来比系统自带的API方便,他内部也是对系统API进行了封装。 为什么…

房产中介小程序

本文来自:ThinkPHPFastAdmin房产中介小程序 - 源码1688 应用介绍 产中介小程序是一款基于ThinkPHPFastAdmin开发的原生微信小程序,为房地产中介提供房源管理、发布、报备客户、跟踪客户以及营销推广获客等服务的系统。 前端演示: 后台演示&am…

HarmonyOS应用开发者基础认证(三)

1、针对包含文本元素的组件,例如Text、Button、TextInput等,可以使用下列哪些属性:(全选) 答案: fontColor fontFamily fontSize fontWeight fontStyle 分析: 2、关于Tabs组件和TabContent组件&…

【高效笔记与整理的艺术】

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

通过jmeter对websocket后台做压测

后台使用java程序,通过springboot集成的stomp协议暴露websocket接口,所以下文测试过程会有特定的stomp报文,无需在意,关注流程即可 本次测试使用jmeter模拟大量用户接收群消息的场景,可覆盖连接数以及消息并发的压测 一…

CentOS7.6 RabbitMQ消息队列集群部署——实施方案

1、前期环境准备(每个主机都配置) 1.准备三台主机 IP地址主机名内存大小192.168.200.10 rabbitmq1 2G192.168.200.11rabbitmq22G192.168.200.55rabbitmq32G 2. 设置主机名 hostnamectl set-hostname 主机名suexit Ctrlr 3. 设置IP地址然后重启网卡 …

深度学习与图像修复:ADetailer插件在Stable Diffusion中的应用

文章目录 引言ADetailer插件介绍插件安装常用模型控制提示词参数配置参数详解 实践建议 示例插件的对比:1. ADetailer插件2. Photoshop插件(如Nik Collection)3. GIMP插件(如GMIC)4. Affinity Photo插件 结语 引言 无…

【物联网】(蓝牙篇)微信小程序ios如何自动打开蓝牙

微信小程序打开蓝牙的便捷之道——微信小程序ios如何自动打开蓝牙 随着智能手机蓝牙技术和物联网产品的普及,很多人在使用微信小程序时,都希望能够更便捷地打开蓝牙功能。 在iOS系统上,由于其封闭性和权限控制严格,使得自动打开蓝…

OpenGL ES->GLSurfaceView进行点、线段、三角形等基本图元的绘制

GLSurfaceView代码见OpenGL ES->顶点着色器和片段着色器代码,只修改顶点数组,片段着色器的颜色,和绘制方式进行不同图元绘制 绘制点 GL_POINTS方式 // 顶点数据 val vertices floatArrayOf(0.8f, -0.8f, 0.0f,-0.8f, -0.8f, 0…