隔离要达成什么
现场处置中的隔离,目标是把失陷主机对外的通信通道以及与内网其他主机之间的横向通道切断,而不是把主机本身「处理掉」。断电、直接拔掉网线或贸然 kill 可疑进程,会同时丢失内存内容、TCP 会话表、未落盘的日志与完整进程树,而这些恰恰是判断入口点与影响面最关键的易失性证据。
两条隔离路径
网络侧隔离靠交换机端口 shutdown、调整 VLAN 或 EDR 的网络遏制能力实现,基本不动主机,现场保留最完整,适合能协调到网络团队的场合;主机侧隔离靠本机防火墙限制出站,适合网络设备无法远程操作、或者需要精确控制到某个进程与账号的情况。两条路径可以叠加使用。
基本信息
| 适用平台 | Linux(nftables/iptables、firewalld、EDR 客户端) |
|---|---|
| 隔离目标 | 切断外联与横向,同时保留易失性证据 |
| 网络侧手段 | 交换机端口 shutdown、VLAN 调整、代理层封堵 |
| 主机侧手段 | 出站规则限制,可按目标网段、UID、进程封堵 |
| 必须记录 | 动作时间、原因、执行人、隔离范围与验证方式 |
典型使用场景
- 主机仍在向外传输数据:先限制出站,止住外传再从容采集
- Web 服务器被当作跳板:封掉它对内网网段的访问,保留对取证服务器的通道
- 需要继续观察攻击者行为:用出站白名单替代完全断网,边遏制边观察
- 网络设备无法远程操作:只能在主机上做临时防火墙级遏制
- 取证人员无法到场:按脚本指导现场人员执行,并要求回传执行回显
主机侧出站限制
主机侧出站限制
# 只放行到取证服务器与运维跳板,其余新建出站连接丢弃
nft add rule inet filter output ip daddr 10.0.9.20 accept
nft add rule inet filter output ip daddr 10.0.9.60 accept
nft add rule inet filter output ct state new drop
# iptables 等价写法:按目标网段放行
# iptables -I OUTPUT -d 10.0.9.0/24 -j ACCEPT
# iptables -A OUTPUT -m state --state NEW -j DROP
ss -tunap | head -20 # 记录实施隔离时仍然存在的连接,事后可对照处置顺序与理由
| 顺序 | 动作 | 为什么这个次序 |
|---|---|---|
| 1 | 记录当前时间与系统状态 | 状态每分钟都在变化,先固定基线 |
| 2 | 采集易失性数据(内存、进程、连接) | 重启或断电后不可恢复 |
| 3 | 实施隔离并留存规则文本 | 防止取证期间继续外传或横向移动 |
| 4 | 从外部验证隔离是否生效 | 规则写错会出现名义隔离、实际放行 |
| 5 | 镜像与日志打包并附哈希清单 | 转入离线分析阶段 |
隔离规则必须显式放行管理网段与取证通道,否则运维人员会被一起挡在门外,只能到机房现场接线处理,反而延长失陷时间。
任何隔离动作都要写进事件处置记录:谁、在什么时间、基于什么判断、做了什么、怎么验证。后续报告与复盘都依赖这份记录还原决策链。