安全扫描
OpenClaw
可疑
medium confidence技能基本实现了其声称的功能(提供本地3D头像UI并代理WebSocket网关用于TTS),但元数据遗漏了必需的凭据,且运行时将下载并提取原生二进制文件——这些不匹配之处及私钥/令牌的处理需要谨慎。
评估建议
安装前需要考虑的事项摘要:
- 凭据预期:SKILL.md和bin/serve.js需要网关令牌和设备身份文件(私钥),但技能元数据未声明这些环境变量——需要提供敏感凭据(OPENCLAW_GATEWAY_TOKEN和包含privateKeyPem的device.json)才能使代理工作。仅在完全信任网关URL和技能来源时才提供这些。
- 代码审查:serve.js读取并使用私钥签名,并将WebSocket消息代理到浏览器。这对网关认证流程是必要的,但意味着技能可以在浏览器和网关之间转发任何消息。在运行前自行检查serve.js或信任发布者。
- 下载和原生二进制文件:安装步骤从GitHub releases下载并提取sherpa-onnx运行时和语音模型。这对本地TTS是预期的,但因为原生二进制文件被写入磁盘,如果可能应验证来源和校验和。
- 操作注意事项:仅在本地主机上运行服务器,并确保传递的网关URL是合法的。如果不控制或不信任网关,请勿提供设备私钥或令牌。考虑在沙箱中运行或在测试时审查/限制网络访问。
如需在安装前获得更安全的姿态:要求发布者更新技能元数据以声明所需凭据(pri...详细分析 ▾
ℹ 用途与能力
代码和SKILL.md实现了一个本地HTTP服务器和WebSocket代理,使用设备私钥向上游网关认证,并调用本地sherpa-onnx TTS运行时。这些功能与「带TTS的3D头像Web UI」的用途相符。然而,注册表元数据未声明所需的环境变量/凭据,而运行时期望网关令牌和设备身份文件;这种不匹配值得关注。
ℹ 指令范围
SKILL.md明确指示使用--gateway-token(OPENCLAW_GATEWAY_TOKEN)、--identity-file(device.json)和其他参数运行node bin/serve.js。这些指令保持在所述用途范围内(向网关认证并提供资源),代码声称凭据保留在服务器端。不过,指令要求读取设备私钥文件并使用它来签署网关挑战——只有在信任网关的情况下才能执行这一敏感操作。SKILL.md引用了环境变量(OPENCLAW_GATEWAY_TOKEN / OPENCLAW_GATEWAY_PORT),但这些变量未在技能声明的要求中列出。
ℹ 安装机制
技能元数据包含下载/安装条目,从GitHub releases获取sherpa-onnx运行时和TTS模型,并将其解压缩到~/.openclaw/tools/clawface。从GitHub releases下载是原生运行时的合理选择,但extract:true意味着原生二进制文件/库将被写入磁盘——与纯指令式技能相比,这增加了风险,值得审计(验证校验和/来源)。
⚠ 凭证需求
技能在注册表元数据中未请求环境变量,但SKILL.md和serve.js依赖网关令牌(OPENCLAW_GATEWAY_TOKEN / 参数--gateway-token)、可能的OPENCLAW_GATEWAY_PORT,以及包含私钥的身份文件。这些是敏感凭据。在元数据中未声明它们是不匹配,掩盖了所需凭据访问的程度。要求设备私钥和网关令牌对于所述功能是合理的,但元数据中的遗漏是一个危险信号。
✓ 持久化与权限
always:false(无强制永久包含)且技能不请求系统级权限。它将根据其安装条目在~/.openclaw/tools/clawface下写入运行时/模型文件,并运行本地Node服务器。这种存在级别对于本地媒体/TTS组件是预期的。
⚠ bin/serve.js:465
检测到Shell命令执行(child_process)。
⚠ dist/thermion_dart.js:1
检测到动态代码执行。
⚠ bin/serve.js:41
文件读取与网络发送结合(可能存在数据泄露)。
⚠ dist/thermion_dart.js:1
检测到动态代码执行。
安全有层次,运行前请审查代码。
运行时依赖
🖥️ OSmacOS · Linux
版本
latestv0.0.32026/3/21
clawface 0.0.3 - 版本更新至0.0.3。SKILL.md中的文档已刷新;未注明功能变更。
● 无害
安装命令
点击复制官方npx clawhub@latest install clawface
镜像加速npx clawhub@latest install clawface --registry https://cn.longxiaskill.com
技能文档
一个自包含的Web UI,包含3D头像、聊天和TTS语音。你不需要浏览器——启动一个HTTP服务器并给用户一个URL,让他们在自己的浏览器中打开。
安装
上述下载完成后,~/.openclaw/tools/clawface/目录将包含:
runtime/— sherpa-onnx TTS运行时(平台特定的二进制文件 + 库)models/— TTS语音模型
Web资源打包在{baseDir}/dist/中。无需进一步配置——serve.js会自动找到TTS运行时和模型。
如何启动
运行此命令:
node {baseDir}/bin/serve.js \
--dist {baseDir}/dist \
--tools-dir ~/.openclaw/tools/clawface \
--port 18794 \
--gateway-url "ws://127.0.0.1:${OPENCLAW_GATEWAY_PORT:-18789}" \
--gateway-token "$OPENCLAW_GATEWAY_TOKEN" \
--identity-file ~/.openclaw/identity/device.json
服务器会打印一个类似http://localhost:18794的URL到标准输出。告诉用户:「头像已就绪于 http://localhost:18794」——他们在浏览器中打开它。
安全
- 凭据永远不会到达浏览器。 服务器通过WebSocket代理(
/ws)向网关认证。网关令牌和设备私钥保留在服务器端——浏览器只接收一个代理URL。 --gateway-token和--identity-file参数仅由serve.js用于认证上游网关连接。
重要提示
- 不要尝试自己打开浏览器。 只需启动服务器并返回URL。
- 服务器是零依赖的Node.js——不需要
npm install。 - TTS内置——服务器直接调用sherpa-onnx,不需要单独的TTS技能。
停止
终止node进程以停止服务器。