mcpField
A
auditing-cis-benchmark

auditing-cis-benchmark

github.com/cockroachlabs安全2378 次安装14 周前更新
代码仓库

关于 auditing-cis-benchmark

这项 Agent 技能按照 CIS CockroachDB Benchmark v1.0.0 Level 1 配置文件,对自托管 CockroachDB 部署进行只读审计。它提供快速扫描和完整审计,覆盖六个安全领域的 30 项控制,并为运维及合规团队生成结果。

主要功能

  1. 01评估 30 项 CIS 控制
  2. 02快速扫描与完整审计模式
  3. 03输出通过、失败及人工复核结果
  4. 04映射 CIS Controls v7/v8
  5. 05只读检查集群与主机

适用场景

  1. 01为 CIS 合规评估准备证据
  2. 02检查自托管 CockroachDB 集群的安全设置
  3. 03执行定期安全检查或 CI/CD 门禁
  4. 04将数据库控制映射到 CIS Controls 框架

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/cockroachlabs/cockroachdb-skills --skill auditing-cis-benchmark

安装后在 Claude Code 中输入/auditing-cis-benchmark确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
cis-controls.md
sample-report.md
sql-queries.md

详细介绍

审计 CIS 基准合规性

根据 CIS CockroachDB Benchmark v1.0.0 Level 1 配置文件评估可自托管的 CockroachDB 集群。评估涵盖六个领域的 30 项控制:安装与补丁、系统强化与拓扑、日志记录与监控、用户访问与授权、数据保护,以及 CockroachDB 设置。生成结构化报告,列出 PASS、FAIL 和 MANUAL REVIEW 结果,并包含 CIS Controls v7/v8 映射及其实施组覆盖情况。

范围: 仅适用于可自托管的 CockroachDB 部署。对于 CockroachDB Cloud 集群,请改用 auditing-cloud-cluster-security;Cloud 集群具有托管控制,可取代许多 CIS 自托管检查项。

权威来源: 此技能依据 https://github.com/cockroachlabs/CIS-benchmarks-crdb 中定义的基准实现。

只读审计: 所有操作均为只读。评估期间不会修改集群状态、OS 配置或文件。

何时使用此技能

  • 准备 CIS 基准合规性评估或外部审计
  • 强化新的可自托管 CockroachDB 生产部署
  • 根据行业标准基准验证安全状况
  • 将定期合规检查纳入安全运营
  • 将 CockroachDB 安全控制映射到 CIS Controls 框架
  • 响应审计人员对 CIS 基准证据的要求

先决条件

访问要求:

要求用途
通过 SSH/命令行访问集群节点OS 级检查(systemd、交换空间、THP、文件描述符、证书)
SQL 访问权限(admin 或 VIEWACTIVITY)集群设置、用户/角色审计、日志配置
访问 systemd 服务文件验证服务配置
访问证书目录检查证书权限和有效性

工具:

工具必需用途
cockroach CLI是版本检查、证书检查、SQL 访问
systemctl是服务状态、NTP 验证
openssl建议证书验证和过期检查
标准 Unix 工具是ps、ls、cat、grep、swapon、ulimit

审计深度

此技能支持两种审计深度。请根据需要选择:

深度适用场景执行内容
快速扫描定期检查、CI/CD 门禁、快速分流对每项控制运行单行 Shell/SQL 命令,并返回通过/失败结果
完整审计合规证据、外部审计人员请求、全面评估按照官方 CIS 基准,对每项控制执行多步骤流程

在步骤 0 中,确认用户需要哪种深度。两种深度可以结合使用——先运行快速扫描以找出失败项,再对这些失败项运行完整审计以收集证据。

CIS 基准结构

CIS CockroachDB Benchmark v1.0.0 Level 1 配置文件包含 30 项控制,分为六个部分:

部分领域控制项自动化手动
1安装与补丁1.1–1.7(7 项)34
2系统强化与拓扑2.1–2.7(7 项)52
3日志记录与监控3.1–3.4(4 项)13
4用户访问与授权4.1–4.4(4 项)04
5数据保护5.1–5.3(3 项)03
6CockroachDB 设置6.1–6.5(5 项)14

完整控制定义、快速扫描命令和完整审计流程,请参阅 CIS 控制参考。

评估工作流

步骤 0:确认审计范围

开始前,请与用户确认:

  1. 审计深度 — 快速扫描、完整审计,或两者都进行
  2. 目标节点 — 要审计哪些节点(建议审计所有节点)
  3. CockroachDB 服务账户 — 运行 CockroachDB 的用户名(默认值:cockroach)
  4. 证书目录 — TLS 证书路径(默认值:/var/lib/cockroach/certs)
  5. 数据目录 — CockroachDB 数据存储路径(默认值:/var/lib/cockroach)
  6. 日志目录 — 日志路径(默认值:/var/lib/cockroach/logs 或 <store>/logs)
  7. Enterprise 许可证 — 是否可使用 Enterprise 功能(EAR)

记录这些值;它们将作为下方检查的参数。

步骤 1:安装与补丁(控制项 1.1–1.7)

这些控制项用于验证二进制文件完整性、systemd 服务管理、TLS 初始化、版本一致性、升级流程以及静态加密。

关键检查:

  • 1.1:二进制文件从官方来源下载,且已验证 SHA-256(手动)
  • 1.2:systemctl is-enabled cockroach.service → enabled(自动)
  • 1.3:未使用 --insecure 标志;证书目录存在,且包含有效的 CA 签名证书(自动)
  • 1.4:ps aux | grep -c insecure → 0(自动)
  • 1.5:所有节点运行相同版本 — 通过 cockroach version 快速扫描;完整审计则检查 DB Console 的节点列表和 crdb_internal.gossip_nodes(自动)
  • 1.6:滚动升级运行手册已编写并经过测试(手动)
  • 1.7:已配置 --enterprise-encryption,并使用外部 KMS;密钥不存储在磁盘上(手动)
步骤 2:系统加固与拓扑(控制项 2.1–2.7)

这些控制项用于验证操作系统级配置:时间同步、进程隔离、网络分段、内存设置、文件描述符以及权限限制。

关键检查(在每个节点上运行):

  • 2.1:NTP/chrony 已启用,偏移量低于 --max-offset(自动)
  • 2.2:每台主机仅运行一个 CockroachDB 进程(自动)
  • 2.3:使用专用子网,并限制对端口 26257/8080 的入站访问(手动)
  • 2.4:swapon --show | wc -l → 0(自动)
  • 2.5:THP 设置为 madvise 或 never(自动)
  • 2.6:cockroach 用户的文件描述符限制 ≥ 15,000(自动)
  • 2.7:cockroach 用户没有 sudo 权限(自动)
步骤 3:日志记录与监控(控制项 3.1–3.4)

这些控制项用于验证日志配置、轮转、身份验证事件捕获以及监控和告警。

关键检查:

  • 3.1:日志目录存在,所有者为 cockroach,权限为 700(手动)
  • 3.2:已通过 CockroachDB 配置或 logrotate 配置日志轮转(手动)
  • 3.3:server.auth_log.sql_connections.enabled 和 server.auth_log.sql_sessions.enabled 均为 true(自动)
  • 3.4:监控系统正在采集指标,且已配置告警(手动)
步骤 4:用户访问与授权(控制项 4.1–4.4)

这些控制项用于验证基于主机的身份验证、密码安全、root 用户加固以及集中式身份管理。

⚠️ 控制项 4.2(仅限完整审计): 检查已存储的密码哈希需要设置 SET allow_unsafe_internals = true。这是一项仅用于审计的紧急操作 — 仅限授权操作人员在专用管理员会话中运行,并立即通过 SET allow_unsafe_internals = false 重置。不要将此操作用于应用程序工作负载。

关键检查(全部使用 SQL):

  • 4.1:HBA 配置了特定 IP 范围和强身份验证方法,并拒绝兜底规则(手动)
  • 4.2:password_encryption = scram-sha-256,已存储的哈希采用 SCRAM 格式(手动)
  • 4.3:通过 HBA 和证书方法将 Root 限制为特定主机,并审计其活动(手动)
  • 4.4:已启用 OIDC/LDAP,配置了身份映射,并将本地账户数量降至最低(手动)
第 5 步:数据保护(控制项 5.1–5.3)

这些控制项用于验证备份加密、恢复测试和多区域数据本地化。

关键检查:

  • 5.1:备份使用 kms 或 encryption_passphrase,或强制启用存储层加密(手动)
  • 5.2:每季度测试恢复流程并记录结果(手动)
  • 5.3:多区域表使用 REGIONAL BY ROW 或区域约束来满足数据驻留要求(手动)
第 6 步:CockroachDB 设置(控制项 6.1–6.5)

这些控制项用于验证证书安全、设置脱敏、审计日志记录、会话超时和 OCSP。

关键检查:

  • 6.1:私钥权限为 0600,证书有效期不少于 90 天(自动)
  • 6.2:调试捆绑包使用 --redact,日志中不包含机密信息(手动)
  • 6.3:sql.log.user_audit 非空,sql.log.admin_audit.enabled = true,已配置安全通道(手动)
  • 6.4:已设置 sql.defaults.idle_in_session_timeout(例如 15m)(手动)
  • 6.5:security.ocsp.mode = strict 或 lax(手动)

报告格式

按照 示例报告 中的结构生成 Markdown 报告。

状态标记:

  • [PASS] — 控制项已满足
  • [FAIL] — 控制项未满足,需要修正
  • [MANUAL] — 需要人工审核;自动检查无法判定是否合规
  • [N/A] — 控制项不适用(例如,没有 Enterprise 许可证时的 EAR)

与其他安全技能的关系

CIS 章节相关修正技能
1 安装管理 TLS 证书,启用 CMEK 加密
3 日志记录配置审计日志记录,配置日志导出
4 用户访问强化用户权限,实施密码策略,配置 SSO 和 SCIM
5 数据保护准备合规文档
6 设置管理 TLS 证书,配置审计日志记录

如需更全面地评估安全状况(涵盖 Cloud 和可自托管部署),请使用 审计 Cloud 集群安全性。

安全注意事项

  • 所有操作均为只读。 不会修改集群设置、OS 配置或文件。
  • Shell 命令使用只读工具: ps、ls、cat、grep、systemctl is-enabled/is-active、swapon --show、ulimit、openssl x509、openssl verify。
  • SQL 查询仅使用 SHOW 和 SELECT。 不执行 DDL 或 DML 语句。
  • 一项例外(4.2): 密码哈希检查的完整审计流程需要执行 SET allow_unsafe_internals = true — 这是一项只读的紧急操作,完成后必须立即重置(SET allow_unsafe_internals = false)。只有经过授权的操作人员才能执行此步骤。
  • 不会记录机密信息。 报告中不包含证书私钥和密码。
  • 权限检查: 某些 SQL 查询需要 admin 或 VIEWACTIVITY 权限。报告会注明权限方面的缺失。

参考资料

技能参考:

权威来源:

相关技能:

CockroachDB 官方文档:

评论

支持 Markdown