本节摘要:云网络最大的错觉是"有了边界就安全"。本节从一张扁平网络酿成的横移事故讲起,讲分段设计的基本功、有状态与无状态两类网络控制的分工、Web 入口的专用防线与出口流量的审计,最后给出一套网络分段的设计推演。
一家公司的云上环境是一张扁平网络:Web 服务器、应用服务、数据库、运维跳板全在一个网段里互通。某夜一台 Web 服务器因老版本组件的远程执行漏洞失陷,攻击者接下来做的事让复盘会所有人沉默——从这台 Web 服务器直接扫描到数据库端口,用默认弱口令登录,拖走核心表。全程没有遇到第二道拦截。
复盘结论只有一句:这台 Web 服务器的失陷不必然等于数据库失陷,是网络把它们放在了同一个房间。扁平网络的问题不是"易攻",而是"失陷后没有边界"——攻击者在第一落点拿到的视野就是整个内网。修法的名字叫分段:按业务敏感度把网络切成小房间,房间之间的门按需开放、默认关闭。
分段的基本功是"按信任级别划区 + 按数据流开门"。典型三层划分:对外服务区(只暴露必要端口)、应用区(不接受公网直连)、数据区(只接受应用区的特定端口访问)。每一段是一个独立的网络边界,段间流量显式放行,未声明的默认拒绝。
段间的"门卫"在云上有两类,考试与实务都爱考它们的分工。一类是有状态防护(安全组类):像前台登记,连接的往返自动放行,规则挂在资源上,适合描述"这台数据库只允许应用区访问其业务端口"。另一类是无状态防护(网络访问控制列表类):像小区门禁逐包核对进出规则,规则挂在子网上,往返要各自声明,适合做子网级的粗粒度兜底与明确拒绝。两者的关系是纵深防御在网络上落的子:资源级细控加子网级粗控,两层各司其职。
| 对比项 | 有状态防护(安全组类) | 无状态防护(访问控制列表类) |
|---|---|---|
| 挂靠对象 | 单个资源 | 整个子网 |
| 回程流量 | 自动放行 | 需显式声明 |
| 规则语义 | 只能放行 | 可放行可拒绝 |
| 适用粒度 | 资源间精确授权 | 子网级兜底与封禁 |

分段管的是内部,网络安全的另一半在进出口。入口侧的专用防线是 Web 应用防火墙与 DDoS 防护:前者按规则与行为特征过滤应用层攻击(注入、跨站、恶意爬虫),后者保住可用性。部署要点是让它们站在所有公网入口前面,且规则版本受控——裸奔的入口配上再好的内部分段,也是门里修墙门外失守。
出口侧是本节最容易被忽略的考点:出站流量的审计与管控。数据被拖走也是流量,出口不设防等于仓库后门大开。基础动作:出口走固定网关、按目标分类管控(默认允许业务必需目标,其余告警)、全量出口日志留存。进阶动作是对"异常目的地、异常体量、异常时段"的出口基线告警——第六章的监控体系会直接复用这套基线。
拿推演 B 的结构自查自家环境,五个问题按序问:第一,网络是否还有"一个网段走天下"的遗留区?第二,数据库与中间件是否零公网入口?第三,管理通道是否收敛到堡垒机并双因素认证?第四,出口流量是否固定网关并留痕?第五,分段规则本身是否有变更审批与定期复核?
第五问最见功力:分段规则也是配置,也服从 2.4 的漂移治理——规则越积越多、来历越说不清,分段就在悄悄退化回扁平网络。把网络规则纳入 IaC 与定期评审,分段才能长期保形。
网络域的考题偏爱"看似合理的错误选项",两组高频判断提前拆弹。
判断一:"安全组规则默认全拒绝,所以网络已安全,无需访问控制列表。" 错在单层思维——安全组是资源级细控,子网级的无状态层提供的是兜底与明确拒绝能力(比如全网段封死某个高危端口的出入),两层各防各的失误场景。凡是"有了 A 就不需要 B"的选项,先想想纵深防御原则再选。
判断二:"内网流量不需要加密,分段已经隔离了。" 两处错:分段限的是可达性,限不了已获授权路径上的窃听与篡改;而零信任语境下内网本身就是不可信假设。正确表达是分段管入口、加密管通道,各自独立成立。
再给一个排序题的通用解法。网络域场景题常问"先做什么",排序口诀:先止血(关高危入口)再修复(改规则)、先留痕(开日志)再变更(动配置)、先验证(规则复核)再收工。把"流量的方向"也纳入判断:入口问题先查暴露面,出口问题先查审计——方向感错了,选项就会选反。
分段体系里最危险的从来不是规则本身,而是例外。每个"临时放行一条"的需求都合理,三个月后例外比规则还多,分段名存实亡。治理例外靠三个机制:每条例外带到期日(到期自动失效,需要就重新申请);例外有编号有理由有审批人(审计能回答"为什么存在这条规则");月度例外评审会(超期未清理的上会)。这三个机制写进运营日历,分段才能长期保形——网络规则的腐烂速度超乎直觉,管理例外的能力就是分段能力。
服务模型上移后,网络分段并没有消失,只是换了形态。IaaS 语境里你亲手划子网、配安全组;PaaS 语境里厂商把底层网络藏起来了,分段收缩为两件事:私有访问端点(让托管数据库只从虚拟网络内部可达,公网入口直接归零)与服务间调用控制(哪些服务可以调哪些服务,用策略而非用网通可达性默许)。很多团队在 PaaS 上退化成"全靠公网入口加访问密钥",等于把 4.2 前半节讲的东西全部放弃——托管服务各自挂着公网地址,靠一把长期密钥守门,这正是元数据凭据泄露事故能一路横移到数据库的网络层原因。
自查一句就够:列出自家环境里所有带公网入口的托管服务,逐个问"它为什么必须在公网上"。答案通常是"图方便"而不是"有必要"。收进私有端点的成本是一小时的配置,收益是攻击面直接少一整块。
辨析一:负载均衡器是不是安全组件。 多数团队把它当性能组件,评审时漏检。实际上它是入口策略的汇聚点:TLS 终止策略、健康检查暴露的信息、管理端口的可达性、跨区切换时入口规则是否随迁,四项都是安全配置。评审到访问层时,负载均衡器的配置要逐项过,不能默认"它是厂商托管的就是对的"。
辨析二:私有网络互连(对等连接)算不算扩大了攻击面。 算,而且常被低估——两条虚拟网络一对等,路由层面就通了,分段若只建在安全组层面、没在路由层面收口,等于把两个环境的内部道路网接到了一起。对等连接的评审要点是"最小路由":只发布互通所需的最小网段,跨环境的敏感段不进路由表。连接是方便的代名词,也是横移通道的代名词,这两句话要在架构评审里成对出现。
送一句贯穿本节的收束语:网络域的一切设计,最终都要回答"这一跳如果被穿透,下一跳靠什么顶住"——答案里只要还有一个"信任上游",就还有一段没画完的分段。
通道收窄之后,下一节换主角:在云上,比网络边界更根本的边界是身份——每一扇门真正的钥匙库。