读零信任网络:在不可信网络中构建安全系统06授权

news2024/12/24 3:18:01

1. 授权

1.1. 授权决策不容忽视,所有访问请求都必须被授权

1.2. 数据存储系统和其他各支撑子系统是授权的基石

  • 1.2.1. 子系统提供访问控制的权威数据源和评估依据,直接影响授权决策

  • 1.2.2. 谨慎区分各子系统的职责和能力,需要将其严格隔离

  • 1.2.3. 尽量避免将它们合并到一个单体系统实现

2. 授权体系架构

2.1. 策略执行组件

  • 2.1.1. 在整个零信任网络中大量存在,部署时需要尽可能地靠近工作负载

2.2. 策略引擎

  • 2.2.1. 依据事先制定好的策略,对请求及其上下文进行比较并做出决策,根据决策结果通知策略执行点对访问请求放行还是拒绝

2.3. 信任引擎

  • 2.3.1. 策略引擎调用信任引擎,利用各种数据源分析并评估风险

  • 2.3.2. 风险评分类似信用等级,能有效防护未知威胁,通过风险评分可以提升策略的安全性和鲁棒性,又不至于因为考虑各种边界场景而引入复杂性

2.4. 数据存储系统

  • 2.4.1. 授权决策依据的大量数据都存放在数据存储系统中,各种数据库构成了授权决策的权威数据源,基于这些数据,可以将所有请求的上下文清晰地描绘出来

  • 2.4.2. 一般使用认证阶段已经确认的实体标识信息作为数据库的主键,用户名和设备序列号都是常用的实体标识

  • 2.4.3. 数据存储系统是授权决策过程的重要支撑系统

2.5. 组件职责各不相同

  • 2.5.1. 视为不同的子系统,从安全的角度来看,将这些组件彼此隔离大有必要

  • 2.5.2. 授权组件是零信任安全模型的核心构成要素,其安全性至关重要,可维护性也需要妥善评估

  • 2.5.3. 不管出于任何目的,如果不得不把这4大组件合并到一个单体系统实现,那么其可行性和安全性都必须谨慎评估,最好是尽量避免这种实现方式

3. 策略执行组件

3.1. 两大职责

  • 3.1.1. 和策略引擎交互完成授权决策

  • 3.1.2. 授权决策结果的强制执行

  • 3.1.3. 可以通过一个组件实现,也可以由两个系统组件来分别实现

3.2. 策略执行组件的位置非常重要

  • 3.2.1. 作为零信任网络在数据平面的实际控制点,它也可以被称为策略执行点

  • 3.2.2. 需要确保其部署位置尽量靠近终端,否则信任“收缩”到策略执行组件之后,零信任的安全性可能会受到影响

3.3. 策略执行组件确保策略引擎的授权决策对所有的网络请求生效,一般位于用户流量必经的数据平面,通过调用策略引擎进行授权决策并强制执行

4. 策略引擎

4.1. 策略引擎基于系统管理员制定的策略和数据存储系统中存放的数据进行授权决策,是零信任网络的关键组件,其运行环境应该被严格地物理隔离

  • 4.1.1. 在策略引擎和策略执行组件之间进行进程级隔离还是必须的

  • 4.1.2. 将策略引擎作为独立的进程进行部署,能确保其不受策略执行组件因为Bug或漏洞而导致的网络攻击的影响

4.2. 策略引擎是零信任授权模型中进行授权决策的组件

  • 4.2.1. 接收来自策略执行组件的授权请求

  • 4.2.2. 和预先制定好的策略进行比较,决定请求是否被允许

  • 4.2.3. 决策结果返回策略执行组件进行强制执行

4.3. 低延迟授权系统适用于对网络活动进行细粒度的复杂授权

  • 4.3.1. 一种可能的场景是作为策略执行组件的负载均衡器通过进程间通信(IPC)机制而不是网络远程调用发起授权请求,这种架构可以降低授权决策的时间延迟,此优势在某些场景下很有吸引力

  • 4.3.2. 授权的低延迟就至关重要

4.4. 版本控制系统

  • 4.4.1. 传统的变更管理流程不能很好地满足策略存储的需求,为了能通过程序自动对系统进行配置,版本控制系统应运而生

  • 4.4.2. 使用版本控制系统,策略规则数据可以通过程序自动读取和使用,加载特定版本的策略就像部署一个软件一样简单,而不是像以前一样依赖系统管理员手动加载期望的策略版本

  • 4.4.3. 系统管理员可以使用成熟的标准软件开发过程来管理策略的变更,比如代码回顾、持续集成等软件开发管理的技术手段都能派上用场

4.5. 策略存储系统

  • 4.5.1. 策略引擎进行授权决策时所使用的规则需要被持久化存储,策略规则虽然最终被加载到策略引擎模块中,但是其制定、存储和管理最好独立于策略引擎

  • 4.5.2. 将策略规则存放在版本控制系统中是一种值得推荐的方案

    • 4.5.2.1. 策略的变更可持续跟踪

    • 4.5.2.2. 策略变更的缘由可通过版本控制系统进行跟踪

    • 4.5.2.3. 策略配置的当前状态可通过实际的策略执行机制进行验证

4.6. 制定策略

  • 4.6.1. 零信任网络策略使用信任评分对未知攻击向量进行预估和防护,制定策略时引入信任评分机制,管理员可以很好地缓解未知威胁,这种威胁很难通过一条具体的策略进行匹配和处置,因此,应该尽可能地采用信任评分机制

  • 4.6.2. 零信任策略尚未标准化

    • 4.6.2.1. 在零信任网络框架下,良好的策略往往是细粒度的,粒度的粗细一般和网络的成熟度有关

    • 4.6.2.2. 零信任模型和传统网络安全在策略上的差异点主要体现在用于定义策略的控制机制不同

      4.6.2.2.1. 零信任策略不基于网络具体信息(如IP地址或网段),而是基于网络中的逻辑组件来制定策略

      4.6.2.2.1.1. 网络服务

      4.6.2.2.1.2. 设备终端分类

      4.6.2.2.1.3. 设备终端分类

    • 4.6.2.3. 基于网络中的逻辑组件定义策略,有利于策略引擎充分利用网络的当前状态等各类信息作为授权决策依据

  • 4.6.3. 尚无策略描述标准

    • 4.6.3.1. 目前成熟的零信任网络方案大多是非公开的,它们采用了私有的策略语言和格式

    • 4.6.3.2. 标准的、互操作性强的策略语言,其价值毋庸置疑,但遗憾的是,标准化工作目前尚未实质性开

    • 4.6.3.3. 策略不仅仅依赖信任评分,访问请求包含的其余属性对策略制定和授权决策也不可或缺

4.7. 需要将策略定义和管理的权责开放给资源或服务的所有者,以便分担管理员的策略维护压力

  • 4.7.1. 将策略定义权限开放给服务所有者会引入一些潜在风险

  • 4.7.2. 一种有效的流程是策略审查

    • 4.7.2.1. 策略都是基于逻辑实体进行定义的,和针对物理实体定义策略的传统方式相比,前者变更的频率会低很多
  • 4.7.3. 另外一种手段是实施分层策略

    • 4.7.3.1. 策略引擎可以默认拒绝来自非信任源的宽松的策略定义和声明

4.8. 策略引擎周期性地从权威清单库读取各类实体的属性值,并基于一定的算法进行风险评分计算

  • 4.8.1. 对风险进行量化并不简单,一种可行的方案是定义一系列专门的规则来对实体的风险评分进行估计

5. 信任引擎

5.1. 信任引擎作为安全系统的新面孔,基于静态规则或机器学习算法计算访问请求的信任评分

  • 5.1.1. 信任引擎是对特定的网络请求或活动进行风险分析的系统组件

  • 5.1.2. 其职责是对网络请求及活动的风险进行数值评估,策略引擎基于这个风险评估进行进一步的授权决策,以确定是否允许此次访问请求

  • 5.1.3. 信任评分是对系统和组件当前信任程度的量化表示,策略制定者可以基于访问资源所需的信任等级来定义策略

  • 5.1.4. 信任引擎是使用历史数据的主要组件

5.2. 成熟的信任引擎除了使用静态规则,还大量采用机器学习技术来实现信任评分功能

  • 5.2.1. 信任引擎一般会混合使用基于规则的静态评分方法和机器学习方法

  • 5.2.2. 机器学习通过将活动数据的一个子集作为训练数据进行模型训练,推导出评分函数,这些训练数据来自于原始观测,每一条训练数据都和一个信任或不信任的实体相关联,即这些数据已经进行了明确的标定

5.3. 哪些实体需要评分

  • 5.3.1. 应该对攻击者的网络代理进行阻止,这样可以保证合法用户的网络代理不受影响

    • 5.3.1.1. 需要将网络代理作为整体进行风险评分
  • 5.3.2. 仅仅对网络代理进行整体评分是无法对抗其他攻击向量的

    • 5.3.2.1. 设备本身也应该被单独评分
  • 5.3.3. 内部威胁场景

    • 5.3.3.1. 一个恶意用户使用多台网吧设备窃取机密的交易数据,信任引擎应该识别这类行为,并为后续的授权决策持续地给出较低的信任评分,即便此用户换用其他设备发起访问也不能改变其信任评分

    • 5.3.3.2. 用户及其行为需要被单独评估

  • 5.3.4. 应该同时对网络代理及网络代理的构成要素(设备、用户及应用程序)进行风险评分

5.4. 在很多场景下,一个实时的综合信任评分就足够了,但这样会对信任引擎的可用性提出更高的要求

  • 5.4.1. 为了动态选择最佳的评分函数,信任引擎必须知道被授权请求的上下文信息,这种方案的构建和运维都会变得更加复杂

5.5. 信任评分的暴露存在风险

  • 5.5.1. 实体的信任评分看似并不机密,但仍然需要尽量避免将信任评分暴露给最终用户

  • 5.5.2. 对于潜在攻击者,当前信任评分无疑是一种提示信号,让他们可以知悉自己在当前系统中的信任度正在上升还是下降,从而进行更多的攻击尝

  • 5.5.3. 隐藏信任评分也需要适度,不要让最终用户完全无法理解他们的行为是如何影响信任评分的,安全和易用需要适量平衡

  • 5.5.4. 一种较好的折中方式是,不直接提供信任评分给用户,但明确标识出能提升信任评分的影响因子

6. 数据存储系统

6.1. 零信任网络的权威数据库存放系统当前和历史的各类数据

  • 6.1.1. 策略引擎直接或间接地使用这些数据进行授权决策

  • 6.1.2. 策略引擎、信任引擎甚至其他第三方系统都大量使用这些数据库作为信任源,使用率较高

6.2. 用于授权决策的数据库可以被视为系统当前和历史状态的权威数据源

  • 6.2.1. 数据库存放的信息被控制平面的各个系统使用,是授权的一个重要的决策依据

6.3. 存放在控制平面数据库内的信息通过授权系统,最终传递给策略引擎进行授权决策

  • 6.3.1. 这些数据被策略引擎直接或间接使用

  • 6.3.2. 当其他系统需要知道网络的当前状态时,这些数据库也是非常有用的权威数据源

6.4. 按照功能划分的数据库

  • 6.4.1. 清单库

    • 6.4.1.1. 清单库是记录资源当前状态的权威数据源

    • 6.4.1.2. 用户清单库存放所有的用户信息

      6.4.1.2.1. 用户清单库一般使用用户名做主键

    • 6.4.1.3. 设备清单库则记录公司所有在册的设备的最新信息

      6.4.1.3.1. 设备清单库则使用设备序列号做主键

  • 6.4.2. 历史库

    • 6.4.2.1. 历史数据库的种类可能多种多样,基于这些数据可以进行的风险分析也无穷无尽

    • 6.4.2.2. 无论哪类历史数据,都必须能够通过设备清单库或用户清单库的主键(如设备序列号或用户名)进行查询

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

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

相关文章

高数经典反例记录(持续更新)

这篇博客总结了一些易混淆的概念以及经典反例,全部看完会有收获的,后期可能会继续补充! 1.概念模糊 2.极限存在/不存在问题

豹5全新价格引爆市场,技术平权开启SUV新篇章

关注汽车市场的小伙伴,想必都知道最近方程豹品牌的豹5车型,打出了23.98万元至30.28万元的全新价格区间,重新定义了SUV市场的竞争格局。 方程豹的这一举动,立刻引发了市场的热烈讨论:“豹5现在值得入手吗?”…

科普文: jdk 1.7和 jdk 1.8 中ConcurrentHashMap 原理浅析

1. 前言 为什么要使用 ConcurrentHashMap 主要基于两个原因: 在并发编程中使用 HashMap 可能造成死循环(jdk1.7,jdk1.8 中会造成数据丢失)HashTable 效率非常低下 2. ConcurrentHashMap 结构 jdk 1.7 和 jdk 1.8 中,ConcurrentHashMap 的结构有着很…

软件产品测试报告包括哪些内容?专业软件测试服务供应商推荐

在当今快速发展的软件行业中,软件产品测试报告的重要性愈加凸显。卓码软件测评作为专业的软件测试服务供应商,深知一份高质量的测试报告对于开发团队、管理层以及客户的重要性。 软件产品测试报告是对软件产品在测试过程中所表现出来的各项指标和特性的…

【架构师进阶必备】Spring - 运行时以四种方式动态注册 bean

Spring — 运行时以四种方式动态注册 bean 1. 概述 在本教程中,我们将学习“使用 spring 动态注册 bean”或“在运行时动态将 bean 添加到 spring-context”。在Spring 应用程序中加载和删除 bean 时,无需在运行时重新启动应用程序即可完成此操作。 如…

先用先发!小样本故障诊断新思路!Transformer-SVM组合模型多特征分类预测/故障诊断(Matlab)

先用先发!小样本故障诊断新思路!Transformer-SVM组合模型多特征分类预测/故障诊断(Matlab) 目录 先用先发!小样本故障诊断新思路!Transformer-SVM组合模型多特征分类预测/故障诊断(Matlab&#…

【RabbitMQ】路由模式(Routing)

一、基本概念 生产者(Producer):发送消息到交换机的程序。在发送消息时,需要指定一个路由键。交换机(Exchange):接收生产者发送的消息,并根据路由键将消息路由到与之匹配的队列。在…

【C++BFS】1466. 重新规划路线

本文涉及知识点 CBFS算法 LeetCode1466. 重新规划路线 n 座城市,从 0 到 n-1 编号,其间共有 n-1 条路线。因此,要想在两座不同城市之间旅行只有唯一一条路线可供选择(路线网形成一颗树)。去年,交通运输部…

软件测试--易用性测试

人体工程学这是一门将日常使用的东西设计为易于使用何实用性强的科学。因此人体工程学的主要目标是达到易用性。 用户界面测试 用于与软件程序交互的方式称为用户界面或UI。大家都熟悉的计算机UI随着时间推移发生了变化。早期的计算机有触发开关和发光管。纸带、穿孔卡和电传打…

AIGC技术的未来航向:深度解析与Java实践

摘要: 本文深入探讨了人工智能生成内容(AIGC)技术的未来发展方向,从技术创新、可持续可拓展性、用户体验、应用场景、政府赋能等多维度进行分析,并结合Java技术实践,提供具体的实现策略和代码示例。 引言…

PDF翻译神器:这四款可以实现一键搞定,留学党必备!

外文的阅读还是需要一定的语言功底,现在大家也对外文越来越重视起来了,但是借助一些翻译工具进行翻译可以很大程度地提升工作的效率,就算是遇到批量的文件处理也可以一键翻译出来,所以今天借此文章整理了四款好用的pdf翻译工具&am…

计算机基础(Windows 10+Office 2016)教程 —— 第3章 操作系统基础(下)

操作系统基础 Windows 10的系统管理3.5.1 设置日期和时间3.5.2 Windows 10 个性化设置3.5.3 安装和卸载应用程序3.5.4 分区管理3.5.5 格式化磁盘3.5.6 清理磁盘 3.6 Windows 10的网络功能3.6.1 网络软硬件的安装3.6.2 查看网络中其他计算机3.6.3 资源共享 3.7 Windows 10系统的…

数据灾备及时恢复应急预案

第一节总则 1,灾难备份的目的 为了规范本所重要数据备份清单的建立,备份的职责,备份的检查。以及系统受到破坏后的恢复工作,合理防范计算机及信息系统使用过程中的风险,特制定本预案。 2,灾难恢复的定义 灾…

1.kafka面试题之零拷贝

1. 写在前面 Kafka 是一个高性能的分布式消息系统,它使用了多种优化技术来提高数据传输效率,其中之一就是 “零拷贝”(Zero Copy)。零拷贝技术可以显著减少数据在内存中的复制次数,从而提高 I/O 操作的效率&#xff0…

模拟栈解决表达式求值-java

主要讲述了通过栈来解决后缀表达式,来计算出表达式的结果,可以好好熟悉一下思路。 目录 前言 一、表达式求值问题 二、栈模拟计算表达式 1.算法思路 2.代码解释 三、代码实现 1.代码如下: 2.测试样例如下: 3.运行结果如下…

【轨物推荐】经济长波:创新周期的历史

原创 丑丑姐姐 专利分析可视化 2021年08月01日 21:18 图片来源:Visual Capitalist 在开始本文之前,我们先来学习两个概念: 经济长波(Long Waves),亦称“大循环理论”、“康德拉季耶夫周期”。经济长波理论…

redis持久化存储,rdb快照文件,aof文件

redis作为内存数据库,在内存中进行读写操作,将读写操作从毫秒级别降为纳秒级别,得到极大的性能提升,与此同时,作为内存数据库其也有致命缺陷,一旦redis发生意外宕机,那么内存中的数据将全部消失…

智慧医院临床检验管理系统源码(LIS),全套LIS系统源码交付,商业源码,自主版权,支持二次开发

实验室信息系统是集申请、采样、核收、计费、检验、审核、发布、质控、查询、耗材控制等检验科工作为一体的网络管理系统。它的开发和应用将加快检验科管理的统一化、网络化、标准化的进程。一体化设计,与其他系统无缝连接,全程化条码管理。支持危机值管…

如何手动修复DLL丢失?2种手动修复dll文件方法

DLL(动态链接库)文件是Windows操作系统中非常重要的组成部分,它们包含了程序运行所需的代码和数据。然而,由于各种原因,如系统更新、软件卸载不当或病毒感染,DLL文件有时会丢失或损坏,导致程序无…

Python pyautogui 自动控制 MDK Keil_v5 Pack Installer 的 Packs 安装过程

MDK Keil_v5 安装完成后,会自动进行 Pack Installer 的 Packs 安装,安装过程中首先 install 需要一行行用鼠标点,然后每一行的 Pack 都会出现同意安装或连接超时的弹窗,需要鼠标操作确认。 pyautogui 可以帮助自动控制鼠标完成确…