📦 数据库安全审计

v1.0.0

数据库安全审计,支持SQL注入检测、敏感数据扫描、权限审计、登录安全监控、审计日志分析、密码策略检查、配置安全审计。 使用场景: - 用户说"安全检查" -> 执行 审计 - 用户说"检测注入" -> 执行 sql-injection - 用户说"扫描敏感数据" -> 执行 sensitive-data -...

0· 0·0 当前·0 累计
0
安全扫描
VirusTotal
无害
查看报告
OpenClaw
可疑
medium confidence
技能目的与功能描述相符,但 技能.md 假定存在未申明的 命令行工具 工具和数据库凭据/配置,存在信息缺失和潜在滥用风险,需谨慎验证来源及凭据处理方式后再使用。
评估建议
在安装或运行前请确认以下几点: 1) 验证 dbskiter 二进制的来源与版本:此 技能 假定系统上存在 `dbskiter`,但元数据未声明其来源。仅在能核实二进制来自受信任渠道(官方发行页、公司内部制品库)时才运行。 2) 明确凭据提供方式:不要将生产数据库凭据直接粘贴给不明技能。要求技能作者在文档中明确支持哪种认证方式(显式参数、连接字符串、受限只读账户或临时凭证),并优先使用最小权限或只读测试库。 3) 检查数据去向与隐私:询问或审查 dbskiter 是否会把扫描结果发送到外部服务(网络上报、云 API)。特别注意 `--输出-mode=AI` 是否会把原始敏感字段传到第三方 AI 服务。 4) 在受控环境中先测试:先在隔离的、含有非真实数据的测试数据库上运行,确认输出行为和所需权限,再决定是否对生产数据库使用。 5) 要求作者/发布者补充元数据:请求补充需要的二进制声明、安装来源、需要的环境变量或配置路径,以及对凭据和网络通信的明确说明。若作者无法提供可信来源或明确说明,建议不要在敏感环境中启用此技能。
详细分析 ▾
用途与能力
技能名和说明描述的是数据库安全审计,技能.md 的命令调用了名为 `dbskiter` 的 命令行工具,这与技能目的相符;但元数据没有声明需要该二进制或其来源,也未说明如何提供数据库连接信息(主机/端口/用户/密码/连接字符串)。要求运行外部 命令行工具 且未声明是一个不一致点。
指令范围
运行步骤直接教代理执行 `dbskiter --输出-mode=AI --database=<name> ...` 等命令,隐含会访问目标数据库并读取敏感数据或审计日志,但 技能.md 没有说明凭据来源、是否会把扫描结果发到远端、以及在何处存储中间数据。特别是 `--输出-mode=AI` 提示与 AI 的交互格式,但不清楚是否会把敏感内容传出,这使得执行范围与数据流不明确。
安装机制
这是一个 instruction-only 的 技能(没有 安装 spec、没有代码文件),因此不会在安装时写入或下载二进制,安装面向风险较低。但运行时仍依赖系统中已有的 `dbskiter` 可执行文件。
凭证需求
元数据声明没有需要的环境变量或配置路径,但命令显然需要数据库连接凭据(或配置文件)。这种不声明凭据需求的情况会导致代理采用不安全的默认行为(例如在环境变量、已登录会话、或系统配置文件中查找凭据),或需要用户在运行时以不安全方式提供密码。缺乏对凭据输入方式的说明是不成比例且令人担忧的。
持久化与权限
技能没有设置 always:true,也没有安装脚本或写入磁盘的指示;默认的自治调用权限保持不变。技能本身不要求在系统中长期驻留或修改其他技能配置。
安全有层次,运行前请审查代码。

运行时依赖

无特殊依赖

安装命令

点击复制
官方npx clawhub@latest install dbskiter-db-security
镜像加速npx clawhub@latest install dbskiter-db-security --registry https://cn.longxiaskill.com

技能文档

数据库安全 技能 何时使用

当用户提到以下关键词时,使用此技能:

用户说法 执行命令 说明 "安全检查" dbskiter --输出-mode=AI --database= security 审计 完整安全审计 "有注入风险吗" dbskiter --输出-mode=AI --database= security sql-injection "" SQL注入检测 "有敏感数据吗" dbskiter --输出-mode=AI --database= security sensitive-data 敏感数据扫描 "安全评分多少" dbskiter --输出-mode=AI --database= security score 安全评分 "检查权限" dbskiter --输出-mode=AI --database= security 权限s 权限审计 "登录安全" dbskiter --输出-mode=AI --database= security 记录in-security 登录安全监控 "审计日志" dbskiter --输出-mode=AI --database= security 审计-记录 审计日志分析 "高危操作" dbskiter --输出-mode=AI --database= security high-risk 高危操作检测 "密码策略" dbskiter --输出-mode=AI --database= security password-policy 密码策略检查 "弱密码" dbskiter --输出-mode=AI --database= security weak-passwords 弱密码检查 "配置安全" dbskiter --输出-mode=AI --database= security config 配置安全审计 核心命令(11个)

  • 完整安全审计
dbskiter --输出-mode=AI --database=<数据库名> security 审计

输出:安全评分 + 所有风险项 + 修复建议

  • SQL注入检测
dbskiter --输出-mode=AI --database=<数据库名> security sql-injection "SELECT * FROM users WHERE id = %s" --params='{"id": "1 OR 1=1"}'

输出:风险评分、注入类型、修复建议

  • 敏感数据扫描
dbskiter --输出-mode=AI --database=<数据库名> security sensitive-data

默认行为:扫描所有表,识别身份证、手机号、邮箱等

可选参数:

--tables=users,orders:只扫描指定表 --sample-size=100:每表采样100行(默认100)

  • 安全评分
dbskiter --输出-mode=AI --database=<数据库名> security score

输出:总体评分、各维度得分、扣分项

  • 权限审计
dbskiter --输出-mode=AI --database=<数据库名> security 权限s

输出:用户权限列表、过度授权警告

  • 登录安全监控
dbskiter --输出-mode=AI --database=<数据库名> security 记录in-security --hours=24

输出:登录失败统计、异常登录IP、暴力破解检测

可选参数:

--hours=24:检查最近多少小时(默认24)

  • 审计日志分析
dbskiter --输出-mode=AI --database=<数据库名> security 审计-记录 --hours=24 --users=admin,root

输出:用户操作记录、DDL变更、权限变更

可选参数:

--hours=24:分析最近多少小时(默认24) --users=admin,root:指定用户(逗号分隔)

  • 高危操作检测
dbskiter --输出-mode=AI --database=<数据库名> security high-risk --hours=24

输出:DROP/删除/T运行CATE等高危操作记录

可选参数:

--hours=24:检查最近多少小时(默认24)

  • 密码策略检查
dbskiter --输出-mode=AI --database=<数据库名> security password-policy

输出:当前密码策略、合规性检查、改进建议

  • 弱密码检查
dbskiter --输出-mode=AI --database=<数据库名> security weak-passwords

输出:弱密码用户列表、空密码用户、风险等级

  • 配置安全审计
dbskiter --输出-mode=AI --database=<数据库名> security config

输出:配置安全问题、推荐值、风险等级

AI决策流程 场景1:用户说"做安全检查" 步骤1:执行 dbskiter --输出-mode=AI --database= security 审计 步骤2:解读AI返回的结构化数据(raw_指标/rule_flags/上下文/reference_values/AI_hints) 步骤3:按严重程度列出需要修复的问题 步骤4:提供修复命令或建议

场景2:用户说"这个SQL有注入风险吗" 步骤1:执行 dbskiter --输出-mode=AI --database= security sql-injection "" --params='...' 步骤2:解读AI返回的rule_flags和raw_指标中的风险信息 步骤3:如果风险评分>70,详细说明风险点 步骤4:提供安全的写法(参数化查询)

场景3:用户说"有敏感数据暴露吗" 步骤1:执行 dbskiter --输出-mode=AI --database= security sensitive-data 步骤2:解读AI返回的raw_指标中的敏感字段列表 步骤3:列出发现的敏感字段 步骤4:建议加密或脱敏方案

输出解读 安全审计输出 { "summary": "安全评分72分,发现5个风险项", "score": 72, "level": "C", "risk_count": 5, "risks": [ { "severity": "CRITICAL", "category": "sensitive_data", "message": "users.phone包含手机号,未加密", "suggestion": "对手机号字段加密存储" }, { "severity": "HIGH", "category": "权限s", "message": "用户应用_user拥有SUPER权限", "suggestion": "移除SUPER权限,只授予必要权限" } ] }

AI应该关注:

score:安全评分(<80需要关注) level:安全等级(A/B/C/D) risks中severity为"CRITICAL"或"HIGH"的项 SQL注入检测输出 { "summary": "风险评分85分,检测到永真条件注入", "risk_score": 85, "level": "HIGH", "injection_types": ["tauto记录y"], "suggestions": [ "使用参数化查询替代字符串拼接", "对用户输入进行严格验证" ] }

AI应该关注:

risk_score:风险评分(>70为高风险) injection_types:注入类型 suggestions:修复建议

数据来源ClawHub ↗ · 中文优化:龙虾技能库