关于 auditing-cis-benchmark
这项 Agent 技能按照 CIS CockroachDB Benchmark v1.0.0 Level 1 配置文件,对自托管 CockroachDB 部署进行只读审计。它提供快速扫描和完整审计,覆盖六个安全领域的 30 项控制,并为运维及合规团队生成结果。
主要功能
- 01评估 30 项 CIS 控制
- 02快速扫描与完整审计模式
- 03输出通过、失败及人工复核结果
- 04映射 CIS Controls v7/v8
- 05只读检查集群与主机
适用场景
- 01为 CIS 合规评估准备证据
- 02检查自托管 CockroachDB 集群的安全设置
- 03执行定期安全检查或 CI/CD 门禁
- 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.mdsample-report.mdsql-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 项) | 3 | 4 |
| 2 | 系统强化与拓扑 | 2.1–2.7(7 项) | 5 | 2 |
| 3 | 日志记录与监控 | 3.1–3.4(4 项) | 1 | 3 |
| 4 | 用户访问与授权 | 4.1–4.4(4 项) | 0 | 4 |
| 5 | 数据保护 | 5.1–5.3(3 项) | 0 | 3 |
| 6 | CockroachDB 设置 | 6.1–6.5(5 项) | 1 | 4 |
完整控制定义、快速扫描命令和完整审计流程,请参阅 CIS 控制参考。
评估工作流
步骤 0:确认审计范围
开始前,请与用户确认:
- 审计深度 — 快速扫描、完整审计,或两者都进行
- 目标节点 — 要审计哪些节点(建议审计所有节点)
- CockroachDB 服务账户 — 运行 CockroachDB 的用户名(默认值:
cockroach) - 证书目录 — TLS 证书路径(默认值:
/var/lib/cockroach/certs) - 数据目录 — CockroachDB 数据存储路径(默认值:
/var/lib/cockroach) - 日志目录 — 日志路径(默认值:
/var/lib/cockroach/logs或<store>/logs) - 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 权限。报告会注明权限方面的缺失。
参考资料
技能参考:
- CIS 控制项参考 — 全部 30 项控制,包含快速扫描命令和完整审计流程
- CIS 审计 SQL 查询 — 评估中使用的全部 SQL 查询
- 审计报告示例 — 包含发现项的示例报告
权威来源:
相关技能:
- 审计云集群安全性 — 更全面的安全态势评估
- 配置审计日志记录 — SQL 审计日志设置
- 强化用户权限 — 收紧 RBAC
- 强制执行密码策略 — 密码策略强制执行
- 管理 TLS 证书 — TLS 证书管理
- 启用 CMEK 加密 — 静态数据加密
- 配置 SSO 和 SCIM — SSO 和 SCIM 配置
CockroachDB 官方文档: