本项目的目的是为各种平台 — Red Hat Enterprise Linux、Fedora、Ubuntu、Debian、SUSE Linux Enterprise Server (SLES)、... — 以及产品 — Firefox、... — 创建安全策略内容。 我们力求让以所有常用格式编写新的安全内容以及维护现有安全内容变得尽可能简单。

“SCAP 内容” 指的是 XCCDF、OVAL 和 SCAP 源数据流格式的文档。这些文档可以由不同的组织以不同的形式呈现, 以满足其安全自动化和技术实施需求。对于一般用途,我们 推荐使用 SCAP 源数据流,因为它们包含评估机器合规性并使其合规所需的全部数据。 数据流包含在我们的发布 ZIP 压缩包中。
“Ansible 内容” 指根据安全配置文件生成的 Ansible playbook。 它们既可以用于检查模式来评估合规性,也可以用于运行模式使机器符合合规要求。 我们在 Ansible Galaxy 以及发布 ZIP 压缩包中发布这些内容。
“Bash 修复文件” 指根据安全配置文件生成的 Bash 脚本。 这些脚本用于在机器上运行,使其符合合规要求。 我们推荐使用其他格式,但也理解在某些部署场景下 bash 是唯一的选择。
“CEL 内容” 指使用通用表达式语言 (CEL) 为 Kubernetes 和 OpenShift 平台 生成的合规内容。CEL 内容以 YAML 文件形式生成,旨在通过 compliance-operator 进行原生 Kubernetes 资源评估,无需 shell 访问节点。该格式用于容器编排系统上的 平台级合规检查。
我们希望多个组织能够高效地开发安全内容。通过利用本项目强大的构建系统, 我们尽可能避免重复。
构建系统将易于编辑的 YAML 规则文件与 OVAL 检查、 Ansible 任务片段、Bash 修复程序和其他文件结合在一起。每一步都提供模板, 以避免样板代码。安全标识符(CCE、NIST ID、STIG 等)出现在我们所有的输出格式中, 但全部源自 YAML 规则文件。
我们理解,根据您组织的需求,您可能需要使用特定的安全内容格式。 我们让您自行选择。
我们采用受 OpenControl 启发的 YAML 规则格式作为输入。编写一次, 即可生成 XCCDF、Ansible 等格式的安全内容。
title: 'Configure The Number of Allowed Simultaneous Requests'
description: |-
The <tt>MaxKeepAliveRequests</tt> directive should be set and configured to
<sub idref="var_max_keepalive_requests" /> or greater by setting the following
in <tt>/etc/httpd/conf/httpd.conf</tt>:
<pre>MaxKeepAliveRequests {{{ xccdf_value("var_max_keepalive_requests") }}}</pre>
rationale: |-
Resource exhaustion can occur when an unlimited number of concurrent requests
are allowed on a web site, facilitating a denial of service attack. Mitigating
this kind of attack will include limiting the number of concurrent HTTP/HTTPS
requests per IP address and may include, where feasible, limiting parameter
values associated with keepalive, (i.e., a parameter used to limit the amount of
time a connection may be inactive).
severity: medium
identifiers:
cce: "80551-5"
我们的安全内容可用于扫描裸机、虚拟机、 虚拟机镜像(qcow2 等)、容器(包括 Docker)以及容器镜像。
我们使用平台检查来检测是否应评估某些规则。 例如:在裸机上,分区检查非常有意义,但在容器上则违背推荐做法。
首选的安装方式是通过您发行版的软件包管理器。 在 Red Hat Enterprise Linux 和 Fedora 上,您可以使用:
yum install scap-security-guide
在 Debian (sid) 上,您可以使用:
apt install ssg-debian # for Debian guides
apt install ssg-debderived # for Debian-based distributions (e.g. Ubuntu) guides
apt install ssg-nondebian # for other distributions guides (RHEL, Fedora, etc.)
apt install ssg-applications # for application-oriented guides (Firefox, JBoss, etc.)
从发布页面下载预构建的 SSG zip 压缩包。 每个 zip 文件都是一个包含现成 SCAP 源数据流的存档。
如果您的发行版未打包 ComplianceAsCode(可能以 scap-security-guide 软件包的形式存在),
或者打包的版本太旧,您需要自行构建内容并通过 make install 安装。
请参阅开发者指南
文档了解更多信息。我们还建议在该发行版的错误跟踪器上提交 issue,以表达您的兴趣。
我们假设您已按照上一节的说明,将 ComplianceAsCode 从当前上游源码系统级安装到了标准位置。
有多种使用 ComplianceAsCode 内容的方式,这里我们只介绍其中几种。
oscap 工具oscap 工具是来自 OpenSCAP 项目的低级命令行界面。它可用于扫描本地机器。
oscap xccdf eval --profile xccdf_org.ssgproject.content_profile_ospp --results-arf arf.xml --report report.html --oval-results /usr/share/xml/scap/ssg/content/ssg-rhel8-ds.xml
评估后,arf.xml 文件将以可复用的结果数据流 (ARF) 格式包含所有结果,
report.html 将包含可在浏览器中打开的人类可读报告。
将配置文件替换为您选择的其它配置文件,您可以使用以下命令显示所有可选配置:
oscap info /usr/share/xml/scap/ssg/content/ssg-rhel8-ds.xml
请访问 OpenSCAP 网站了解更多信息。
SCAP Workbench 是用于 SCAP 评估和定制的图形用户界面。 它适合扫描单台机器,无论是本地还是远程(通过 SSH)。新版本的 SCAP Workbench 集成了 SSG, 应用程序启动时会自动提供该功能。
请访问 SCAP Workbench 网站了解更多信息。
oscap-ssh 工具oscap-ssh 随 OpenSCAP 1.2.3 及更高版本一起提供。它允许通过 SSH 使用类似于 oscap 工具的界面扫描远程机器。
以下命令评估 IP 为 192.168.1.123 的机器,内容存储在本机上。
请注意,远程机器上必须安装 oscap,但不需要安装 SSG 内容。
oscap-ssh [email protected] 22 xccdf eval --profile xccdf_org.ssgproject.content_profile_standard --results-arf arf.xml --report report.html /usr/share/xml/scap/ssg/content/ssg-fedora-ds.xml
要查看可用的 Ansible Playbook 列表,请运行:
ls /usr/share/scap-security-guide/ansible/
这些 Ansible Playbook 由产品可用的 SCAP 配置文件生成。
要在本地机器上应用 playbook,请运行: (这将会更改机器的配置!)
ansible-playbook -i "localhost," -c local /usr/share/scap-security-guide/ansible/rhel9-playbook-ospp.yml
每个 Ansible Playbook 都包含有关如何部署它们的说明。以下是说明片段:
...
# This file was generated by OpenSCAP 1.2.16 using:
# $ oscap xccdf generate fix --profile rht-ccp --fix-type ansible sds.xml
#
# This script is generated from an OpenSCAP profile without preliminary evaluation.
# It attempts to fix every selected rule, even if the system is already compliant.
#
# How to apply this remediation role:
# $ ansible-playbook -i "192.168.1.155," playbook.yml
# $ ansible-playbook -i inventory.ini playbook.yml
...
要查看可用的 Bash 脚本列表,请运行:
# ls /usr/share/scap-security-guide/bash/
...
rhel8-script-hipaa.sh
rhel8-script-ospp.sh
rhel8-script-pci-dss.sh
...
这些 Bash 脚本由产品可用的 SCAP 配置文件生成。 与 Ansible Playbook 类似,每个 Bash 脚本都包含有关如何部署它们的说明。
SSG 邮件列表位于 https://lists.fedorahosted.org/mailman/listinfo/scap-security-guide。
如果您遇到 OpenSCAP 或 SCAP Workbench 的问题,请使用 https://www.redhat.com/mailman/listinfo/open-scap-list
如果您更喜欢与社区进行更互动的联系,可以通过 Gitter 和 IRC 加入我们:
libera.chat 上的 #openscap IRC 频道。该项目始于 2011 年,是美国政府机构与商业操作系统供应商之间的合作项目。 最初的名称为 SCAP Security Guide,通常缩写为 SSG。 最初的范围是创建 SCAP 数据流。随着时间的推移,它发展成为最大的超越 SCAP 的开源内容项目。
在接下来的几年里,不仅引入了政府特定的安全配置文件,还引入了商业配置文件, 例如 PCI-DSS 和 CIS。
后来,行业开始转向不同的安全内容格式,例如 Ansible、Puppet 和 Chef InSpec。
社区通过改进工具做出了回应,并帮助将 SSG 转变为一个更通用的安全内容项目。
这一变化发生在 2017 年和 2018 年。2018 年 9 月,我们决定将项目名称改为
ComplianceAsCode,以避免混淆。
我们设想未来将是不区分格式的。这就是我们选择使用抽象而不是使用 XCCDF 作为输入格式的原因。
本项目欢迎新贡献者。我们一直在努力消除复杂性,让贡献对每个人来说都更容易、更愉快。 这是一个不错的项目,也是一个友好的社区。
贡献的方式有很多种。查看文档了解更多详情: https://complianceascode.readthedocs.io/en/latest/manual/developer/01_introduction.html
查看贡献者的最新列表。