跳到内容

第 8 卷 / 第 6 章 / 第 1 课

6.1 网络边界:流量清单、分段与出站控制 ​

防火墙规则不是网络安全的起点。先知道有哪些资产、哪个主体为何访问哪个服务,才能判断一条流量是业务依赖还是横向移动。没有流量清单的“默认拒绝”最终往往演变成永久 allow any。

用通信契约描述允许路径 ​

text
source identity / segment
  → destination service
  → protocol + port
  → purpose + data class
  → owner + expiry

IP 和端口是执行信号,不一定是稳定身份。云实例、容器和移动设备地址会变化;策略系统应尽可能从受控 workload/device identity 生成网络规则,同时保留数据面的 IP/port 强制边界。

规则需要 owner、理由和过期复审。临时排障开放若没有自动到期,会成为永久入口。

Stateful Firewall 记住连接,不理解业务 ​

有状态防火墙跟踪连接状态,并可按规则允许已建立连接的返回流量。删除新连接的 allow 规则不一定终止已有 conntrack/session 状态;紧急撤权还要检查已有连接及其清理策略。它不会自动知道 TCP 443 里是正常 API、数据外传还是隧道,也不能替应用执行用户授权。

text
Internet → public gateway:443       allow
gateway  → application:8080         allow
application → database:5432         allow
Internet → database:any             deny
application → arbitrary Internet    deny by default

分段应围绕故障半径和信任差异:公网入口、应用层、数据层、管理面、构建系统和安全控制面不应处于一个平面广播域。分得过细又会造成规则爆炸,所以要从高价值边界与实际攻击路径开始。

NAT 不等于访问控制 ​

NAT 改写地址并隐藏部分内部拓扑,但连接跟踪、端口映射、UPnP、反向连接和已建立出站流量都能穿过它。安全结论应来自明确 firewall policy 和端点认证,而不是“私网地址外面看不到”。

同理,DMZ 是一种分段布局,不是天然可信区。DMZ 中的反向代理被攻破后,只应能访问明确后端端口,不能因“已经在内网”读取数据库和管理面。

出站控制限制攻击者下一步 ​

只控制 ingress 会让已攻陷进程自由下载工具、访问 C2、扫描内网和外传数据。Egress policy 应允许应用确实需要的 DNS、身份、遥测和外部 API,默认阻止 metadata、管理网和未知目的地。若工作负载确实通过 metadata 获取实例身份,需给专用身份获取路径窄例外,不能让任意 URL 抓取功能共用这条权限。

域名级允许需要可信 DNS 路径、解析结果同步和重定向策略。CDN 与动态地址让简单 IP allowlist 很脆弱;可使用受控 egress proxy/gateway 集中域名与身份策略,但要说明它是转发 TLS 隧道还是终止 TLS。仅接受 CONNECT host 不等于已核实隧道内每个 HTTP 请求;解密代理又会成为新的明文和信任边界。

DNS 是控制路径的一部分 ​

DNS 劫持、缓存污染、恶意 search domain 和 dangling record 都可能把流量导向攻击者。企业解析器应限制递归来源、保护管理面、记录关键变更,并对异常新域和高熵查询建立检测。

DNSSEC 在信任链验证成功时提供 DNS 数据来源认证与完整性,不证明域名经营者可信,也不提供查询机密性。DoH/DoT 保护客户端到所选解析器的传输,解析器仍可看到查询;未经管理的端点可能绕过企业解析策略。选择要区分客户端隐私、恶意软件规避和内部域解析需求。

管理面与数据面分离 ​

管理接口应只暴露给单独的管理身份与访问路径。应用到数据库的业务连接权限,不应顺便包含修改安全组、读备份凭据或管理构建 runner 的权限。

还要设计 out-of-band 恢复路径。若身份系统或网络控制面故障,break-glass 应受双人控制、短期凭据和全程记录,而不是一组永不过期的共享管理员密码。

验证网络策略 ​

  • 从允许与不允许的源分别做连接测试;
  • 同时验证 IPv4、IPv6 和各可用区路径;
  • 检查出站 redirect、DNS 变化和 metadata 阻断;
  • 验证规则删除、临时例外到期和控制器故障行为;
  • 从 flow log 反查每条长期 allow 的实际消费者;
  • 模拟一台应用主机失陷,确认不能横向访问管理面和邻居服务。

下一课讨论跨不可信网络连接远程主体时,VPN 与零信任访问分别负责什么。

参考资料 ​

Built with VitePress | Software Systems Atlas