安全决策报告

smyx-pet-grooming-stress-behavior-analysis

技能核心功能为合法的视频分析,但存在大量未声明的身份管理、凭证存储和静默用户注册机制,构成显著文档-行为差异风险。

安装决策优先 来源: ClawHub 扫描时间: 20 天前
文件 31
IOC 12
越权项 3
发现 5
最直接的威胁证据
01
用户上传宠物美容视频触发技能 初始入口 · SKILL.md
02
技能自动初始化用户身份,若无凭证则静默注册新账户 权限提升 · skills/smyx_common/scripts/util.py
03
用户凭证(token/open_token/email)被存储到本地 SQLite 数据库 权限提升 · skills/smyx_common/scripts/dao.py

为什么得出这个结论

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

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

复核
隐藏执行与外联

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

阻止
攻击链与高危发现

报告包含 4 步攻击链,另有 1 项高危或严重发现。

通过
依赖与供应链卫生

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

攻击链

01
用户上传宠物美容视频触发技能

初始入口 · SKILL.md:1

02
技能自动初始化用户身份,若无凭证则静默注册新账户

权限提升 · skills/smyx_common/scripts/util.py:287

03
用户凭证(token/open_token/email)被存储到本地 SQLite 数据库

权限提升 · skills/smyx_common/scripts/dao.py:141

04
后续请求携带凭证调用远程 API,凭证随请求外传

最终危害 · skills/smyx_common/scripts/util.py:350

风险分是怎么被拉高的

静默用户注册机制 +15

_get_or_create_user() 调用 /sys/phoneLogin API 自动注册用户,未在 SKILL.md 声明

本地凭证数据库存储 +10

dao.py 创建 SQLite 数据库存储 token/open_token/email 等敏感字段

注释掉的远程代码执行 +8

AgentSkill.ai_chat() 包含被注释的 subprocess.run(openclaw agent) 调用

环境变量凭证读取 +5

config.py 读取 OPENCLAW_SENDER_OPEN_ID 等环境变量用于身份识别

最关键的证据

高危 文档欺骗

静默用户自动注册

RequestUtil._get_or_create_user() 通过 /sys/phoneLogin API 自动注册用户(使用 username 作为手机号),用户无感知且 SKILL.md 完全未声明此行为。

skills/smyx_common/scripts/util.py:287
在 SKILL.md 中明确声明自动注册机制,或提供用户知情同意流程
中危 凭证窃取

本地 SQLite 数据库存储凭证

dao.py 创建本地数据库存储 token/open_token/email/birthday 等敏感字段。User 模型包含: id, source_id, username, realname, email, birthday, token, open_token 等字段。

skills/smyx_common/scripts/dao.py:141
明确说明为何需要本地存储凭证,考虑使用系统密钥链而非明文 SQLite
中危 代码混淆

注释掉的远程代码执行功能

AgentSkill.ai_chat() 包含完整的 subprocess.run(['openclaw', 'agent', ...]) 代码框架,仅被注释。虽然当前不活跃,但表明曾考虑或开发过远程命令执行能力。

skills/smyx_common/scripts/skill.py:43
如无必要用途,应彻底删除此代码而非仅注释
低危 敏感访问

环境变量身份读取

config.py ConstantEnum.init() 从环境变量读取 OPENCLAW_SENDER_OPEN_ID, OPENCLAW_SENDER_USERNAME, FEISHU_OPEN_ID 用于身份识别。

skills/smyx_common/scripts/config.py:103
已在 skill-card.md 中部分披露,但应在 SKILL.md 主文档中明确说明
低危 文档欺骗

未声明的缺省用户生成

OpenIdUtil.generate_default_open_id() 生成 User_{6位随机哈希} 作为缺省身份并持久化存储,用于跨会话追踪。

skills/smyx_common/scripts/util.py:118
在 SKILL.md 中明确说明缺省用户生成和追踪机制

声明能力 vs 实际能力

文件系统 阻止
声明 NONE
→
推断 WRITE
dao.py:56 - 创建 SQLite 数据库文件
环境变量 阻止
声明 NONE
→
推断 READ
config.py:103 - 读取 OPENCLAW_SENDER_OPEN_ID
网络访问 阻止
声明 READ
→
推断 READ+WRITE
util.py:287 - POST 用户注册 API
命令执行 通过
声明 NONE
→
推断 WRITE
skill.py:43-51 - 注释掉的 subprocess.run

可疑产物与外联

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

SKILL.md:37

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

skill-card.md:9

中危 外部 URL
https://clawhub.ai/18072937735/skills/smyx-pet-grooming-stress-behavior-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

依赖与供应链

包名版本来源漏洞备注
pydash 8.0.6 pip 否 版本已锁定
SQLAlchemy 2.0.46 pip 否 版本已锁定
PyYAML 6.0.3 pip 否 版本已锁定

文件构成

31 个文件 · 2716 行
Python 18 个文件 · 2363 行Markdown 4 个文件 · 313 行YAML 6 个文件 · 29 行Text 2 个文件 · 6 行JSON 1 个文件 · 5 行
需关注文件 · 6
skills/smyx_common/scripts/util.py Python · 718 行
静默用户自动注册 · 未声明的缺省用户生成
skills/smyx_common/scripts/config.py Python · 399 行
环境变量身份读取
skills/smyx_common/scripts/dao.py Python · 499 行
本地 SQLite 数据库存储凭证
SKILL.md Markdown · 215 行
https://lifeemergence.com/sample.html
skills/smyx_common/scripts/skill.py Python · 85 行
注释掉的远程代码执行功能
skill-card.md Markdown · 59 行
https://clawhub.ai/user/18072937735 · https://clawhub.ai/18072937735/skills/smyx-pet-grooming-stress-behavior-analysis
其他文件 · skill.py · smyx_analysis.py · smyx_pet_grooming_stress_behavior_analysis.py · api_service.py · api_service.py · config.py

安全亮点

依赖版本已锁定 (pydash==8.0.6, SQLAlchemy==2.0.46, PyYAML==6.0.3)
核心视频分析功能与声明一致
未发现 base64 编码执行、裸 IP 请求等典型恶意模式
AgentSkill 类虽存在但未被主流程调用