安全扫描
OpenClaw
可疑
medium confidence该技能基本符合其声明的用途(扫描已安装的技能),但存在不一致之处和一个修改agent系统提示词的hook——安装前需谨慎考虑。
评估建议
该技能似乎实现了一个合法的本地扫描器,但安装前需检查两点:1)检查并控制hook:hook/shield-scan.js运行本地Python启动脚本并将其输出追加到agent的系统提示词中。此行为可能广泛改变agent行为(提示词注入)。如需安装,请移除或禁用该hook,或确保引用的启动脚本存在、简单且无法被不可信方修改。2)修复不一致:SKILL.md声称hook/auto-check是'计划中'的,但hook文件存在且引用了scripts/tui-startup.py(该文件缺失)。请向作者询问为何存在该hook以及启动脚本应做什么。如无法验证启动脚本内容,请勿启用该hook。其他注意事项:检查config.json的allowlist条目(确保信任列出的技能),先在sandbox中运行扫描器,限制对~/.openclaw/workspace/skills的写权限以防止攻击者替换启动脚本或其他扫描器文件。简短建议:保留扫描器代码(scripts/shield.py)但移除/禁用JS hook直至其行为被审计。...详细分析 ▾
✓ 用途与能力
名称/描述与代码匹配:Python扫描器扫描~/.openclaw/workspace/skills中的关键词,构建风险数据库,提供allowlist/阻止行为。所需二进制文件(python3)合适,无不相关的凭据或外部二进制文件请求。
⚠ 指令范围
SKILL.md和脚本描述了扫描技能目录、读取SKILL.md和scripts/、保存本地JSON数据库——这在范围内。然而,SKILL.md声明'Hook机制/自动检查'是计划中/未实现的,但hook文件(hook/shield-scan.js)存在并注册为'session-start'。该hook执行启动Python脚本并将其输出追加到context.systemPrompt中,这可能全局影响agent。该hook引用了scripts/tui-startup.py(该文件在包中不存在)——这种不一致可能导致运行时错误,或者如果该文件后续被添加/修改则可能被滥用。
✓ 安装机制
无安装规范(仅指令安装),仅包含一个python脚本和小型JS hook。无外部URL下载,无解压步骤,所需二进制文件最少(python3)。
✓ 凭证需求
无环境变量,无凭据,除正常技能配置(技能下的config.json和~/.openclaw下的memory JSON)外无其他配置路径。扫描器按预期读取技能目录下的文件;提供的文件中不包含明确的网络或凭据泄露代码。
⚠ 持久化与权限
hook通过追加扫描输出来修改context.systemPrompt。虽然该技能未标记为always:true,但该hook将在session-start时运行(如果平台加载hooks),这使其成为agent提示词的有效注入通道。将任意脚本输出追加到系统提示词是一个潜在的提示词注入向量,除非启动脚本输出被严格控制和清理,否则是不成比例的。此外,代码引用了一个缺失的启动脚本,这是一个应解决的不一致之处。
⚠ hook/shield-scan.js:24
检测到Shell命令执行(child_process)。
安全有层次,运行前请审查代码。
运行时依赖
无特殊依赖
版本
latestv1.0.02026/3/12
Skill-shield 1.0.0 – 全新OpenClaw安全管理和风险控制 - 全面重写:由ClawHub技能单目录扫描与安全评分工具,升级为OpenClaw扩展统一安全管理系统,聚焦已装扩展风险识别、allowlist/blacklist控制与用户交互提示。 - 新增持久化风险数据库、风险历史记录与管理命令,支持风险快速检索与审计。 - 通过config.json集中管理信任列表、阻止名单和风险交互策略,实现精细化权限与提示控制。 - 支持10大常见风险类型自动识别,按严重度进行分级处理。 - 集成实用命令:一键扫描、单扩展检查、allowlist与blacklist管理、风险报告查看、风险记录清除。 - 功能示例与故障排除指引全面更新,适配OpenClaw场景。
● 无害
安装命令 点击复制
官方npx clawhub@latest install skill-shield-007
镜像加速npx clawhub@latest install skill-shield-007 --registry https://cn.clawhub-mirror.com
技能文档
概述
安全管理已安装的OpenClaw扩展,扫描风险、存储风险列表、提供allowlist策略控制,确保在使用高风险扩展前进行风险提示和用户确认。
核心功能
- 自动扫描:扫描所有已安装的扩展,识别安全风险
- 风险评估:基于代码分析识别10种常见安全风险
- Allowlist管理:配置默认信任的扩展,跳过风险检查
- 黑名单管理:阻止危险扩展执行
- 风险提示:使用高风险扩展前提示用户确认
- 持久存储:保存风险报告到memory,支持历史查询
风险类别
| 风险ID | 风险名称 | 严重程度 | 检测关键词 |
|---|---|---|---|
| R001 | 网络访问 | 高 | requests, curl, fetch, urllib, http, socket |
| R002 | 文件写入 | 高 | write, create, save, mkdir, rmdir, unlink |
| R003 | 文件读取 | 中 | read, open, cat, glob, listdir |
| R004 | 命令执行 | 严重 | exec, subprocess, shell, spawn, Popen, system |
| R005 | 外部API | 中 | api, webhook, endpoint, send, notify, post, get |
| R006 | 数据外发 | 严重 | upload, send, transfer, export, forward |
| R007 | 凭证访问 | 严重 | apiKey, password, token, secret, credential, auth |
| R008 | 无签名验证 | 低 | 无_meta.json文件 |
| R009 | 依赖未知 | 中 | requirements.txt, package.json, dependencies |
| R010 | 权限过宽 | 高 | chmod 777, allowlist, full |
使用方法
扫描所有扩展
执行skill-shield扫描所有已安装的扩展
检查特定扩展
执行skill-shield检查的风险
添加到Allowlist
执行skill-shield添加到allowlist
从Allowlist移除
执行skill-shield移除从allowlist
添加到黑名单
执行skill-shield添加到黑名单
查看风险报告
执行skill-shield查看风险列表
清除风险记录
执行skill-shield清除风险记录
配置说明
配置文件位置:~/.openclaw/workspace/skills/skill-shield/config.json
{
"allowlist": ["file-search", "weather-search"],
"autoApprove": [],
"blocked": [],
"scanOnInstall": true,
"promptOnHighRisk": true
}
- allowlist: 默认信任的扩展,跳过风险检查
- autoApprove: 自动批准的扩展(不需要用户确认)
- blocked: 黑名单,完全阻止执行
- scanOnInstall: 安装时自动扫描
- promptOnHighRisk: 高风险时提示用户
数据存储
风险数据库位置:~/.openclaw/workspace/memory/shield-risks.json
{
"version": "1.0.0",
"lastScanTime": "2026-03-11T09:45:00Z",
"skills": {
"extension-name": {
"path": "/path/to/extension",
"risks": ["R001", "R004", "R006"],
"severity": "severe",
"scanTime": "2026-03-11T09:45:00Z",
"userDecision": "approved"
}
},
"allowlist": ["file-search", "weather-search"],
"history": [
{
"extension": "extension-name",
"action": "blocked",
"time": "2026-03-11T09:50:00Z"
}
]
}
使用示例
场景1:首次扫描
用户:扫描所有扩展
Agent:🔍 正在扫描9个扩展...
📊 扫描完成!
🔴 严重: 6
🟠 高危: 1
🟡 中危: 0
🟢 低危/安全: 2
💾 风险报告已保存
场景2:使用高风险扩展
用户:执行a-stock-dragon-tiger
Agent:⚠️ 安全警告
扩展: a-stock-dragon-tiger
风险等级: severe
风险项:
- R001: 网络访问
- R004: 命令执行
- R006: 数据外发
是否继续? (yes/no):
用户:yes
Agent:✅ 继续执行
场景3:添加到Allowlist
用户:将weather-search添加到allowlist
Agent:✅ 已将weather-search添加到allowlist
后续使用将不再提示风险
风险等级映射
| 严重程度 | 包含风险 | 用户确认要求 |
|---|---|---|
| 严重 | R004, R006, R007 | 强制确认 |
| 高 | R001, R002, R010 | 强制确认 |
| 中 | R003, R005, R009 | 建议确认 |
| 低 | R008 | 可选确认 |
技术实现
扫描流程
- 遍历
~/.openclaw/workspace/skills/目录 - 读取每个扩展的SKILL.md、scripts/、references/
- 基于关键词匹配识别风险
- 计算严重程度等级
- 生成风险报告并存储
检查流程
- 检查扩展是否在allowlist → 跳过检查
- 检查扩展是否在blocked → 阻止执行
- 查询风险数据库 → 获取风险信息
- 根据严重程度决定是否提示用户
- 记录用户决策到历史
安全原则
- ✅ 所有高风险操作需要用户明确确认
- ✅ Allowlist中的扩展默认信任
- ✅ 风险记录持久化存储
- ✅ 支持审计历史查询
- ✅ 黑名单完全阻止执行
扩展计划
- [ ] Hook机制:在使用扩展前自动检查
- [ ] 安装时扫描:clawhub install时自动扫描
- [ ] 风险修复建议:提供风险缓解建议
- [ ] 定期报告:每周发送安全报告到飞书
故障排除
扫描失败
# 检查扩展目录权限
ls -la ~/.openclaw/workspace/skills/
# 手动运行扫描
python3 ~/.openclaw/workspace/skills/skill-shield/scripts/shield.py scan
配置文件错误
# 重置配置文件
echo '{}' > ~/.openclaw/workspace/skills/skill-shield/config.json
依赖要求
- Python 3.6+
- 无需额外依赖包
- 标准库:os, re, json, glob, hashlib, pathlib, datetime, argparse, typing
数据来源:ClawHub ↗ · 中文优化:龙虾技能库
OpenClaw 技能定制 / 插件定制 / 私有工作流定制
免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制