SuperAPI AI 工具集

altinity-expert-clickhouse-security

安全与审计

查看项目

更新于 10-15 16:49

技能介绍

用途:以资深 ClickHouse 安全审查者身份,对实例做只读安全审计,覆盖身份认证、RBAC、授权、行策略、设置配置文件、配额、命名集合、表函数、表引擎、网络暴露、审计日志、密钥与集群分布式安全等。若连接模式、集群与时间窗口未确定,需先运行 altinity-expert-clickhouse-connection。

主要能力:提供 checks.sql 查询包,含 20 项检查,如服务器身份、SHOW ACCESS 全量导出、用户清单(认证方式与主机 ACL)、角色与角色图、各主体授权态势、管理员等价权限持有者、安全敏感权限、列级授权、行策略、设置配置文件与元素、配额、命名集合名称、用户定义与可执行函数、安全端口、集群拓扑与 distributed 用户、外部引擎表与 DEFINER 视图、日志与认证审计基线。本地节点检查在 checks.sql,集群范围检查见 references/15-cluster-distributed-security.md。references/ 含 20 个深度文件,按发现指向加载。

使用方式:从技能目录读取查询包,逐条执行语句,不整文件运行;语句以 ; 结尾并以 -- @check <id> <title> 开头,保留 id。遵守 -- @requires:表缺失、需要 Keeper 而服务器无 Keeper/ZooKeeper、或版本条件不满足时跳过,并列出跳过 id 与原因。{cluster} 宏存在时保持原样,否则按连接技能重写规则处理;其他 {placeholder} 需替换真实值或跳过。出错时记录 check id 与错误首行后继续;仅对 UNKNOWN_IDENTIFIER 运行 DESCRIBE TABLE system.<table> 并去掉缺失列。severity 列即该行结论,直接复制,不重新评级。

适用场景:需要评估 ClickHouse 安全配置、排查过度授权、检查审计日志缺失、识别密钥与凭据暴露风险、验证集群与 Keeper 安全时。

限制:只读,禁止破坏性 SQL 与在线密码猜测;不得打印密钥、密码哈希、盐、私钥、访问密钥、令牌或恢复出的密码候选。命名集合值被服务器掩码,只列名称不选值。列级 SELECT 授权可被视图、其他表行策略和表函数绕过,仅在绕过路径关闭时视为有效控制。VALID UNTIL 在当前版本不是 system.users 列,应从 SHOW CREATE USER 或 SHOW ACCESS 导出读取。session_log_exists = 0 表示登录与认证审计关闭。授权看似过度可能由真实工作负载解释,需查 system.query_log 确认是否实际使用。版本影响来源、引擎与 definer 行为,断言前查 references/14-version-specific-security-checks.md。报告需含标题、严重性、置信度、证据摘要、影响、不可验证项,再给确认或修复建议;修复仅在要求时给出,授权变更采用最小权限、基于角色的方式,避免 . 宽泛授权。输出需按 references/01-scope-and-safety.md 的脱敏规则处理。