Security/OSSA-Metrics
Work in progress
目录
简介
OpenStack 安全小组建议,当 VMT 创建 OpenStack 安全公告时,使用以下指标来评估漏洞对 OpenStack 部署的潜在影响
与所有评分系统一样,这并不具有普遍适用性,但将为每个漏洞的严重程度提供基本指导。
OSSG 已经将 DREAD 指标作为 OpenStack 漏洞影响评估的基础。 我们调整了每个评分类别,以更好地反映云环境中漏洞的影响。
公有云与私有云
在尝试确定 OpenStack 中漏洞的影响时,我们面临的困难之一是了解它如何影响不同的部署类型。 可以认为私有云上的经过身份验证的用户可能比公有云上的用户更值得信赖。 然而,在设计这种威胁指标时,我们断言,您不能自信地信任私有云上的所有员工,就像您不能信任公有云的用户一样——这一断言在定期识别 恶意内部人员 作为对任何组织的最大的威胁之一得到一定程度的验证[1]。
评分不能替代经验
使用 DREAD 进行评分和使用 STRIDE 进行分类都是主观的。 下面的校准部分应帮助 VMT 和其他利益相关者对每个漏洞的影响做出合理的判断,并保持多个问题评级之间的一致性。 STRIDE 和 DREAD 应用于帮助构建围绕漏洞可以用来做什么以及被利用的影响的对话。
STRIDE
我们建议 VMT 按照 STRIDE 对漏洞进行分类。 这不必是一项复杂的任务。 它只是为描述攻击者如何利用漏洞提供了一个简单且成熟的框架。
- 身份欺骗:攻击者可以通过某种安全漏洞冒充另一个用户
- 篡改:攻击者可以在未获得适当授权的情况下更改用户或系统数据
- 抵赖:攻击者可以采取未记录/记录的操作,即使它们应该被记录
- 信息泄露:攻击者能够从系统中提取不应可用的信息
- 拒绝服务:攻击者能够拒绝向有效用户提供服务
- 升级:攻击者能够提升权限或访问超出其分配权限的权限
在下面的评分中,我们使用 STRIDE 作为“潜在”标题的内容。
DREAD
DREAD 评分五个类别,这些类别加在一起并除以五,结果是 0-10 的分数,其中 0 表示没有影响,10 是最坏的结果
风险 = (损害 + 可重复性 + 可利用性 + 受影响的用户 + 可发现性) / 5
损害潜力
- 如果漏洞被利用,将造成多少损害?
- 0 = 没有
- 3 = 个人用户数据被泄露、受影响或可用性被拒绝
- 5 = 所有个人租户数据被泄露、受影响或可用性被拒绝
- 7 = 所有租户数据被泄露、受影响或可用性被拒绝
- 7 = 特定云控制器组件/服务的可用性被拒绝
- 8 = 所有云控制器组件的可用性被拒绝
- 9 = 底层云管理和基础设施数据被泄露或受影响
- 10 = 完整系统或数据破坏、故障或泄露
可重复性
- 漏洞可以被利用的可靠性如何?
- 0 = 非常困难或不可能,即使对于管理员而言。 漏洞不稳定,统计上不太可能可靠地被利用
- 5 = 需要一到两个步骤,工具/脚本易于获得
- 10 = 未经身份验证的用户可以使用仅网络浏览器轻松可靠地利用
可利用性
- 利用漏洞有多困难?
- 0 = 不适用。 我们断言每个漏洞在付出时间和精力后都是可利用的。 所有分数应为 1-10
- 1 = 即使直接了解漏洞,我们也看不到可行的利用路径
- 2 = 需要高级技术,自定义工具。 仅可由经过身份验证的用户利用
- 5 = 漏洞利用可用/已理解,可由具有适度技能的经过身份验证的用户使用
- 7 = 漏洞利用可用/已理解,可由未经身份验证的用户使用
- 10 = 琐碎 - 只需要一个网络浏览器
注意: 在这种情况下,身份验证指的是 OpenStack 用户。 在计算节点上与虚拟化应用程序交互的用户被视为未经身份验证的用户。 超内核突破将被视为未经身份验证的攻击。
受影响的用户
- 有多少用户会受到影响?
- 0 = 没有
- 5 = 特定于给定的项目
- 10 = 所有用户受到影响
可发现性
- 发现威胁有多容易,了解漏洞有多容易(按照惯例,即使对于私下报告的漏洞,也设置为 10)
- 0 = 即使在访问源代码和特权访问正在运行的系统的情况下,也极难或不可能检测到
- 5 = 可以通过猜测或通过监视网络跟踪来弄清楚
- 9 = 此类故障的详细信息已在公共领域,可以使用搜索引擎轻松发现
- 10 = 信息显示在网络浏览器地址栏或表单中
描述漏洞评分
我们期望以以下方式描述漏洞的影响
| 潜在:篡改、升级 | ||||
|---|---|---|---|---|
| 分类 | 评分 | 原理 | ||
| 损害 | 6 | 重大破坏 | ||
| 可重复性 | 8 | 代码路径易于理解,条件作为标准存在 | ||
| 可利用性 | 2 | 在特定条件下才能非常难以利用 | ||
| 受影响的用户 | 8 | 所有云计算用户 | ||
| 可发现性 | 10 | 可发现性始终假定为 10 | ||
| DREAD 评分:31/5 = 6.2 - 重要,优先修复 | ||||
[可能有一些不错的图表]
评分类别/建议
这里的下一个自然步骤将是根据 DREAD 评分对漏洞进行分类,例如,0-3 将是“琐碎,在下一个版本中修复”,而 8-10 可能是“关键,立即修复”。 尚不清楚以这种方式进行分类是否应该是 VMT 的责任。 通过生成 DREAD 评分,VMT 已经告诉部署者漏洞可能影响什么以及它将如何严重影响,并提供了一种比较一个漏洞与另一个漏洞的机制。
这些分数还将为随时间推移的安全分析提供价值,更好地对漏洞进行分类(通过 STRIDE)和对影响进行评分(通过 DREAD)将使社区能够查看设计的哪些特定领域和实施似乎从安全角度来看最糟糕。
校准
在这里,我们采用最近的 OpenStack 安全公告中的几个,并尝试应用上述指标。 评分始终是主观的,但我们希望能够使用这些以前的漏洞来首先调整每个类别的评分,并稍后使用它们来验证新漏洞的评分。
OSSA 2014-038
- 标题:按 IP 列出实例导致 nova-network 的 DoS
- 链接:https://bugs.launchpad.net/ossa/+bug/1358583
- 分配的重要性:中
总结
在系统中大约有 500 个 VM 的客户安装中,运行以下命令将挂起:nova list --ip 199
之后会发生的情况是 nova-network 进程将停止响应一段时间,跟踪显示它正在接收大量数据。
Dread 评分
| 潜在:拒绝服务 | ||||
|---|---|---|---|---|
| 分类 | 评分 | 原理 | ||
| 损害 | 5 | 对 API/管理造成重大破坏 | ||
| 可重复性 | 8 | 代码路径易于理解,条件作为标准存在 | ||
| 可利用性 | 8 | 可以使用 cURL 利用,需要身份验证 | ||
| 受影响的用户 | 4 | 所有 Nova API 用户 | ||
| 可发现性 | 10 | 可发现性始终假定为 10 | ||
| DREAD 评分:35/5 = 7 关键 | ||||
讨论
Dread 评分是否与漏洞的感知威胁相符?
OSSA 2013-012
- 标题:Nova 无法验证镜像虚拟大小
- 链接:https://bugs.launchpad.net/nova/+bug/1177830
- 分配的重要性:关键
总结
Nova 没有实现检查用作实例临时存储的 qcow2 镜像的虚拟大小。 因此,用户可以创建一个具有大虚拟大小的镜像,然后继续填充虚拟磁盘,并消耗主机节点上的所有可用磁盘
Dread 评分
| 潜在:拒绝服务 | ||||
|---|---|---|---|---|
| 分类 | 评分 | 原理 | ||
| 损害 | 7 | 本地节点和其上的所有租户的拒绝服务 | ||
| 可重复性 | 5 | 代码路径易于理解,在使用 QCOW2 时存在条件 | ||
| 可利用性 | 6 | 授权用户能够配置计算资源 | ||
| 受影响的用户 | 6 | 节点上的所有 Nova 计算用户 | ||
| 可发现性 | 10 | 可发现性始终假定为 10 | ||
| DREAD 评分:34/5 = 6.8 - 重要,优先修复 | ||||
讨论
Dread 评分是否与漏洞的感知威胁相符?
OSSA 2014-029
- 标题:目录替换允许读取配置
- 链接:https://bugs.launchpad.net/ossa/+bug/1354208
- 分配的重要性:中
总结
任何能够在 Keystone 中创建端点的人都可以读取 Keystone 配置文件的任何值。 配置文件的某些值是密码或管理员令牌,例如。
Dread 评分
| 潜在:信息泄露 | ||||
|---|---|---|---|---|
| 分类 | 评分 | 原理 | ||
| 损害 | 10 | 如果您获得管理员令牌,您可能会删除所有用户,创建具有额外权限的用户等。 | ||
| 可重复性 | 7 | 如果您有权创建端点,则很容易做到。 | ||
| 可利用性 | 5 | 用户必须被授予创建端点的权限,这不太可能。 | ||
| 受影响的用户 | 5 | 特定于 Keystone。 | ||
| 可发现性 | 10 | 可发现性始终假定为 10 | ||
| DREAD 评分:37/5 = 7.4 - 重要,优先修复 | ||||