4. 容器网络模型与授权边界
在 Docker 编排环境中,网络模型直接决定了服务间通信的路径与可见性,进而构成授权测试的核心边界。本章从 Bridge 与 Overlay 网络原理出发,结合网络策略与微隔离机制,建立授权测试的网络视角。
4.1 Bridge 网络:单机通信与默认隔离
Bridge 网络是 Docker 默认的单机网络模式。每个容器通过 veth 对连接到 docker0 网桥,由 iptables 规则实现 NAT 和端口映射。
| 特性 | 说明 |
|---|---|
| 通信范围 | 同一宿主机上的容器可通过 IP 直接通信;跨宿主机需端口映射 |
| 隔离级别 | 默认仅隔离不同 Bridge 网络;同一 Bridge 内的容器默认互通 |
| 授权边界 | 以宿主机 IP + 端口为边界,容器 IP 对外不可见 |
| 性能特征 | 低延迟(无额外封装),适合本地服务间调用 |
授权测试要点: Bridge 模式下,授权测试应关注端口映射是否暴露了内部管理接口(如 2375、3306),以及容器间是否因共享 Bridge 而绕过了预期的认证层。
4.2 Overlay 网络:跨主机通信与加密隧道
Overlay 网络通过 VXLAN 封装实现跨宿主机容器通信,是 Docker Swarm 和 Kubernetes 的基础网络模型。每个 Overlay 网络拥有独立的子网和广播域。
性能调优提示: Overlay 网络因 VXLAN 封装会引入约 5-10% 的吞吐损耗。在授权测试中,应验证加密隧道是否影响审计日志的实时采集,以及 MTU 配置是否导致分片丢包。
4.3 网络策略与微隔离
微隔离将安全策略下放到容器粒度,不再依赖传统的网络边界防火墙。Docker 原生支持通过 --network 和 --ip 实现基础隔离,而 Kubernetes NetworkPolicy 提供了更精细的规则引擎。
4.3.1 网络策略核心要素
- 入站规则(Ingress):控制哪些源 IP/Pod 可以访问目标容器
- 出站规则(Egress):控制目标容器可以访问哪些外部端点
- 标签选择器(Label Selector):基于元数据动态匹配策略目标
- 命名空间隔离:跨命名空间的流量默认拒绝
4.3.2 授权测试的微隔离验证清单
| 测试场景 | 预期行为 | 授权风险 |
|---|---|---|
| 同命名空间内无策略 | 所有容器互通 | 横向移动风险高 |
| 仅定义 Ingress 策略 | 入站受限,出站默认允许 | 数据外泄风险 |
| 双向策略(Ingress + Egress) | 最小权限通信 | 需验证策略是否覆盖所有端口 |
| 标签选择器误配 | 策略未生效 | 授权绕过漏洞 |
# 示例:Kubernetes NetworkPolicy 实现微隔离
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: api-allow-frontend
spec:
podSelector:
matchLabels:
app: backend-api
policyTypes:
- Ingress
ingress:
- from:
- podSelector:
matchLabels:
app: frontend
ports:
- protocol: TCP
port: 8080
常见陷阱: 很多团队只配置 Ingress 策略而忽略 Egress,导致容器可以自由访问外部恶意服务器。授权测试必须双向验证,并检查默认拒绝规则是否已启用。
4.4 授权测试的网络视角
从网络视角进行授权测试,核心是验证容器间的通信是否符合最小权限原则。测试方法包括:
- 网络拓扑发现:使用
docker network inspect或kubectl get pods -o wide获取容器 IP 与网络归属 - 连通性验证:在测试容器内执行
ping、curl、nc探测目标端口 - 策略绕过测试:尝试使用非预期标签、IP 伪装、端口扫描等方式突破网络策略
- 加密隧道审计:验证 Overlay 网络的 VXLAN 是否启用 IPsec 或 WireGuard 加密
4.5 性能调优与网络授权权衡
网络策略越严格,性能开销越大。授权测试需要同时评估安全增益与性能损耗:
- iptables 规则数量:每增加一条 NetworkPolicy 规则,数据路径增加一次规则匹配,建议单节点不超过 1000 条
- Overlay 封装开销:启用加密(IPsec)后吞吐下降约 15-20%,延迟增加 0.5-1ms
- 连接跟踪表:微隔离场景下连接跟踪表容易占满,建议设置
net.netfilter.nf_conntrack_max=1048576 - eBPF 替代方案:Cilium 等 eBPF 方案可将策略执行性能提升 3-5 倍,同时支持更细粒度的 L7 授权
最佳实践: 在授权测试前,先通过
iperf3 和 wrk 建立基准性能数据;应用网络策略后再次测试,将性能损耗控制在 10% 以内作为安全策略的接受阈值。