安全决策报告

pet-breed-individual-recognition-analysis

宠物品种个体识别技能,本地仅做凭证缓存和API代理,无恶意行为,但存在未声明的本地数据库存储行为

安装决策优先 来源: ClawHub 扫描时间: 2026/8/26
文件 29
IOC 10
越权项 3
发现 4

为什么得出这个结论

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

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

复核
隐藏执行与外联

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

通过
攻击链与高危发现

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

通过
依赖与供应链卫生

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

风险分是怎么被拉高的

本地数据库存储凭证 +10

smyx-common-claw.db 存储 token/open_token,但未在 SKILL.md 中声明

凭证文件读取 +5

OpenIdUtil 读取 smyx-api-key.txt,未在文档中说明来源和用途

自动用户注册 +5

凭证过期时自动调用 /sys/phoneLogin 注册新用户,行为未声明

最关键的证据

低危 文档欺骗

本地数据库存储未声明

skills/smyx_common/scripts/dao.py 创建 SQLite 数据库 smyx-common-claw.db 存储用户凭证(username, token, open_token),但 SKILL.md 未声明此本地持久化行为

skills/smyx_common/scripts/dao.py:89
在 SKILL.md 的隐私声明中补充说明本地凭证缓存机制
低危 文档欺骗

凭证文件读取未声明

OpenIdUtil.get_api_key_file_open_id() 从 data/smyx-api-key.txt 读取凭证,该文件的来源和用途未在文档中说明

skills/smyx_common/scripts/util.py:298
明确 smyx-api-key.txt 的生成方式和用途
低危 文档欺骗

自动用户注册行为未声明

RequestUtil._get_or_create_user() 在 token 不存在时自动调用 /sys/phoneLogin 注册新用户,此行为未在 SKILL.md 中说明

skills/smyx_common/scripts/util.py:334
在隐私声明中说明自动用户注册机制
提示 供应链

依赖版本已锁定

smyx_analysis 和 smyx_common 的 requirements.txt 均指定了明确版本(pydash==8.0.6, SQLAlchemy==2.0.46, PyYAML==6.0.3),供应链风险较低

skills/smyx_analysis/requirements.txt:1
无需行动

声明能力 vs 实际能力

文件系统 通过
声明 READ
→
推断 READ
scripts/pet_breed_individual_recognition_analysis.py:60 open(input_path, 'rb')
文件系统 阻止
声明 NONE
→
推断 WRITE
skills/smyx_common/scripts/dao.py:89 创建 SQLite 数据库
网络访问 通过
声明 READ
→
推断 WRITE
skills/smyx_common/scripts/util.py:380 requests.request 上传文件到 API
环境变量 阻止
声明 NONE
→
推断 READ
skills/smyx_common/scripts/config.py:195 读取 OPENCLAW_SENDER_OPEN_ID 等
数据库 阻止
声明 NONE
→
推断 WRITE
skills/smyx_common/scripts/dao.py:89 SQLite 存储用户凭证

可疑产物与外联

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

SKILL.md:33

中危 外部 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 否 已锁定版本

文件构成

29 个文件 · 2688 行
Python 18 个文件 · 2357 行Markdown 3 个文件 · 296 行YAML 6 个文件 · 29 行Text 2 个文件 · 6 行
需关注文件 · 3
skills/smyx_common/scripts/util.py Python · 718 行
凭证文件读取未声明 · 自动用户注册行为未声明
skills/smyx_common/scripts/dao.py Python · 499 行
本地数据库存储未声明
SKILL.md Markdown · 256 行
https://lifeemergence.com/sample.html
其他文件 · config.py · skill.py · smyx_analysis.py · pet_breed_individual_recognition_analysis.py · api_service.py · skill.py +3

安全亮点

代码结构清晰,职责分离良好(smyx_common 作为共享库)
依赖版本已锁定(pydash, SQLAlchemy, PyYAML)
网络通信仅指向声明的域名(lifeemergence.com),无外部 IP 直连
未发现 base64 编码执行、eval()、subprocess 远程命令执行等高危模式
未发现访问 ~/.ssh、~/.aws、.env 等敏感路径
数据库路径通过 AgentContextUtil 重定向到工作区共享目录,有隔离机制