安全决策报告

smyx-pet-training-command-execution-analysis

合法的宠物训练指令执行识别技能,代码行为与文档声明一致,无恶意行为证据,存在轻微供应链版本管理问题。

安装决策优先 来源: ClawHub 扫描时间: 2026/8/15
文件 31
IOC 12
越权项 2
发现 4

为什么得出这个结论

1/4 个维度触发
阻止
声明与实际能力

发现 2 项声明之外的能力或越权行为。

复核
隐藏执行与外联

提取到 12 个一般风险产物,需要结合上下文判断。

通过
攻击链与高危发现

没有形成明确的恶意路径。

通过
依赖与供应链卫生

依赖结构存在,但暂未看到明显高危告警。

风险分是怎么被拉高的

依赖版本约束宽松 +15

SKILL.md 中 requests>=2.28.0 无上限约束,可能引入恶意未来版本

凭证存储机制 +5

本地 SQLite 存储 token,但已通过 get_db_path() 重定向到工作区隔离目录

最关键的证据

低危 供应链

依赖版本约束宽松

SKILL.md 中声明 requests>=2.28.0 无上限版本约束,requests 库历史上曾有安全漏洞,未来版本可能被植入恶意代码

SKILL.md:96
建议锁定具体版本,如 requests==2.31.0
低危 敏感访问

未声明的本地凭证存储

skill 使用 SQLite 本地数据库存储用户 token 和身份信息,虽然有工作区隔离机制,但 SKILL.md 未声明此行为

skills/smyx_common/scripts/dao.py:41
在 SKILL.md 中补充声明本地数据存储机制
提示 敏感访问

环境变量读取

代码读取 OPENCLAW_SENDER_OPEN_ID、OPENCLAW_SENDER_USERNAME、FEISHU_OPEN_ID 等环境变量用于身份关联

skills/smyx_common/scripts/config.py:64
属于正常的系统集成行为,无需修改
提示 文档欺骗

subprocess 功能已注释

skills/smyx_common/scripts/skill.py 中的 ai_chat() 方法包含 subprocess 调用 openclaw agent 的代码,但已全部注释,不构成实际威胁

skills/smyx_common/scripts/skill.py:29
建议删除注释代码以避免混淆

声明能力 vs 实际能力

网络访问 通过
声明 READ
→
推断 READ
skills/smyx_common/scripts/util.py:300-310 调用 requests.request 访问 lifeemergence.com API
文件系统 通过
声明 READ
→
推断 READ
skills/smyx_analysis/scripts/skill.py:50-62 仅读取用户指定的视频文件并验证格式/大小
数据库 阻止
声明 NONE
→
推断 WRITE
skills/smyx_common/scripts/dao.py:41-200 使用 SQLAlchemy 操作 SQLite 存储用户 token
环境变量 阻止
声明 NONE
→
推断 READ
skills/smyx_common/scripts/config.py:64-70 读取 OPENCLAW_SENDER_OPEN_ID 等环境变量

可疑产物与外联

中危 外部 URL
https://lifeemergence.com/sample.html

SKILL.md:38

中危 外部 URL
https://clawhub.ai/user/18072937735

skill-card.md:9

中危 外部 URL
https://clawhub.ai/18072937735/skills/smyx-pet-training-command-execution-analysis

skill-card.md:39

中危 外部 URL
http://192.168.1.234:9601/smyx-open-api

skills/smyx_common/scripts/config-dev.yaml:2

中危 外部 URL
http://192.168.1.234:4100

skills/smyx_common/scripts/config-dev.yaml:3

中危 外部 URL
http://192.168.1.234:7070/jeecg-boot-xzgz

skills/smyx_common/scripts/config-dev.yaml:4

中危 外部 URL
https://livemonitortest.lifeemergence.com/smyx-open-api

skills/smyx_common/scripts/config-test.yaml:2

中危 外部 URL
http://livemonitortest.lifeemergence.com

skills/smyx_common/scripts/config-test.yaml:3

中危 外部 URL
https://healthtest.lifeemergence.com/jeecg-boot-xzgz

skills/smyx_common/scripts/config-test.yaml:4

中危 外部 URL
https://lifeemergence.com/jeecg-boot-xzgz

skills/smyx_common/scripts/config.yaml:4

中危 外部 URL
https://open.lifeemergence.com/smyx-open-api

skills/smyx_common/scripts/config.yaml:5

中危 外部 URL
http://livemonitor.lifeemergence.com

skills/smyx_common/scripts/config.yaml:6

依赖与供应链

包名版本来源漏洞备注
requests >=2.28.0 pip 否 无版本上限约束,存在供应链风险
SQLAlchemy 2.0.46 pip 否 版本锁定
PyYAML 6.0.3 pip 否 版本锁定
pydash 8.0.6 pip 否 版本锁定

文件构成

31 个文件 · 2705 行
Python 18 个文件 · 2363 行Markdown 4 个文件 · 297 行YAML 6 个文件 · 29 行JSON 1 个文件 · 10 行Text 2 个文件 · 6 行
需关注文件 · 5
skills/smyx_common/scripts/config.py Python · 399 行
环境变量读取
skills/smyx_common/scripts/dao.py Python · 499 行
未声明的本地凭证存储
SKILL.md Markdown · 193 行
依赖版本约束宽松 · https://lifeemergence.com/sample.html
skill-card.md Markdown · 60 行
https://clawhub.ai/user/18072937735 · https://clawhub.ai/18072937735/skills/smyx-pet-training-command-execution-analysis
skills/smyx_common/scripts/skill.py Python · 85 行
subprocess 功能已注释
其他文件 · util.py · skill.py · smyx_analysis.py · smyx_pet_training_command_execution_analysis.py · api_service.py · api_service.py +1

安全亮点

代码行为与 SKILL.md 文档声明完全一致,无阴影功能
使用 AgentContextUtil 实现工作区隔离,防止跨目录数据污染
get_db_path() 强制将数据库路径重定向到工作区共享 data 目录
视频文件验证机制(格式、大小限制),防止滥用
无 base64 编码、eval、shell 管道等危险模式
不访问 ~/.ssh、~/.aws、.env 等敏感路径
所有外部网络请求指向 lifeemergence.com 合法 API 服务
未发现 C2 通信、反向 shell 或凭证收割行为
subprocess 调用代码已全部注释,无实际执行风险