部署软件定义边界
domain: cybersecurity subdomain: zero-trust-architecture author: mahipal tags: [zero-trust, sdp, software-defined-perimeter, network-access, ztna] difficulty: advanced estimated_time: 4-6 hours prerequisites: - 理解零信任原则(NIST SP 800-207) - 了解 CSA 软件定义边界规范 - 熟悉 PKI 和双向 TLS 认证 - 具备网络安全架构经验
概述
软件定义边界(Software-Defined Perimeter,SDP)通过围绕各个资源创建动态配置的、以身份为中心的边界来实现零信任。由云安全联盟(CSA)定义,SDP 通过"暗云"方法使未授权用户无法看到应用基础设施,即在认证和授权之前服务处于隐藏状态。与传统 VPN 不同,SDP 在经过验证的用户与特定应用之间建立一对一加密连接。
本技能涵盖使用 CSA v2.0 规范部署 SDP、实施单包授权(Single Packet Authorization,SPA)、配置 SDP 控制器和网关,以及根据 NIST SP 800-207 要求验证部署。
架构
SDP 组件(CSA 规范)
┌─────────────────────┐
│ SDP 控制器 │
│ - 认证 │
│ - 授权 │
│ - 策略管理 │
│ - 密钥管理 │
└──────────┬──────────┘
│
┌──────┴──────┐
│ │
v v
┌────────┐ ┌────────────┐
│ IH │ │ AH │
│(客户端)│ │(网关) │
│ │ │ │
│ SPA │──│ 受保护 │
│ mTLS │ │ 资源 │
└────────┘ └────────────┘
IH = 发起主机(Initiating Host,用户设备)
AH = 接受主机(Accepting Host,应用网关)
SPA = 单包授权(Single Packet Authorization)
SDP 部署模型
- 客户端到网关:用户设备通过 SDP 网关连接到后端应用
- 客户端到服务器:用户与应用服务器之间的直接连接
- 服务器到服务器:通过 SDP 的工作负载间通信
- 网关到网关:替代传统 VPN 隧道的站点到站点连接
关键概念
单包授权(SPA)
SPA 是一种网络安全机制,SDP 网关默认丢弃所有 TCP/UDP 数据包。在建立任何连接之前,必须发送经过密码签名的单个数据包。网关验证 SPA 数据包后,才为经过身份验证的会话临时开放端口。这使网关对端口扫描器不可见。
双向 TLS(mTLS)
SPA 验证后,客户端和服务器使用 X.509 证书相互认证。这种双向认证防止中间人攻击,确保两个端点都经过验证。
动态配置
SDP 连接基于实时策略评估按需配置。不存在持久性网络隧道;每个会话都单独授权和加密。
流程
阶段 1:SDP 控制器部署
部署 SDP 控制器
- 在经过加固的冗余基础设施上安装 SDP 控制器
- 配置 PKI 集成以颁发证书
- 设置认证后端(LDAP、SAML、OIDC)
- 使用应用定义配置策略数据库
- 为所有控制器决策启用审计日志记录
配置认证
- 通过 SAML 2.0 或 OIDC 与企业 IdP 集成
- 配置设备证书注册(SCEP/EST)
- 启用多因素认证要求
- 设置证书吊销检查(OCSP/CRL)
定义访问策略
- 将用户/组映射到授权应用
- 按应用定义设备态势要求
- 配置上下文条件(位置、时间、风险级别)
- 设置会话持续时间和重新认证间隔
阶段 2:SDP 网关部署
部署接受主机(网关)
- 在受保护应用前面安装 SDP 网关实例
- 配置默认丢弃防火墙规则(拒绝所有入站)
- 在指定端口上启用 SPA 监听器
- 使用控制器颁发的证书配置 mTLS
- 设置健康监控和故障转移
配置应用定义
- 向控制器注册每个受保护的应用
- 定义后端服务器 IP、端口和协议
- 为多实例应用配置负载均衡
- 设置应用健康检查
阶段 3:客户端部署
部署发起主机(客户端)
- 在用户端点上安装 SDP 客户端软件
- 通过自动配置注册设备证书
- 配置 SPA 密钥材料分发
- 测试认证流程:SPA → mTLS → 应用访问
验证端到端流程
- 验证 SPA 数据包被网关接受
- 确认使用有效证书的 mTLS 握手成功
- 测试通过 SDP 隧道的应用访问
- 验证未授权访问被阻断(无 SPA = 网关不可见)
阶段 4:运营验证
安全测试
- 对 SDP 网关进行端口扫描以确认不可见性(所有端口显示为过滤/关闭)
- 尝试在没有有效 SPA 的情况下连接(必须静默失败)
- 使用已吊销的客户端证书测试(必须被拒绝)
- 尝试从一个授权应用横向移动到另一个未授权应用
- 验证审计跟踪的完整性
监控与维护
- 为 SDP 控制器和网关日志配置 SIEM 集成
- 为失败的 SPA 尝试和证书错误设置告警
- 建立证书轮换计划
- 记录 SDP 事件的事件响应程序
验证检查清单
- SDP 控制器已部署,具备高可用性和审计日志记录
- IdP 集成已通过 SAML/OIDC 和 MFA 测试
- SDP 网关已部署并配置默认丢弃防火墙
- SPA 机制已验证(网关对端口扫描不可见)
- 客户端与网关之间已建立 mTLS
- 访问策略对每个用户/应用执行最小权限
- 设备证书注册已自动化
- 未授权访问尝试被静默阻断
- 应用间的横向移动被阻止
- 日志流式传输到 SIEM 并配置了告警
- 证书轮换和吊销程序已测试
参考资料
- CSA 软件定义边界架构指南 v3
- CSA SDP 规范 v2.0
- NIST SP 800-207:零信任架构
- CISA 零信任成熟度模型 v2.0
- fwknop:单包授权实现