简介¶
在上篇文章中,我们使用 OpenSCAP 设置了一个已应用 DISA stig 的新 Rocky Linux 8 系统。现在我们将介绍如何使用这些相同的工具来测试系统,并查看我们可以使用 oscap 命令及其 UI 对应工具 SCAP Workbench 生成的报告类型。
Rocky Linux 8(以及 9!)包含一套 SCAP 内容,用于测试和修复各种标准的合规性。如果您在第一部分中构建了一个已 STIG 加固的系统,您已经见证了这一点。Anaconda 安装程序利用这些内容修改 Rocky 8 的配置,以实施各种控制、安装/删除软件包以及更改操作系统级挂载点的工作方式。
随着时间的推移,这些设置可能会发生变化,您需要密切关注。此外,我经常使用这些报告来证明某个特定控制已正确实施。无论哪种方式,这都已集成到 Rocky 中。我们将从一些基础知识开始。
列出安全配置文件¶
要列出可用的安全配置文件,我们需要使用 `openscap-scanner` 软件包提供的 `oscap info` 命令。如果您一直按照第一部分的步骤进行操作,此命令应该已经安装在您的系统上。要获取可用的安全配置文件,
oscap info /usr/share/xml/scap/ssg/content/ssg-rl8-ds.xml
注意
Rocky Linux 8 的内容将在文件名中使用标签“rl8”。在 Rocky 9 中,它将是“rl9”。
如果一切顺利,您应该会看到一个类似于此的屏幕。
DISA 是 Rocky Linux SCAP 定义支持的众多安全配置文件之一。我们还有以下配置文件的配置文件:
审核 DISA STIG 合规性¶
这里有两种类型可供选择:
- stig - 无 GUI
- stig_gui - 带 GUI
运行扫描并为 DISA STIG 创建 HTML 报告
sudo oscap xccdf eval --report unit-test-disa-scan.html --profile stig /usr/share/xml/scap/ssg/content/ssg-rl8-ds.xml
这将生成一个类似这样的报告。
并会输出一个 HTML 报告。
生成修复 Bash 脚本¶
接下来,我们将生成一个扫描,然后使用扫描结果来生成一个 Bash 脚本,以根据 DISA stig 配置文件修复系统。我不推荐使用自动修复,您应该始终在实际运行它们之前审查所做的更改。
1) 在系统上生成扫描
```bash
sudo oscap xccdf eval --results disa-stig-scan.xml --profile stig /usr/share/xml/scap/ssg/content/ssg-rl8-ds.xml
```
2) 使用此扫描输出生成脚本
```bash
sudo oscap xccdf generate fix --output draft-disa-remediate.sh --profile stig disa-stig-scan.xml
```
生成的脚本将包含它将对系统进行的所有更改。
警告
在运行之前请仔细审查!这将对系统进行重大更改。
生成修复 Ansible Playbook¶
您还可以以 Ansible Playbook 格式生成修复操作。让我们重复上面的部分,但这次使用 Ansible 输出。
1) 在系统上生成扫描
```bash
sudo oscap xccdf eval --results disa-stig-scan.xml --profile stig /usr/share/xml/scap/ssg/content/ssg-rl8-ds.xml
```
2) 使用此扫描输出生成脚本
```bash
sudo oscap xccdf generate fix --fix-type ansible --output draft-disa-remediate.yml --profile stig disa-stig-scan.xml
```
警告
再次强调,在运行之前请仔细审查!您是否从中发现了一些规律?所有这些过程的验证步骤都非常重要!
关于作者¶
Scott Shinn 是 Atomicorp 的首席技术官,也是 Rocky Linux 安全团队的成员。自 1995 年以来,他一直参与白宫、国防部和情报界的联邦信息系统工作。其中一部分工作是创建 STIG 并强制要求使用它们,对此我深表歉意。
作者:Scott Shinn
贡献者:Steven Spencer, Ganna Zhyrnova