Solum/安全需求
注意:本文档目前正在频繁更新中。如有任何问题或意见,请联系 paul.montgomery@rackspace.com。
目录
Solum 安全需求
Solum 是一个相对较大的项目,拥有多样化的贡献者。此页面将尝试捕获将在 Solum 的核心代码库中实现的安全特性,以便与社区协调工作。 这也将包括操作员/管理员应实现的功能列表。
为什么 Solum 不实现所有安全特性? 有许多 Solum 实现选项和本地环境要求,这将使其变得极其困难或不可能。 每个操作员可能都有自己级别的安全需求。
参考资料
目标
- 整合 Solum 安全需求
- 启用对安全主题的轻松社区讨论/投票
- 通过复制适当的“需求链接”并将其粘贴到审查评论中,简化 Gerrit 审查
- 将讨论日志链接到适当的安全特性,以便其他人可以理解背景讨论和原因(请帮助保持更新)
- 将安全架构反馈给 OpenStack 安全组,以帮助制定 OpenStack 范围内的安全最佳实践文档
免责声明
- 本文档是参考文档,不能替代阅读原始文档
- 一些从外部参考资料引用的需求语言已被修改为 Solum 目的。 通常,这会导致“should”变为“must”,以提高清晰度。
前提条件:
- 将 Solum 视为与 OSSG 定义的“公共云”在威胁模型方面等效
Solum 特定的安全需求
这些需求来自 Solum 社区的讨论。 如果“OSSG 适用”字段包含“是”,则该需求可能通常适用于 OpenStack 中的项目。 注意:除非状态为“已批准”,否则此特性尚未被 Solum 社区接受。
更新:OpenStack 安全组已接受许多 Solum 安全需求,并将很快详细审查每个需求。 此链接,https://wiki.openstack.org/wiki/Security/Guidelines,将成为这些需求的官方存储库。 TODO(wpm):从此 Solum 页面删除重复的安全需求。
| 需求链接 | 状态 | 里程碑 | 描述 | 外部链接 | 备注 | OSSG 适用 |
|---|---|---|---|---|---|---|
| #logging_guidelines | 未开始 | 遵循规定的日志记录指南,以防止机密数据泄露(有关详细信息,请参阅外部链接) | Solum/Logging Wiki | Yes | ||
| #secure_defaults | 未开始 | 所有配置选项必须默认使用安全设置。 例如,如果有一个启用或禁用用户身份验证的选项,则默认必须启用。 | Yes | |||
| #log_insecure_config | 未开始 | 如果存在一个配置选项,可能会以有意义的方式扩大项目的攻击面,则记录该配置选项以及潜在结果的简要描述(至少使用警告级别或更高级别的日志记录)。 这为操作员提供了一个早期警告。 | Yes | |||
| #crypto_algorithms | 未开始 | 除非有法律或行业合规性原因,否则所有加密算法/密钥长度必须至少与以下算法/密钥长度一样强:对称加密:AES-128,非对称加密:RSA-2048,哈希:SHA-256。 | Yes | |||
| #clearing_memory | 未开始 | 仅在内存中保存机密数据最短的时间,然后在用完后将内存清零,作为纵深防御措施。 还要尽快清除保存机密数据的环境变量。 | Yes | |||
| #network_isolation | 未开始 | 除非有明确需要启用连接,否则项目内的系统之间必须完全网络隔离。 任何例外情况都应由社区讨论并记录。 | Yes | |||
| #digital_signatures | 未开始 | 项目内任何可能跨越信任边界的数字资产必须使用 RSA-2048 + SHA-256 或更强的算法/密钥进行数字签名。 例如:如果 Glance 镜像将在系统上执行,则应在使用前对镜像进行数字签名和身份验证。 | Yes | |||
| #exec_least_priv | 未开始 | 作为纵深防御措施,所有软件必须以最小权限和最严格的配置运行。(注意:这可能是操作员的任务。) | Yes | |||
| #auth_backoff | 未开始 | 失败的身份验证尝试必须在用户可以尝试重新身份验证之前触发增加的退避时间。 退避时间必须可由操作员配置。 | Yes | |||
| #auth_timing_attack | 未开始 | 为了防止攻击者使用时序攻击定位有效帐户,有效和失败的身份验证尝试的响应时间之间不能有可感知的差异。 | Yes | |||
| #secure_storage | 未开始 | 机密数据,例如凭据信息和私钥,不应以未加密的形式存储在非易失性存储器中。 这是纵深防御主题,旨在为攻击者提供障碍,以防他们获得系统的某些部分访问权限。 在可能的情况下,将安全责任分配给用户应用程序存储/执行环境。 即使非易失性存储器中的加密数据也可能很有价值(特别是考虑到实现中的错误的可能性),从而创建一个高价值目标。 将安全数据尽可能推送到更远的地方可以减少攻击者对任何单个数据存储的价值。 | Yes | |||
| #session_management | 未开始 | 会话必须超时并要求用户重新身份验证。 操作员可以配置超时值,建议 24 小时超时为最大值。 此超时必须取消属于该用户的所有会话。 | Yes | |||
| #key_revocation | 未开始 | 该系统必须实现密钥撤销系统,以快速停用潜在受损的密钥。 | Yes | |||
| #req_load_man | 未开始 | 许多提议的系统操作在计算/资源上都很昂贵。 这些操作的完成应该是可预测的和线性的,并根据需要抵抗每用户/项目/服务的拒绝服务或放大攻击。 这可能涉及排队请求、为这些队列设置高水位线(其中额外的请求被拒绝,直到现有请求清除)、队列处理中的节流延迟、单独的工作池或其他负载管理技术。 即使一部分被针对或恶意,系统也必须对其他租户保持可用。 | Yes | |||
| #config_git_pull | 已批准 | Solum git pull 功能必须包含一个配置选项,该选项允许操作员启用或禁用 git pull 功能。 由用户发送的精心设计的 URL,用于执行远程攻击(显然起源于 Solum 本身),而不是指向预期的 git 存储库,可能会使 Solum 看起来像一个恶意站点。 | Solum IRC 讨论日志 | 否 | ||
| #git_pull_regex | 已批准 | Solum 操作员必须能够定义用户提供的 git 存储库 URL 上的类似正则表达式的过滤器,以帮助防止此功能成为攻击媒介。 | Solum IRC 讨论日志 | 否 | ||
| #log_git_pull | 已批准 | 如果在 Solum 中启用了 git pull,则必须创建一个至少为警告级别的日志,以警告操作员系统可能由于用户能够提供自己的 URL 以供 Solum 联系的 git 存储库而处于潜在不安全状态。 | Solum IRC 讨论日志 | 否 | ||
| #encrypted_comm | 未开始 | 除非存在不可逾越的开销,否则服务/系统之间的所有通信都必须加密。 这是纵深防御措施,旨在限制在控制平面系统或服务受到损害时攻击的范围。 | Yes |
基于 OSSG 的 Solum 安全特性
这些是核心 Solum 实现的安全需求。 注意:除非状态为“已批准”,否则此特性尚未被 Solum 社区接受。
| 需求编号 | 状态 | 里程碑 | 文档链接 | 描述 | 外部链接(BP 等) |
|---|---|---|---|---|---|
| 未开始 | >M1 | [link link_text] | desc |
基于 OSSG 的操作员安全特性
这些是操作员应实现但最终由操作员选择的推荐安全特性。 这些需求不在 Solum 核心代码的范围内。 注意:这不是 OpenStack 安全指南中所有需求的详尽列表。 这是一次尝试快速总结一些关键建议,而不是替代 OSSG 本身。
| 需求链接 | 文档链接 | 描述 |
|---|---|---|
| #system_inventory | 第 6 章 - 系统清单 |
文档应提供 OpenStack 环境的一般描述,并涵盖所有使用的系统(生产、开发、测试等)。 记录系统组件、网络、服务和软件通常可以提供彻底覆盖和考虑安全问题、攻击向量和可能的安全域桥接点的鸟瞰图。 系统清单可能需要捕获临时资源,例如虚拟机或虚拟磁盘卷,这些资源在传统 IT 系统中将是持久资源。 |
| #vulnerability_management | 第 9 章 - 漏洞管理 | 操作员应注册 OpenStack Announce 邮件列表 以接收安全通知并监控 OpenStack 安全公告 (OSSA) 和 OpenStack 安全说明 (OSSN)。
|
| #secure_backup_and_recovery | 第 9 章 - 安全备份和恢复 | 确保只有经过身份验证的用户和备份客户端才能访问备份服务器,使用数据加密选项进行备份的存储和传输,使用专用且加固的备份服务器。 备份服务器的日志应每天监控,并且只能由少数个人访问,并定期测试数据恢复选项
|
| #secure_auditing_tools | 第 9 章 - 安全审计工具 | 安全审计工具可自动执行验证给定系统配置满足大量安全控制的过程
|
| #secure_bootstrapping | 第 10 章 - 安全引导 | 云中的节点应使用安全引导技术,例如 TPM、Intel TXT、DRTM 和 UEFI,以确保节点一致且正确地配置。 这也包括使用 PXE 来配置节点。
|
| #node_hardening | 第 10 章 - 节点加固 | 实施安全特性,例如:尽可能使用只读文件系统,使用强制访问控制策略来包含节点上的实例、节点服务和任何其他关键进程和数据(例如 SELinux),删除任何不必要的软件包
|
| #intrusion_detection_system | 第 10 章 - 入侵检测系统 | 实施入侵检测系统以进行运行时正确性验证
|
| #dashboard_security_considerations | 第 11 章 - 仪表板安全注意事项 | 托管仪表板(Horizon)的 Web 服务器必须配置为使用 SSL,以确保数据已加密
|
| #dashboard_security_groups | 第 11 章 - 仪表板安全注意事项 | 通过仪表板创建和管理安全组。 安全组允许 L3-L4 数据包过滤以进行安全策略,以保护虚拟机
|
TODO:从第 11 章继续在 OSSG 中。