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. 完成所有策略部署后,开启一个默认拒绝所有流量的策略