固定配置的漏洞应对与交接
目标
判断哪些漏洞因认证配置限制而无法通过升级修复,并将缓解依据记录为文档;找出夜间作业日志中的审计违规;最终完成一套让接手者无需互联网也能阅读并照做的交接材料。
为什么重要
认证配置一旦应用最新补丁,就不再是获得认证时的那套配置,而重新认证需要数月。因此,这里的漏洞响应往往不是以更新结束,而是以缓解措施和文档化结束。由于缓解后版本号保持不变,从外部看无法区分“已采取措施”和“什么也没做”,所以留下已作出判断的记录本身就是工作。审计追踪也具有相同性质——不是事故后再去查找,而是要在作业前就设计成会留下记录;没有留下的内容,无论多努力查找都不会出现。
步骤
- 使用
python3在/root/handover/中创建baseline.json(10 项配置)、advisories.json(8 条公告)、worklog.csv(14 项作业)和window.txt。 - 在
/root/handover/impact.csv中逐条判断并记录公告是否产生影响。版本号按点号拆分后以数字比较。 - 在
/root/handover/mitigation.md中以表格写明受影响项目的措施类型、依据和重新评估时间。 - 在
/root/handover/freeze.txt中写入认证编号、配置清单的 SHA-256、固定配置数量、可变更配置数量,以及固定且受影响的配置数量。 - 将未经批准就执行的作业按原始行原样输出到
/root/handover/audit-noapproval.csv。 - 将执行者与批准者相同的作业输出到
/root/handover/audit-selfapproved.csv。 - 将作业窗口之外的作业输出到
/root/handover/audit-window.csv,并在/root/handover/audit-summary.txt中写入三类数量和去重后的实际违规作业数量。 - 在
/root/handover/runbook.md中编写包含七个章节的交接操作手册。 - 使用
/root/handover/HANDOVER.sha256和/root/handover/index.md完成交接材料包。
参考
- JSON 建议使用
jq处理;版本比较和表格生成使用python3更安全。 - ISO 8601 时间的位数固定,因此字符串比较等同于时间比较,可以直接在
awk中使用不等号。 - 常见错误 1:将版本作为字符串比较。这样
16.2看起来比16.10大。 - 常见错误 2:简单相加三类违规数量并将其报告为违规作业数。这样会报告并不存在的事故。
- 常见错误 3:修改产出物后不重新生成
HANDOVER.sha256。清单必须最后生成。
创建配置、公告和作业日志
使用 python3 在 /root/handover/ 中创建 baseline.json(10 项配置)、advisories.json(8 条公告)、worklog.csv(14 项作业)和 window.txt。
使用 python3 创建 baseline.json、advisories.json、worklog.csv 和 window.txt 四个文件。只有值固定,才能相互核对判断,因此请原样使用生成脚本。
对照配置与公告判断影响
在 /root/handover/impact.csv 中逐条判断并记录公告是否产生影响。版本号按点号拆分后以数字比较。
如果将版本作为字符串比较,16.2 看起来比 16.10 大,而 3.12.3 看起来比 3.9.20 小。请按点号拆分后以数字比较。未安装的组件不受影响。
编写缓解措施与依据表
在 /root/handover/mitigation.md 中以表格写明受影响项目的措施类型、依据和重新评估时间。
表中只列出受影响的项目。受认证配置约束的组件,措施类型应为缓解,并以认证编号作为依据;配置之外的组件则进行补丁更新。每行都要附上重新评估日期。
冻结配置清单
在 /root/handover/freeze.txt 中写入认证编号、配置清单的 SHA-256、固定配置数量、可变更配置数量,以及固定且受影响的配置数量。
记录配置清单文件的 SHA-256,可以防止清单被悄悄更改。frozen_affected 是受影响且无法升级版本的配置数量。
找出未经批准执行的作业
将未经批准就执行的作业按原始行原样输出到 /root/handover/audit-noapproval.csv。
即 approver 列为连字符或为空的行。请原样复制原始行——如果进行摘要,之后就无法与原始数据核对。
找出双人控制失效的作业
将执行者与批准者相同的作业输出到 /root/handover/audit-selfapproved.csv。
即 operator 与 approver 相同的行。批准列为连字符的行应归入上一步,而不是这里——混在一起会使两个列表都出错。
统计窗口外作业和实际违规数
将作业窗口之外的作业输出到 /root/handover/audit-window.csv,并在 /root/handover/audit-summary.txt 中写入三类数量和去重后的实际违规作业数量。
窗口包含 window.txt 中的开始时间,但不包含结束时间。三类违规数量之和不等于违规作业数量——同一项作业可能同时违反两项规则,因此要按 seq 去重。
编写交接操作手册
在 /root/handover/runbook.md 中编写包含七个章节的交接操作手册。
需要七个章节。正文不要使用外部链接,不要引用屏幕截图,用角色而不是人名描述责任。命令应写在代码块中,确保可以直接执行。
打包交接材料
使用 /root/handover/HANDOVER.sha256 和 /root/handover/index.md 完成交接材料包。
为八个产出物生成哈希清单,并附上一份说明各文件用途的索引文档。索引文档本身不要加入清单——封面不属于材料包的内容物。