在软件的整个使用期内持续维护
已完成为漏洞、升级、配置漂移和退役安排优先级。追踪维护发现,直到生产修复得到验证。
检验理解依赖修复已合并,但生产仍运行旧镜像。维护处于什么状态?完成练习
你将学到什么
- 区分常规维护与事件响应。
- 根据风险暴露、利用情况和服务影响安排优先级。
- 验证维护修复已到达正在运行的服务。
为维护明确服务负责人
有用的软件在首次发布后仍会变化。依赖会发布修复,运行时会停止支持,证书会到期,业务规则会改变。配置时授予的访问权限,也可能保留得比预期更久。
维护服务、负责人、已部署版本、依赖和支持日期的清单。既纳入计划工作,也纳入新发现触发的工作。为两类工作分配资源。没有负责人的维护积压清单,不能保护服务。
区分维护与即时事件响应。凭据暴露,或存在正在被入侵的证据时,可能必须在正常开发周期完成前遏制影响。将这些情况交给安全响应流程。
根据实际暴露安排优先级
严重程度描述潜在后果。优先级还取决于利用情况、相关行为能否被触发、数据、现有控制措施和延迟成本。流量很低的内部服务,也可能持有重要凭据。
CISA 的已知遭利用漏洞目录记录了有利用证据的漏洞。可将它作为安排优先级的依据。未列入目录,不能证明漏洞安全。参见 CISA 目录。
考虑以下虚构发现。时间限制属于示例组织,不是通用截止期限。
| 发现 | 已知条件 | 有用的第一步 |
|---|---|---|
| 依赖漏洞 | 已知被利用;受影响路由可公开访问 | 升级处理,检查暴露,并规划立即缓解和修复 |
| 凭据被提交 | 凭据仍有效;代码仓库访问情况不确定 | 让安全响应人员介入;通过获准流程撤销或轮换 |
| 运行时支持结束 | 60 天后停止支持;尚无经过测试的升级方案 | 指定升级负责人和兼容性测试窗口 |
| 基础设施漂移 | 手动修改打开了非预期网络路径 | 确认修改,通过获授权的控制措施限制路径,并使配置重新一致 |
不要自动把每项发现都变成重大升级。选择受支持的修复,检查兼容性,并测试重要行为。为临时缓解措施记录负责人和到期条件。
追踪修复进入生产
使用可追溯序列:发现、决定、修改、审查、部署和验证。记录生产实际使用的制品标识符。修改后,重新扫描相关制品或环境。
以虚构的易受攻击 PDF 软件包为例,团队在 10:00 合并升级,但 11:00 时生产仍运行昨天的镜像。代码仓库修复已完成,生产修复尚未完成。
部署后,既验证软件包版本,也验证 PDF 生成功能。漏洞扫描不能证明导出仍然正常。功能测试也不能证明有漏洞的组件已被移除。
NIST 的 SSDF 包括持续识别漏洞并响应。应在整个生命周期应用这些实践,包括很少收到新功能请求的软件。参见 NIST SSDF。
使用自动化,并明确其局限
Taiga Maintaining 扫描已连接的代码仓库,并可将发现转化为修复 initiative。检查最近一次成功扫描、受影响版本和生成的修改。代码仓库扫描不能证明生产环境中受影响的行为能否被触发。参见 Maintaining。
自动化可以减少重复工作,但服务仍需要明确部署责任和验证。保留清楚的发布决定、紧急访问和例外到期条件。
维护也包括退役。通过受控流程移除不再使用的路由、凭据、集成和基础设施。删除前检查保留要求和依赖服务。让运行中的服务退役,并分配剩余的数据保留或审计职责。
下一课将详细介绍持续漏洞扫描与修复。
完成练习
使用本课的四项虚构发现。为每项指定负责人、第一步行动、验证方法和复核时间。解释哪项新观察会改变你的优先级。
下载工作表(Markdown)取消勾选将删除此浏览器保存的全部进度。
进度保存在此浏览器中。无需账户,不追踪使用情况。
来源与延伸阅读
- NIST: Secure Software Development Framework ↗
- CISA: Known Exploited Vulnerabilities Catalog ↗
- Taiga docs: Maintaining ↗