通过自定义合规性内容,可以定义自己的安全标准,用于补充 Automation for Secure Hosts Compliance 中内置的安全基准和检查库。

自定义内容有助于增强 Automation for Secure Hosts Compliance 策略以满足您的内部要求。

Automation for Secure Hosts Compliance 包括自定义内容 Software Development Kit (SDK),可以用于创建、测试和构建自己的自定义安全内容。可以导入自定义安全内容,以便与 Automation for Secure Hosts Compliance 内置安全库一起用于评估和修复。通过导入自定义内容功能,还可以使用自己选择的版本控制系统对内容进行版本控制,例如 Git。

要使用自定义检查,必须先初始化 Automation for Secure Hosts Compliance 自定义内容 SDK。SDK 包含示例文件,可以对其修改以创建自己的自定义检查以及基准。SDK 还包含基于 Docker 的测试环境,可以在其中测试新内容。

创建并测试自定义内容后,可以构建内容文件,并导入到 Automation for Secure Hosts Compliance 以开始评估和修复。自定义检查包括用户图标(自定义检查用户图标),区别于 Automation Config 检查(内置检查防护图标)Automation for Secure Hosts Compliance 可跟踪策略与自定义内容之间的依赖关系,并提供删除内容时可能会中断的依赖关系列表。

前提条件

过程

  1. 从命令行导航到包含该文件的目录,然后运行以下命令:
    操作系统 命令
    Mac OS 或 Linux ./secops_sdk init
    Windows secops_sdk.exe init
    未显示任何输出,这是预期的结果。您的目录包含以下文件夹和文件:
    • 基准 - 包含自定义基准元文件 (.meta)
    • Salt/locke/custom - 包含自定义检查状态文件 (.sls) 和元文件 (.meta)
    • sample_tests - 包含使用 Docker 进行测试的示例文件
    • README.md - 提供有关 SDK 的更多详细信息
  2. (可选)将更改提交到版本控制的存储库。
  3. 要创建自定义检查,请在自定义内容 SDK 中导航到 salt/locke/custom。要创建自定义基准,请跳至步骤 8。
    注: 所有自定义检查都必须同时在状态文件 (.sls) 和相应的元文件 (.meta) 中进行配置。
  4. 为示例状态文件 (.sls) 和相应的元文件 (.meta) 创建副本,并使用所需的自定义名称重命名这两个文件。将这两个文件一起保存在 salt/locke/custom 的任何子目录中。
    这两个文件必须位于相同目录中并以相同的名称开头,例如: my_first_check.metamy_first_check.sls
  5. 编辑元文件的内容,以根据需要自定义检查。
    注: 检查元文件包含对不同基准的引用。创建自定义内容时,请确保在检查元文件中包含所有关联的基准。
  6. 编辑状态文件的内容。
  7. 确保两个文件都保存在同一目录中。
  8. 要创建自定义基准,请在自定义内容 SDK 中导航到 benchmarks 目录。此目录包含示例基准元文件 (.meta)。
  9. 创建 Sample_benchmark.meta 的副本,并使用所需的自定义名称对其进行重命名。
  10. 编辑元文件的内容,以根据需要自定义基准。

结果

将创建自定义检查和基准。如果需要,您可以导航到 合规性 > 检查合规性 > 基准,单击自定义内容旁边的菜单图标 ,然后单击 删除,以删除自定义检查或基准。

下一步做什么

创建自定义内容后,您可以通过打开命令行,导航到自定义内容 SDK sample_tests 目录并运行以下命令来对其进行测试:

命令 结果
1. ./build.sh 使用 Salt 构建 CentOS7 docker 映像以进行测试。
2. ./up.sh 启动测试容器
3. ./test.sh salt-call --local state.apply locke.custom.mounts.my_first_check test=True 对在 salt/locke/custom 目录中创建的检查运行示例测试。可以像执行正常 Salt 状态一样启动自定义检查。有关 Salt 状态的详细信息,请参见如何使用 Salt 状态
4. ./down.sh 测试完成后,运行以下命令关闭测试容器。

测试自定义内容后,您可以构建自定义内容库