文章目录
-
- 一、先回答标题:边界到底「挪」到哪了?
- 二、SDN 是什么:用一张图去掉神秘感
-
- 2.1 经典三平面
- 2.2 「软件定义」到底定义了什么?
- 三、边界地图:六个必须画进架构图的信任域
- 四、控制面安全:SDN 的「新城墙」
-
- 4.1 控制器为什么是高价值目标?
- 4.2 控制面常见弱点(检查清单)
- 4.3 架构原则(比买盒子重要)
- 五、南向通道:交换机为什么会「认贼作父」?
-
- 5.1 风险模型
- 5.2 防护要点
- 六、北向 API:自动化的双刃剑
-
- 6.1 典型问题
- 6.2 工程化控制
- 七、数据面与多租户:隔离是「算出来的」
-
- 7.1 封装与租户隔离
- 7.2 「策略以为拦住了,数据面其实放行了」
- 7.3 微隔离的边界
- 八、和传统 VLAN 安全怎么衔接?
- 九、威胁场景推演(便于写方案/答辩)
-
- 场景 A:北向密钥泄露
- 场景 B:控制器主机被入侵
- 场景 C:南向管理网与业务网未分离
- 场景 D:策略不一致导致的「假隔离」
- 十、落地加固基线(可剪进检查表)
-
- 10.1 网络分区
- 10.2 身份与权限
- 10.3 加密与完整性
- 10.4 可观测与应急
- 10.5 供应链与主机
- 十一、选型与架构时多问的 8 个问题
- 十二、小结
- 附录 A:术语速查
- 附录 B:和专栏前后篇的关系
一、先回答标题:边界到底「挪」到哪了?
传统网络里,安全边界大致长这样:
防火墙 / ACL → 三层分区
交换机 VLAN → 二层广播域
设备本地配置 → 每台盒子自己说了算
上了 SDN(Software-Defined Networking,软件定义网络) 之后,转发还在交换机/虚拟交换机上,但 「谁可以和谁通信」的决策,大量上收到 控制器(Controller) 和上层编排(云管、K8s CNI、NSX、ACI 等)。
于是边界发生了迁移:
| 单台交换机 CLI | 控制器与其集群、备份 |
| VLAN / Trunk | 流表 / 策略对象(谁下发、谁审批) |
| 设备本地账号 | 北向 API(编排、自动化、CI) |
| 线缆与端口 | 南向通道(OpenFlow、OVSDB、厂商私有协议) |
| 防火墙五元组 | 应用意图 → 策略编译 → 下发一致性 |
一句话:
数据面仍在转发流量,控制面成了新的「皇冠上的宝石」。 攻破一台接入交换机,影响一片;攻破控制器或北向密钥,可能影响整张网。
本文不推销某一家 SDN 产品,而是用 三平面模型 把安全边界画清楚,并给出可落地的威胁与加固清单。
二、SDN 是什么:用一张图去掉神秘感
2.1 经典三平面
┌─────────────────────────────────────────┐
│ 应用平面 Application Plane │
│ 云管 / 编排 / 自研 App / 安全编排 │
│ (经北向 API 表达「意图」) │
└──────────────────┬──────────────────────┘
│ Northbound API
│ REST / gRPC / 业务 SDK
┌──────────────────▼──────────────────────┐
│ 控制平面 Control Plane │
│ SDN Controller(常集群) │
│ 拓扑、主机、流表计算、策略编译 │
└──────────────────┬──────────────────────┘
│ Southbound API
│ OpenFlow / OVSDB / Netconf / 厂商协议
┌──────────────────▼──────────────────────┐
│ 数据平面 Data Plane │
│ 物理交换机 / OVS / SmartNIC / vSwitch │
│ 按流表高速转发、丢弃、镜像、限速 │
└─────────────────────────────────────────┘
2.2 「软件定义」到底定义了什么?
不是「没有交换机了」,而是:
云上常见形态(你可能天天在用,只是不叫 SDN):
- OpenStack Neutron + OVS/OVN
- Kubernetes + CNI(Calico、Cilium、Flannel…)
- VMware NSX、Cisco ACI、各类云厂商 VPC
安全边界讨论对这些形态是通用的:谁掌握控制面,谁就掌握连通性。
三、边界地图:六个必须画进架构图的信任域
做威胁建模时,建议至少标出这六块(缺一块,评审就容易空):
① 管理员与 CI/CD ──► ② 北向 API 网关/负载均衡
│
▼
③ 控制器集群(含 etcd/DB)
│
┌───────────────┼───────────────┐
▼ ▼ ▼
④ 南向管理网 ⑤ 数据面 Underlay ⑥ 租户/业务网
(Controller↔SW) (IP 织物/VXLAN) (东西向流量)
| ① | 人与流水线 | 合法身份下发恶意策略,「看起来像变更」 |
| ② | 北向入口 | 未授权创建网络、改安全组、抽干隔离 |
| ③ | 控制器 | 全局流表被改、瘫痪、持久化后门策略 |
| ④ | 南向通道 | 假冒控制器、交换机被接管、黑洞/旁路 |
| ⑤ | Underlay | 打穿外层封装,影响多租户承载 |
| ⑥ | 租户网络 | 横向移动;若策略失效则「微隔离」名存实亡 |
VLAN 篇里的教训在这里升级了一级: 配错 Trunk 会漏一个 VLAN;配错/泄露控制器权限,可能漏的是 整张逻辑网络的编译权。
四、控制面安全:SDN 的「新城墙」
4.1 控制器为什么是高价值目标?
控制器通常掌握:
- 全网拓扑与主机位置;
- 安全组 / 微分段 / 重定向(引流到防火墙、IDS)规则;
- 多租户的逻辑路由器、网关、DHCP/Metadata 路径。
攻击者不必「逐台黑交换机」,只要:
就可能实现 大规模、可回放、难察觉 的策略篡改。
4.2 控制面常见弱点(检查清单)
| 管理面暴露公网 | 控制器 UI/API 对互联网可达 | 仅跳板/VPN/零信任接入 |
| 默认口令与弱鉴权 | 演示环境残留 | 强制 SSO + MFA、禁用本地弱口令 |
| API 过粗 RBAC | 「网络管理员=上帝」 | 按租户/项目/动词最小授权 |
| 集群组件裸奔 | etcd/DB/消息队列无 TLS、无 ACL | 私有网段 + mTLS + 认证 |
| 补丁滞后 | 控制器 CVE 影响面大 | 与业务变更解耦的安全窗口 |
| 日志不可审计 | 谁改了哪条策略说不清 | 不可篡改审计 + 变更工单关联 |
4.3 架构原则(比买盒子重要)
1. 控制面与数据面网络分离(独立管理 VRF / 带外更佳)
2. 控制器多活 + 备份,但备份通道同等加固
3. 北向只经 API 网关:鉴权、限流、WAF/审计
4. 生产变更:GitOps / 工单驱动,禁止「个人笔记本直连乱调」
5. 灾难演练:假设控制器被夺权,如何只读冻结 + 回滚策略
五、南向通道:交换机为什么会「认贼作父」?
5.1 风险模型
南向协议负责把流表/配置推到转发设备。若通道可被劫持:
- 假控制器:交换机接到恶意控制端,下发「旁路防火墙」的流表;
- 中间人:窥探或篡改流表下发;
- 交换机假冒:污染拓扑,诱使控制器做出错误调度。
5.2 防护要点
OpenFlow 只是南向的一种历史代表;现代方案更多是 OVSDB、厂商协议、eBPF/datapath 编程——安全问题同构:认证、隔离、完整性。
六、北向 API:自动化的双刃剑
SDN 的生产力来自 API;安全事故也常来自 API。
6.1 典型问题
- 长期有效的 admin Token 写进 Jenkins;
- 服务账号权限 = 超级租户;
- 接口可「删除安全组」「放行 0.0.0.0/0」却无二次确认;
- 供应链:恶意插件/Webhook 调用北向接口。
6.2 工程化控制
身份:人员走 SSO+MFA;机器走短时凭证 / 工作负载身份
授权:RBAC + 租户隔离;破坏性操作单独角色
防护:API 网关限流、异常 UA/IP 告警、关键操作双人复核
审计:每次策略变更可追溯到「谁/哪个流水线/哪次提交」
密钥:Vault/KMS,禁止明文进仓库
可以把北向当成「网络界的云 API」: 能创建资源的密钥 = 能改安全边界的密钥。
七、数据面与多租户:隔离是「算出来的」
7.1 封装与租户隔离
数据中心常见 VXLAN/Geneve 等覆盖网络:
租户报文 → 封装(VNI 等)→ Underlay IP 织物 → 解封装 → 目的租户
安全边界包括:
- VNI / 租户 ID 是否可被伪造或配错映射;
- Underlay 是否被打穿导致「抄近路」;
- Hypervisor/OVS 上的 本地防火墙/conntrack 是否与控制器策略一致。
7.2 「策略以为拦住了,数据面其实放行了」
这是 SDN 安全里最阴的一类问题——控制面与数据面不一致:
| 控制台显示拒绝,流量仍通 | 流表未下发、缓存旧规则、节点失联 |
| 部分节点通、部分不通 | 集群脑裂、代理故障、升级中断 |
| 重启后策略消失 | 只写了运行时流表,未持久化/未协调 |
蓝队/运维要有 对账能力:
意图(工单/代码) → 控制器对象 → 节点实际流表/eBPF → 抓包验证
不会对账,就等于不知道边界是否真实存在。
7.3 微隔离的边界
微分段宣称「东西向默认拒绝」。它的真实边界是:
微隔离是好工具,但不是魔法: 主机被完全攻陷后,很多网络策略只是「尽力而为」。
八、和传统 VLAN 安全怎么衔接?
上一篇 VLAN Hopping 打的是 二层标签与 Trunk 信任。 SDN 没有消灭这些问题,只是换了表达方式:
| Access/Trunk 配错 | 安全组/NSG 配错、默认允许 |
| Native VLAN 重合 | 租户映射/VNI 配错 |
| 用户口变 Trunk | 工作节点被加进错误 bridge/网络 |
| 跨 VLAN 无 ACL | 路由表/对等连接全开 |
迁移到 SDN 后,建议:
九、威胁场景推演(便于写方案/答辩)
场景 A:北向密钥泄露
CI 变量泄露 → 调用 API 修改安全组放行数据库网段
→ 横向扫描 → 像「正规变更」一样留下审计噪音
检测:异常 API 调用地理/时间;破坏性 API 基线;Git 与 API 审计关联。 缓解:短时令牌、最小权限、关键操作审批。
场景 B:控制器主机被入侵
漏洞打进控制器 → 导出拓扑与凭证 → 下发永久旁路流表
→ 安全设备被策略「剪出」路径
检测:控制器 HIDS、南向证书异常、流表变更暴增。 缓解:控制面专用区、补丁、不可变基础设施、快速吊销与只读模式。
场景 C:南向管理网与业务网未分离
业务网失陷主机 → 访问控制器 6653/6640/API 端口
→ 扩大为控制面事件
缓解:管理网隔离是底线,不是可选项。
场景 D:策略不一致导致的「假隔离」
演练时以为东西向默认拒绝 → 实际某节点 agent 挂了
→ 红队从该节点轻松东向
缓解:节点健康纳入安全监控;失败即告警;定期「意图 vs 实流表」抽检。
十、落地加固基线(可剪进检查表)
10.1 网络分区
- 控制面、南向管理、Underlay、租户业务、运维跳板 地址与策略分离
- 控制器 不对公网;管理入口走零信任/VPN
- 生产与实验控制器集群隔离
10.2 身份与权限
- SSO + MFA;禁用共享账号
- 机器身份短时凭证;RBAC 按租户
- 破坏性 API(删网络、改默认路由、全放行)二级审批
10.3 加密与完整性
- 北向 HTTPS;南向/mTLS 或等价双向认证
- 集群组件(DB/消息)加密与访问控制
- 配置/策略仓库签名或受控流水线
10.4 可观测与应急
- 策略变更全量审计,保留足够周期
- 流表异常变更、控制器主备切换告警
- 已演练:吊销密钥、冻结北向、从已知良配置回滚
- 定期对账:安全组意图 ↔ 节点实际规则 ↔ 抓包
10.5 供应链与主机
- 控制器与网络节点纳入漏洞扫描与基线
- 镜像/安装包来源可信
- 节点加固:关无用服务、磁盘与日志保护
十一、选型与架构时多问的 8 个问题
写方案或招投标技术评分时,可以直接拿去问厂商/团队:
答不清楚的,边界就还「没画在纸上」。
十二、小结
附录 A:术语速查
| Northbound | 应用/编排 → 控制器 |
| Southbound | 控制器 → 转发设备 |
| Underlay | 承载封装流量的底层 IP 网络 |
| Overlay | 租户逻辑网络(常 VXLAN 等) |
| Flow Table | 数据面转发/过滤规则表 |
| Intent | 业务意图(「A 禁止访问 B」)经编译变成具体规则 |
附录 B:和专栏前后篇的关系
| VLAN 与安全隔离 | 二层经典边界与 Hopping;SDN 下仍要管好 Underlay/接入 |
| 代理与 NAT | 南北向路径与暴露面;SDN 策略常与入口网关联动 |
| 主机/容器安全(后面篇章) | 控制面与 CNI 节点最终落在主机与命名空间上 |
\\


