配置管理与漏洞管理

配置管理&与漏洞管理实践涉及修补和更新应用程序、版本控制、缺陷跟踪和补救以及事件处理。

1 级配置管理和漏洞管理

[CMVM1.1: 103] 创建或联合事件响应职能。

SSG 已经准备好对事件或提醒作出响应,并通过创建自己的事件响应职能,或定期与组织的现有团队接洽,定期参与事件响应流程。SSG 与事件响应团队定期会谈能够保持数据双向流动。与关键供应商(例如,基础架构、SaaS)预先建立沟通渠道也非常重要。

[CMVM1.2: 101] 确定在操作监控中发现的软件缺陷并反馈给开发部门。

通过操作监控发现的缺陷会被反馈给开发部门,用于改变开发人员的行为。有时,生产日志的内容能够揭示内情(或能够揭示改善日志的需求)。提供一种将事件分类数据输入现有缺陷跟踪系统的方法(可能通过使用一个特殊的安全标志)似乎可以解决一些问题,但其立意是关闭信息环路,确保安全问题得到修复。最理想的情况是能够基于操作数据改进 SSDL 中的流程。

2 级配置管理和漏洞管理

[CMVM2.1: 91] 拥有应急代码库响应措施。

组织可以在应用程序受到攻击时快速代码更改,安排一个快速响应小组与应用程序所有者和 SSG 合作,共同研究代码和攻击,找到解决方案,并修复产品代码(例如,将一个补丁投入生产,回滚到一个确实优秀的版本,部署一个新的容器)。通常,应急响应团队就是工程团队。团队此时必须具有明文规定的流程,但是从未使用过的流程没有实际用处。

[CMVM2.2: 88] 通过固定流程追踪在操作中发现的软件缺陷。

操作中发现的缺陷被反馈到开发部门,录入既有的缺陷管理系统,并通过修复流程进行跟踪。这项职能可以采用双向衔接缺陷查找和缺陷修复职能的形式,但要确保环路没有完全关闭。在缺陷追踪系统中设定安全信标能够便于开展追踪。

[CMVM2.3: 64] 编制应用程序操作清单。

该组织拥有其软件的部署地图。需要更改代码时,运营或 DevOps 团队能够笃定地找到需要安装更改的所有位置。会在多个项目之间共享的通用组件会被标注,以便在一个应用程序中出错时,也可以修复共享相同组件的其他应用程序。

3 级配置管理和漏洞管理

[CMVM3.1: 2] 修复在操作中发现的所有软件缺陷。

该组织修复操作期间发现的所有缺陷情况,而不仅仅是触发错误报告的少数情况。这就必须具备在出现新的缺陷种类时重新检查整个代码库的职能(参见 [CR3.3 消除整个代码库的特定缺陷])。解决这个问题的方法之一是创建一套规则,将已部署的缺陷概括为可以通过自动代码审查进行扫描的内容。使用容器可以极大地简化部署针对发生的所有软件缺陷的修复程序。

[CMVM3.2: 9] 加强 SSDL 以防御在操作中发现的软件缺陷。

在操作中积累的经验带来 SSDL 的改变,从而反过来改善 SSDL,防止在操作过程中重新引入已经发现的缺陷。为使该流程实现系统化,每个事件响应事后环节都可以包含一个“反馈到 SSDL”的步骤。当根本原因分析查明 SDLC 中可能引入或潜入未被察觉的错误时,这一环节作用最大。这一流程简化了 DevOps 工程师的工作,因为所有的参与者都可能参与到讨论和解决方案中。仅用一种临时的方法来改进 SSDL 是不够的。

[CMVM3.3: 12] 模拟软件危机。

SSG 模拟影响巨大的软件安全危机,确保软件事件响应职能可将损害降至最低。模拟可以测试确定和缓解特定威胁的能力,或者在其他情况下,可以从假设关键系统或服务已经受到损害着手,并评估组织的响应能力。模拟攻击成功之后需要考虑的一个重要问题是清理所需的时间。无论如何,模拟必须关注安全相关的软件故障,而不是自然灾害或其他类型的应急演习。高度依赖供应商基础架构(例如,云服务提供商、SaaS)和安全功能的组织自然会在危机模拟中包含这些内容。

[CMVM3.4: 13] 运行缺陷赏金计划。

该组织向外部研究人员征集漏洞报告,收到的漏洞报告一经验证和接受,就会给予赏金。奖金通常按照浮动比例支付,该比例与多种因素相关,例如漏洞类型(例如,远程代码执行价值 10,000 美元,而 CSRF 价值 750 美元)、可利用性(可论证的利用将获得更高奖金),或特定的服务和软件版本(获得广泛部署或重要服务可获得更高赏金)。临时的或短期的活动,例如夺旗赛或非正式的众包活动,并不构成缺陷奖励计划。

[CMVM3.5: 0] 自动验证运行基础架构的安全性。

SSG 与工程团队合作,推动形成受控的自助流程,从而取代一些传统的 IT 工作(例如,应用程序和基础架构部署),并纳入安全属性的验证(例如,遵守商定的安全加强措施)。工程师现在可以创建网络、容器和机器实例,编排部署,并执行以前由 IT 全权负责的其他任务。为了促进作出这种改变,组织使用机器可读的政策和配置标准来自动检测和报告不符合预期的基础架构。有时,自动化会对正在运行的环境进行更改,以使其符合要求。在许多情况下,组织都采用同一种政策在不同的环境中管理自动化,例如在多云和混合云环境中。