读零信任网络:在不可信网络中构建安全系统05网络代理
1. 网络代理
1.1. 安全策略在认证和授权环节都充分地利用了多个因子,综合考虑了用户及其使用的设备的信息
1.1.1. 允许员工通过企业发放的工作笔记本电脑提交源代码,但是禁止员工使用手机进行类似操作
1.1.2. 用户必须使用可信终端提交代码,并且这个终端必须属于用户,即用户只能使用自己的可信终端进行代码提交
1.2. 用户和设备的这种绑定关系称为网络代理,这是零信任网络引入的一个非常重要的概
1.2.1. 在零信任网络里,把用户和设备进行剥离并单独处置是不合适的,访问控制策略需要将用户和设备作为一个整体进行考虑
1.2.2. 有助于针对用户和设备这个有机整体进行访问控制策略的制定
1.2.3. 可将这个整体称为用户—设备对
1.3. 网络代理指在网络请求中用于描述请求发起者的信息集合
1.3.1. 一般包括用户、应用程序和设备共3类实体信息
1.3.2. 在零信任网络中,策略基于这3类实体信息的组合整体进行制定
1.3.3. 用户、应用程序和设备信息是访问请求密不可分的上下文,将其作为整体进行授权,可以有效地应对凭证窃取等安全威胁
1.3.4. 具有短时性特征,在进行授权决策时按需临时生成
1.4. 访问代理的构成要素(用户或设备)信息一般存放在数据库中,在授权时实时查询并进行组合
1.4.1. 网络代理代表的是用户和设备各个维度的属性在授权时刻的实时状态
1.5. 网络代理的一些数据字段是专门为了缓解主动攻击而存在的,这些属性的取值随时都可能发生变化,有些属性甚至需要在授权时实时计算出来,信任评分就属于这类动态数据
1.5.1. 网络代理由频繁变化的用户、设备和应用程序相关数据构成
1.5.2. 设备的信任评分。作为访问授权的重要因子,信任评分可以很好地缓解现代网络攻击,为确保其有效性,应该尽可能地实时或接近实时地进行计算和更新
1.6. 新入网设备还没有分配和绑定用户,如果安全策略要求网络代理必须包含用户信息,则这类设备访问资源时就会被拒绝
1.6.1. 授权策略必须能覆盖这种场景,并考虑网络代理数据的稀疏性
1.7. 在零信任网络里,稀疏数据不仅仅存在于新入网设备中,在自治系统中也普遍存在,和人工值守的系统相比,自治系统的很多数据,特别是和用户相关的数据可能缺失
1.7.1. 系统一般不直接对运行和使用应用程序的用户账号进行认证,而是通过其他技术手段确保创建这些用户的配置管理系统的安全
1.7.2. 这些数据字段可能因为各种原因缺失,理解代理的这种稀疏属性对于设计基于网络代理的授权策略很有参考价值
1.8. 网络代理数据字段
1.8.1. 网络代理信任评分
1.8.2. 用户信任评分
1.8.3. 用户角色或群组
1.8.4. 用户居住地
1.8.5. 用户认证方式
1.8.6. 设备信任评分
1.8.7. 设备制造厂商
1.8.8. TPM制造厂商和版本号
1.8.9. IP地址
1.8.10. 网络代理包含的数据越详细,数据的差异性就越是明显
1.9. 网络代理包含的数据是否可信也是必须考虑的因素
1.9.1. 在采购阶段就采集的设备信息就比运行时从设备上采集的数据可信程度高,这种信任度的差异是客观存在的,其根源在于很难保证从设备上采集的数据的准确性和完整性,尤其是当设备可能被攻陷的情况下
2. 如何使用网络代理
2.1. 针对设备和用户分别进行授权看起来更简单直接,但是不推荐这样做
2.1.1. 在零信任网络模型下,授权的主体必须是网络代理,因此,所有的访问控制策略都是针对网络代理制定的
2.2. 网络代理承载了很多信息,因此,基于网络代理,类似IP地址之类的传统授权信息仍然存在且可用,并且非传统授权信息,比如设备类型、用户居住城市等,提供了更加丰富的访问控制依据
2.2.1. 授权信息的丰富性也是零信任网络的访问控制策略将访问代理作为一个整体看待的重要原因
2.2.2. 用户—设备对在零信任授权决策中至关重要,网络代理将二者捆绑在一起,让其相辅相成缺一不可
2.2.3. 把数据打包到访问代理,可以降低用户/设备比较的复杂度,也很符合零信任架构理念中关于降低进入门槛的关键诉求
2.3. 网络代理在信任评分计算过程中,同样发挥着重要作用
2.3.1. 信任引擎不仅仅可以使用网络代理自身包含的信息,还可以使用其历史行为记录
2.4. 网络代理是纯粹的授权要素,和认证毫无关系
2.4.1. 网络代理属于授权范畴,它参与授权决策,不属于认证范畴
2.4.1.1. 但认证的结果和状态会在网络代理的数据中有所体现
2.4.2. 认证是先决条件,只有成功通过认证,才能产生网络代理所需的数据信息
2.4.3. 对用户和设备的认证往往是单独进行的,比如,设备可以使用X.509证书进行认证,而用户的认证往往采用传统的多因子认证手段
2.4.4. 认证成功后,用户和设备的权威标识就确定了,可以据此构造网络代理的详细数据
2.5. 认证是面向会话的,而授权是面向请求的
2.5.1. 认证所使用的数据和因子一般不会经常变化,因此,将认证结果进行会话缓存是允许的
2.5.2. 授权决策应该尽可能地依赖最新的数据,绝不建议将网络代理或授权结果进行缓存
2.6. 先撤销授权,后撤销凭证
2.6.1. 认证是向远程系统证明身份的过程,授权则是基于这个已证明的身份决定用户是否具有访问资源的权限
2.6.2. 在需要撤销访问许可的时候,撤销授权比撤销认证凭证更简单有效
2.6.2.1. 在认证结果已经被缓存并且关联了会话标识的情况下更是如此,毕竟验证已经认证过的会话是否有效的过程原本就是授权活动
3. 适当地暴露网络代理
3.1. 用户的隐私信息(如姓名、地址、电话号码)包含在网络代理中,这有利于更好地做出授权决策,但这些信息很敏感,必须妥善处理以确保用户隐私不被泄露
3.1.1. 不仅仅是用户信息很敏感,设备信息也同样敏感,设备的详细信息有可能被攻击者用于进行针对性的远程攻击,根据一些模式分析,攻击者甚至可以判断出用户设备的物理位置并进行窃取
3.2. 控制平面基于网络代理对访问请求进行授权,这些系统是零信任网络中授权的首要执行者
3.2.1. 控制平面本身的安全性较高
3.2.2. 整个网络代理生命周期都应该限制在控制平面内以便充分地保护其数据安全,控制平面的系统应该在逻辑上和物理上都与数据平面隔离,应该定义明确的边界,并且不要频繁变更
3.2.3. 策略判定依赖访问代理,既然访问代理的数据位于控制平面,那么策略判定就应该在控制平面完成
3.2.4. 反向代理属于零信任网络的控制平面,可以查看网络代理信息并进行粗粒度的授权,同时将网络代理的部分信息传递给下游应用程序进行进一步的细粒度授权
3.3. 应用程序位于数据平面,虽然位于控制平面的授权引擎也可以对应用程序的授权请求提供服务,但这并不是最佳方案
3.3.1. 在这种场景下控制平面并不一定是授权决策的最佳位置,需要应用程序本身进行一些授权决策
3.3.2. 需要将一些网络代理的信息暴露给数据平面
3.3.3. 为了让应用程序实现自身的细粒度授权逻辑,需要通过可信的信道将网络代理的信息暴露给应用程序
3.4. 将网络代理的信息暴露给下游应用程序,也有利于兼容应用系统既有的丰富的授权机制
3.4.1. 要实现这种兼容性,需要将网络代理的部分信息按照下游系统的要求进行格式转换并传递
3.4.2. 网络代理采用通用数据格式也将极大地降低管理代价
4. 标准的缺失
4.1. 为了提高系统组件的重用性,网络代理亟待标准化
4.1.1. 大多数零信任网络都由自建系统构成,因此网络代理也大多采用了自定义的私有格式
4.1.2. 如果推出网络代理的开放标准,则零信任网络的互操作将成为可能
4.1.3. 网络代理各部分数据的偏移量、字段名、结构等信息应该明确并公开,这样控制平面各个系统之间才能确保操作的一致性
4.2. 成熟的零信任网络都会通过从各种系统和数据源获取的数据来生成网络代理
4.2.1. 缺乏明确的规范,零信任网络就难以一致地对这些数据进行处理
4.3. 由于设备清单库这类数据源不可避免的数据缺失问题,网络代理的数据可能相当稀疏,因此网络代理只能是一种“尽力而为”的数据集
4.3.1. 在利用网络代理的某条数据时,同时考虑这条数据缺失时的备选数据或处理策略
4.4. 管理信息库(MIB)
4.4.1. MIB组件实现数据格式的定义和描述,它由一系列的OID组成。OID被称作对象标识符,每个OID描述一个特定的、在国际标准化组织ISO注册的数据
4.4.2. OID可以通过注册来进行扩展,并且可以为企业或制造商保留足够的OID空间
4.4.3. OID和IP地址的作用类似,IP地址用于全局标识一个计算机系统,而OID用于全局标识一个数据片段
4.4.3.1. 私有IP地址可以很好地标识一个组织的内部私有网络地址空间,但OID没有类似的标准的私有标识机制
4.4.3.2. 一个折中的办法是通过IANA免费注册一个私有企业编号,作为内部使用的私有OID前缀,这种方法被广泛使用
4.5. 简单网络管理协议(SNMP)
4.5.1. SNMP经常用于网络设备的管理,设备通过暴露一些数据,允许运维和管理系统以一种标准且灵活的方式对其进行管理
4.5.2. SNMP很好地描述了数据集的格式和封装方式,使用OID能快速地标识和定位这些数据,通过MIB系统能方便易懂地进行数据的传递和操作
4.6. 插件式设计也有助于网络代理格式未来的标准化
4.7. 应该以尽快实现基于网络代理的授权模型为第一要务
热门相关:隋唐君子演义 隐婚101天:唐少宠妻成瘾 蓝白社 千夫斩 国民校草求抱抱