名称: security-check
描述: Clawdbot 技能安全审计与检查技能。当您需要在安装前检查技能是否存在安全漏洞、对已安装技能进行定期安全审计、验证技能描述与实际行为是否匹配、扫描提示注入尝试、检查硬编码密钥或凭据、验证技能代码或文档中无恶意意图、审查文件访问模式以发现潜在的配置或密钥泄露,或审计依赖项是否存在已知漏洞时,请使用此技能。该技能提供自动化扫描工具和手动安全检查清单,用于全面的技能安全评估。
许可证: 完整条款见 LICENSE.txt
为 Clawdbot 技能提供全面的安全审计,以检测恶意意图、提示注入、密钥泄露和行为失配。
从 ClawdHub 或任何来源安装新技能前:
bash
python3 scripts/scan_skill.py /path/to/skill每日运行以确保已安装技能保持安全:
# 扫描技能目录中的所有技能
python3 scripts/scan_skill.py /path/to/skills/skill-1
python3 scripts/scan_skill.py /path/to/skills/skill-2
# ... 对每个已安装技能重复此操作
scripts/scan_skill.py 工具提供自动化安全分析:
python3 scripts/scan_skill.py <skill-path>
输出包括:
- 高 严重性问题(需要立即处理)
- 中 严重性警告(建议审查)
- 低 严重性说明(信息性)
- 已执行检查的摘要
示例输出:
{
"skill_name": "example-skill",
"issues": [
{
"severity": "HIGH",
"file": "SKILL.md",
"issue": "检测到潜在的提示注入模式",
"recommendation": "审查并移除可疑模式"
}
],
"warnings": [
{
"severity": "MEDIUM",
"file": "scripts/helper.py",
"issue": "检测到 os.system() 的使用",
"recommendation": "审查并确保其安全性"
}
],
"passed": [
{"file": "SKILL.md", "check": "提示注入扫描", "status": "已完成"}
],
"summary": "发现安全问题:1 个问题,1 个警告"
}
SKILL.md 分析
Scripts 目录扫描
References 目录扫描
使用 references/security-checklist.md 中的全面清单进行手动审查。
references/prompt-injection-patterns.md)阅读 references/prompt-injection-patterns.md 获取全面的模式列表。
关键指标:
- 忽略/丢弃上下文的指令
- 系统覆盖或绕过命令
- 权限冒充(充当管理员等)
- 越狱尝试(无限制模式等)
- 指令替换模式
检测方法:
# 自动化模式匹配
import re
dangerous_patterns = [
r'ignore\s+previous\s+instructions',
r'override\s+security',
r'act\s+as\s+administrator',
]
扫描内容:
- 硬编码的密码、API 密钥、令牌
- AWS 访问密钥和秘密密钥
- SSH 私钥
- 数据库连接字符串
- 其他敏感凭据
检测模式:
password="..."
secret='...'
token="1234567890abcdef"
api_key="..."
aws_access_key_id="..."
阻止访问:
- ~/.clawdbot/credentials/
- ~/.aws/credentials
- ~/.ssh/ 目录
- ~/.npmrc 及其他配置文件
- Shell 历史文件
- 系统密钥链
仅允许访问:
- 技能特定的配置文件
- 用户提供的文件路径
- 指定的工作空间目录
- 已批准的环境变量
验证流程:
1. 从技能代码中提取所有命令/操作
2. 与 SKILL.md 中的描述进行比较
3. 识别任何未记录的操作
4. 标记可疑或隐藏的功能
一致性失配示例:
❌ 阻止:
- 描述:"格式化文本文档"
- 实际:扫描文件系统,将数据发送到外部服务器
✅ 安全:
- 描述:"使用模板将 Markdown 转换为 PDF"
- 实际:读取 Markdown,应用模板,生成 PDF
措施: 不要安装。向技能作者报告。
措施: 手动审查。仅在理由充分且理解风险的情况下安装。
措施: 记录以供未来审查。通常可以安全安装。
在警告状态下安装前:
1. 了解风险
2. 验证技能作者的声誉
3. 首先在隔离环境中测试
4. 密切监控行为
5. 准备好卸载
检查技能依赖项是否存在漏洞:
# 对于 Node.js 技能
npm audit
npm audit fix
# 对于 Python 技能
pip-audit
safety check
检查内容:
- 依赖项中已知的 CVE
- 具有安全更新的过时软件包
- 传递性依赖漏洞
- 不受信或无人维护的软件包
# 安全审计报告
**日期:** [日期]
**技能:** [技能名称]
**版本:** [版本]
## 执行摘要
[整体安全状况:安全、警告 或 阻止]
## 关键问题(需要立即处理)
[列出高严重性问题]
## 警告(建议审查)
[列出中严重性问题]
## 信息性说明
[列出低严重性问题]
## 建议
[解决问题的可操作项]
## 结论
[最终裁决:安装/阻止/需要修改]
安全检查清单 (references/security-checklist.md)
提示注入模式 (references/prompt-injection-patterns.md)
参考工作空间安全文档:
- SECURITY_AUDIT_REPORT.md - Clawdbot 整体安全状况
- 任何额外的安全策略或指南
用户请求: "检查技能 'xyz' 是否可以安全安装"
响应:
1. 将技能下载到临时位置
2. 运行扫描器:python3 scripts/scan_skill.py /tmp/xyz-skill
3. 审查输出:
- 如果存在高问题:"❌ 已阻止:[列出问题] - 请勿安装"
- 如果存在中问题:"⚠️ 警告:[列出问题] - 需要手动审查"
- 如果干净:"✅ 安全:未检测到安全问题 - 可以安装"
4. 如果存在中问题:使用清单提供详细的手动审查
日常例程:
# 扫描所有已安装技能
for skill in /Users/rlapuente/clawd/skills/*/; do
python3 scripts/scan_skill.py "$skill"
done
# 立即审查任何高严重性问题
# 监控中严重性问题的趋势
技能更新后:
1. 将新版本与旧版本进行比较
2. 使用安全扫描器扫描新版本
3. 检查是否引入了新问题
4. 验证更改是否与更新说明匹配
5. 仅在安全状况得以维持的情况下重新批准
发现安全问题时:
1. 记录模式
2. 添加到检测规则中
3. 与社区分享
4. 整体提升安全状况
scripts/scan_skill.py - 自动化安全扫描器references/security-checklist.md - 手动安全检查清单references/prompt-injection-patterns.md - 提示注入检测指南请记住:安全是一个持续的过程,而非一次性检查。定期审计和保持警惕对于维护安全的 Clawdbot 环境至关重要。