← 中文资源

简体中文版本

网络隔离审查工作流

先建模预期流量,再从遥测捕获实际流量,两相对照暴露非预期路径与过宽规则。

阅读英文原文

目标

防火墙与安全组规则会随每次救火与早已下线的集成不断累积,直到网络许可的远超任何人本意。用“预期流量矩阵”对“实际观测流量”做对账,考古变成证据:没观测到的规则多半是死重,观测到却没预期的就是该堵的暗道。

步骤要点

  1. 建模预期流:从架构出发记录哪些服务、层级、端口应该互通,由架构负责人签署,不参考现行规则。
  2. 捕获实际流:取代表性窗口的流日志,把源目地址联结到服务身份而非裸 IP。
  3. 对账预期与实际:观测到但无预期的流要么缺文档要么真问题,预期但从未观测的规则是删除候选。
  4. 按观测需要收紧规则:重写规则只覆盖预期流加登记例外,历史窗口也从未命中的规则删除。
  5. 收紧后再跑一轮对账:捕捉只在周或月级出现的流,反复迭代直到差异清零或全部处置。

排错提示

删了规则月度批处理挂了是窗口太短,收紧后必须再观测一个完整周期;规则数只增不减说明从没做过对账,把删除候选显式列出来评审;break-glass 路径平时零流量,删之前先登记为例外并做一次演练。

适用边界

流日志采样率与覆盖周期决定对账灵敏度,长周期任务需延长窗口;服务身份联结依赖 IP 与服务的稳定映射,弹性 IP 频繁变化的环境要先建身份解析。

代码示例

intended matrix (signed by owners):
  web -> api:443        api -> db:5432
  api -> cache:6379     batch -> db:5432

observed (14d window, service identity):
  web -> api:443            OK
  api -> db:5432            OK
  api -> cache:6379         OK
  batch -> db:5432          OK
  api -> legacy-pay:8443    UNINTENDED (rule from 2023)
  admin-pod -> *:ANY        UNINTENDED (over-broad)

rules: 214 -> 96 (118 never observed, removed
  after 14d + 30d history check)
re-run window: 2 monthly flows restored (registered)