安全决策报告
subscribe-filter-feishu
合法的WebSocket订阅+大模型过滤+飞书推送工具,代码行为与声明基本一致,无恶意行为发现。
为什么得出这个结论
0/4 个维度触发 通过
声明与实际能力
声明资源与推断能力基本一致。
复核
隐藏执行与外联
提取到 27 个一般风险产物,需要结合上下文判断。
通过
攻击链与高危发现
没有形成明确的恶意路径。
复核
依赖与供应链卫生
发现 1 项需要关注的依赖或供应链线索。
风险分是怎么被拉高的
权限声明宽泛 +10
SKILL.md未声明allowed-tools,但代码使用了filesystem和network
依赖无版本锁定 +5
axios和ws在package.json中使用^通配符
凭证存储在配置文件 +5
API密钥存储在~/.openclaw/*.json而非环境变量
最关键的证据
中危
第三方依赖无版本锁定
axios使用^1.6.0,ws使用^8.14.2,可能拉取有漏洞的更新版本
package.json:18 固定版本如 "axios": "1.6.8"
低危
SKILL.md未声明allowed-tools
文档未列出skill_invoke、filesystem、network等声明,但代码确实使用了这些资源
SKILL.md:1 添加allowed-tools声明
低危
配置文件存储敏感凭证
API密钥存储在~/.openclaw/*.json而非环境变量,与"安全工具"场景有差异
scripts/receiver.js:35 考虑使用环境变量存储敏感凭证
声明能力 vs 实际能力
文件系统 通过
声明 NONE
→ 推断 WRITE
scripts/receiver.js:39-42 配置文件读取 文件系统 通过
声明 NONE
→ 推断 WRITE
scripts/receiver.js:67-68,96 PID和日志文件写入 网络访问 通过
声明 NONE
→ 推断 WRITE
scripts/receiver.js:103-105 WebSocket连接到ws_url 网络访问 通过
声明 NONE
→ 推断 WRITE
scripts/receiver.js:113-116 POST到飞书API 网络访问 通过
声明 NONE
→ 推断 WRITE
scripts/receiver.js:170-173 POST到LLM API 环境变量 通过
声明 NONE
→ 推断 READ
scripts/receiver.js:35 os.homedir()获取home路径 可疑产物与外联
中危 外部 URL
https://ark.cn-beijing.volces.com/api/v3 SKILL.md:38
中危 外部 URL
https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz package-lock.json:17
中危 外部 URL
https://registry.npmmirror.com/axios/-/axios-1.13.6.tgz package-lock.json:23
中危 外部 URL
https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz package-lock.json:34
中危 外部 URL
https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz package-lock.json:47
中危 外部 URL
https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz package-lock.json:59
中危 外部 URL
https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz package-lock.json:68
中危 外部 URL
https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz package-lock.json:82
中危 外部 URL
https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz package-lock.json:91
中危 外部 URL
https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz package-lock.json:100
中危 外部 URL
https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz package-lock.json:112
中危 外部 URL
https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.11.tgz package-lock.json:127
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| ws | ^8.14.2 | npm | 否 | WebSocket客户端,版本较新 |
| axios | ^1.6.0 | npm | 否 | HTTP客户端,无版本锁定存在供应链风险 |
文件构成
6 个文件 · 837 行
JavaScript 1 个文件 · 374 行JSON 4 个文件 · 343 行Markdown 1 个文件 · 120 行
需关注文件 · 4
package-lock.json https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz · https://registry.npmmirror.com/axios/-/axios-1.13.6.tgz · https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz · https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz · https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz · https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz · https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz · https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz · https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz · https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz · https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.11.tgz · https://registry.npmmirror.com/form-data/-/form-data-4.0.5.tgz · https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz · https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz · https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz · https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz · https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz · https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz · https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz · https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz · https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz · https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz · https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz · https://registry.npmmirror.com/ws/-/ws-8.19.0.tgz
scripts/receiver.js 配置文件存储敏感凭证 · https://open.feishu.cn/open-apis/auth/v3/app_access_token/internal · https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=open_id
SKILL.md SKILL.md未声明allowed-tools · https://ark.cn-beijing.volces.com/api/v3
package.json 第三方依赖无版本锁定
其他文件 · metadata.json · _meta.json
安全亮点
代码结构清晰,功能单一且专注
错误处理完善(try-catch、异常兜底)
网络请求目标明确(飞书API、豆包API、WebSocket源)
日志记录完整,便于审计
无命令注入、eval、base64解码等危险操作
配置文件与代码分离,敏感信息不硬编码