主机安全加固

日期:

2015-09-10 00:00

标签:

安全

本规范的目标是将加固标准应用于 openstack-ansible,以便用户可以构建满足各种合规性计划要求的环境,例如支付卡行业数据安全标准 (PCI-DSS)。这些更改不会使特定环境符合 PCI 合规性,但它们应该使环境符合 PCI-DSS 的要求 2.2。该要求规定部署必须遵循业界认可的加固标准。

蓝图 - OSAD 主机的安全加固

问题描述

诸如 PCI-DSS 之类的合规性计划通常要求对所有部署使用业界认可的加固标准。目前,使用 openstack-ansible 在 Ubuntu 14.04 上进行的部署符合许多,但并非全部,PCI-DSS 批准的安全加固标准。

PCI-DSS 3.1 要求 2.2 规定处理信用卡数据的部署必须使用业界认可的加固标准进行保护。该要求的测试如下

2.2 为所有系统组件制定配置标准。确保这些标准解决了所有已知的安全漏洞,并且与业界认可的系统加固标准一致。

美国国防信息系统局 (DISA) 发布了一系列名为安全技术实施指南 (STIGs)的安全加固指南。它们内容全面,并提供了检查安全系统是否符合标准的机制。此外,它们是公共领域的。

提议的变更

拟议的更改包括

  1. 在一个新的仓库中创建一个新的角色来保存安全任务

    • 有关该角色的具体信息,请参阅下面的工作项

  2. 编写有关所应用加固标准的文档

    • 此标准是否已默认部署在 Ubuntu 14.04 或由 OSAD 部署?

    • 如果应用了标准,部署者从中获得了什么?

    • 如果跳过某个标准,为什么跳过它,部署者会失去什么?

  3. 提交实际应用这些加固标准的补丁

    • 首先为每个补丁创建一个 bug,其中描述将要更改的内容以及原因

    • 确定补丁是属于 openstack-ansible 还是属于可以在部署期间拉入 openstack-ansible 的新的安全加固角色

  4. 创建一个自动化的方法来测试安全更改是否已应用,并且它们不会对 openstack-ansible 部署产生负面影响

    • 这可以通过 OpenSCAP 或通过 CIS 的基于 Java 的检查器来完成

    • 需要通过 gate 检查作业进行检查

  5. 使部署者能够轻松地将安全加固角色导入 openstack-ansible

    • 如果部署者选择,应该可以轻松地拉入 openstack-ansible 部署

以下是 RHEL 6 STIG 推荐的几个安全改进示例,这些改进适用于 Ubuntu

  • V-38497:系统不应配置具有空密码或 null 密码的帐户。

  • V-38476:必须安装供应商提供的加密证书,以验证系统软件的完整性。

  • V-38607:SSH 守护程序必须配置为仅使用 SSHv2 协议。

  • V-38614:SSH 守护程序不应允许使用空密码进行身份验证。

  • V-38673:操作系统必须确保检测到的未经授权的安全相关配置更改被跟踪。

  • V-38632:操作系统必须生成包含足够信息以确定发生事件类型的审计记录。

备选方案

无已知替代方案。

Playbook/Role 影响

根据更改的性质以及对部署者的实用性,更改可以直接应用于 openstack-ansible 中的现有角色,也可以应用于在 openstack-ansible 部署期间可以选择性拉入的安全加固角色

任何可能影响生产部署的性能、稳定性和/或功能的更改都将默认禁用,并进行详细记录。部署者可以根据自己的判断决定是否启用该安全加固标准。

升级影响

如果安全功能是通过功能标志添加的并且默认禁用,那么如果甚至根本没有注意到,升级的影响将非常小。应单独检查所有配置更改,以确定它们是否会对升级产生影响。

安全影响

本规范的整个目标是在不增加运营负担的情况下产生积极的安全影响。

性能影响

某些安全更改可能会影响正在运行的 OpenStack 系统的性能。如上文“升级影响”中所述,需要单独检查这些配置更改,以确定安全性和性能影响之间的平衡。

最终用户影响

最终用户不应注意到大多数安全更改。他们仍然会像今天一样与 API 端点和虚拟机进行交互。某些安全改进可能会影响最终用户,但部署者将完全控制如何应用这些改进。

部署者影响

部署者有可能构建默认情况下更安全的 OpenStack 系统。但是,如果这些安全功能默认禁用,我们需要完善的文档来告诉用户如何启用这些功能以及启用这些功能可能产生的影响。

部署者需要在他们的 openstack-ansible 部署中显式包含安全加固角色。

开发人员影响

如果开发人员希望使用额外的安全增强功能来测试 openstack-ansible,则需要在他们的部署中包含安全加固角色。

依赖项

本规范没有依赖项。

实现

负责人

谁在编写代码?或者这是一个蓝图,您正在将其抛出以查看谁会接受它?

如果有多个人正在进行实现,请指定主要作者和联系人。

主要负责人

Major Hayden (LP: rackerhacker, IRC: mhayden)

其他贡献者

Cody Bunch (LP: cody-bunch, IRC: e-vad)

工作项

安全加固角色应位于名为 openstack-ansible-security 的单独仓库中。一旦该角色具有内容并经过对 openstack-ansible 的充分测试,就可以将其作为 openstack-ansible 中的可选依赖项添加。可以将新角色的文档添加到现有的 openstack-ansible 文档中,以便 openstack-ansible 用户更容易参考它。

其他工作项在上面的“拟议更改”部分中以编号列表的形式给出。每个配置更改都应附带有关该更改的文档。

测试

可以使用常规的 gate 检查来检查这些更改。此外,可以单独测试每个单独的提交。

文档影响

文档是本规范的关键部分,也是流程的第一步。让文档团队参与一些文档更改将会有所帮助,以确保它对部署者来说有意义。

参考资料

邮件列表主题

IRC 讨论

DISA STIGs