为什么约束比技术更重要
在办公网络上,渗透测试的常见动作是发探测包、尝试利用、验证权限提升;这些动作在工控环境里可能直接造成后果:老旧控制器在异常报文下可能通信中断或重启,扫描带来瞬时流量冲击可能打乱控制周期,口令尝试可能锁死设备账号。因此工控渗透测试的第一要务不是找到多少漏洞,而是明确哪些动作绝对不做、哪些只能在特定条件下做,以及在出现异常时谁按什么条件喊停。授权文件里必须写清范围、时段、方法清单、中止条件、应急联系人与恢复方案。
基本信息
| 授权要求 | 书面授权,明确范围、时段、方法清单与责任人,并取得工艺与设备方同意 |
|---|---|
| 优先环境 | 测试环境、影子系统或非关键且可随时停用的设备,生产系统仅做非侵入性检查 |
| 可接受的方法 | 被动流量分析、配置与策略审查、台账与流程核查、在测试设备上做协议健壮性验证 |
| 禁止的方法 | 在生产设备上做漏洞利用验证、可用性压力测试、口令暴力尝试、固件刷写实验 |
| 中止条件 | 出现设备通信异常、控制行为偏离、告警激增或工艺异常时立即停止并恢复 |
| 现场配合 | 测试期间必须有熟悉现场的人员在场,并保持与工艺方的实时联络 |
测试安排要点
- 先书面后动手:授权、范围与方法清单确认完毕才开始,任何超范围动作需重新授权
- 以被动为主:优先通过流量与配置看清现状,减少对设备的主动交互
- 分环境分级:测试设备上可做侵入性验证,生产设备只做非侵入性核查
- 约定中止条件:把可观测的异常信号与停止流程写进方案,并明确谁的指令优先
- 准备恢复手段:事先确认设备恢复方式、备份可用性与联系人
- 报告要可执行:每条问题给出影响说明、复现条件与修复建议,而不只是漏洞列表
- 覆盖非技术面:物理接触、外设使用、运维流程与人员操作同样属于测试范围
测试类型与可行性
| 测试类型 | 生产环境可行性 | 条件 |
|---|---|---|
| 被动流量分析 | 可行 | 在不影响链路的前提下接入,注意镜像容量 |
| 配置与管理审查 | 可行 | 以只读方式读取配置与记录 |
| 服务与资产发现 | 需谨慎 | 评估设备对探测报文的容忍度,限制速率与来源 |
| 协议健壮性测试 | 不建议 | 仅在测试设备或可随时停用的设备上进行 |
| 漏洞利用验证 | 禁止 | 会造成未知后果,属不可接受风险 |
| 口令强度测试 | 禁止 | 可能触发锁定或保护机制,影响生产登录 |
任何「验证这个漏洞能不能被利用」的动作,本质上是把设备置于未知状态。工控设备的容错能力通常没有文档描述,因此这类动作只能在测试设备上进行;确需在生产上评估时,应以读取配置、比对版本与查阅厂商信息替代实际利用。