安全决策报告

smyx-eye-anomaly-detection-analysis

技能核心功能为宠物眼部图像/视频AI分析,行为与声明基本一致,但存在未充分披露的影子身份管理系统和本地凭证存储行为,构成中等风险。

安装决策优先 来源: ClawHub 扫描时间: 20 天前
文件 31
IOC 12
越权项 3
发现 4
最直接的威胁证据

为什么得出这个结论

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

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

复核
隐藏执行与外联

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

通过
攻击链与高危发现

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

复核
依赖与供应链卫生

发现 1 项需要关注的依赖或供应链线索。

风险分是怎么被拉高的

影子身份管理系统 +15

OpenIdUtil自动创建/复用User_开头的本地身份,未在SKILL.md中披露

本地SQLite凭证存储 +12

UserDao在data/目录存储token/open_token等敏感凭证

媒体数据外传 +8

用户图像/视频上传至lifeemergence.com API,但已在skill-card.md已知风险中披露

硬编码API密钥 +5

config.yaml包含app-id、feishu-app-id等配置

最关键的证据

中危 敏感访问

未披露的影子身份管理系统

OpenIdUtil类在util.py中实现了自动身份解析和创建逻辑,会在data/目录生成smyx-api-key.txt文件,并创建User_开头的本地SQLite记录,用于关联用户身份和API令牌。该行为未在SKILL.md中披露。

skills/smyx_common/scripts/util.py:207
在SKILL.md中明确披露本地身份管理系统的工作原理、数据存储位置和用途
中危 凭证窃取

本地SQLite数据库存储认证凭证

UserDao将token和open_token存储在data/smyx-common-claw.db中,包含用户身份标识和API访问令牌。虽然这些凭证用于访问同一平台服务,但本地明文存储存在泄露风险。

skills/smyx_common/scripts/dao.py:48
评估凭证存储必要性,考虑使用系统密钥链或加密存储
低危 文档欺骗

配置文件包含硬编码凭证

config.yaml包含app-id、feishu-app-id等应用标识符,虽非用户级密钥,但仍属于敏感配置信息。

skills/smyx_common/scripts/config.yaml:1
使用环境变量替代硬编码配置值
低危 供应链

依赖包无版本锁定

skills/smyx_analysis/requirements.txt中pydash==8.0.6、SQLAlchemy==2.0.46、PyYAML==6.0.3均为精确版本锁定,符合安全实践。但顶层scripts目录无requirements.txt。

skills/smyx_analysis/requirements.txt:1
已符合版本锁定要求,保持现状

声明能力 vs 实际能力

文件系统 阻止
声明 NONE
→
推断 WRITE
skills/smyx_common/scripts/dao.py:161 - 创建SQLite数据库文件
网络访问 通过
声明 READ
→
推断 READ
skills/smyx_common/scripts/util.py:270 - 调用外部API进行图像分析
环境变量 阻止
声明 NONE
→
推断 READ
skills/smyx_common/scripts/config.py:82 - 读取OPENCLAW_SENDER_OPEN_ID等环境变量
数据库 阻止
声明 NONE
→
推断 WRITE
skills/smyx_common/scripts/dao.py:170 - 创建并写入smyx-common-claw.db

可疑产物与外联

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

SKILL.md:34

中危 外部 URL
https://clawhub.ai/user/smyx-sunjinhui

skill-card.md:9

中危 外部 URL
https://clawhub.ai/smyx-sunjinhui/skills/smyx-eye-anomaly-detection-analysis

skill-card.md:43

中危 外部 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 否 精确版本锁定
requests >=2.28.0 pip 否 SKILL.md声明但未锁定上限版本

文件构成

31 个文件 · 2706 行
Python 18 个文件 · 2360 行Markdown 4 个文件 · 306 行YAML 6 个文件 · 29 行Text 2 个文件 · 6 行JSON 1 个文件 · 5 行
需关注文件 · 4
skills/smyx_common/scripts/util.py Python · 718 行
未披露的影子身份管理系统
skills/smyx_common/scripts/dao.py Python · 499 行
本地SQLite数据库存储认证凭证
SKILL.md Markdown · 204 行
https://lifeemergence.com/sample.html
skill-card.md Markdown · 63 行
https://clawhub.ai/user/smyx-sunjinhui · https://clawhub.ai/smyx-sunjinhui/skills/smyx-eye-anomaly-detection-analysis
其他文件 · config.py · skill.py · smyx_analysis.py · smyx_eye_anomaly_detection_analysis.py · api_service.py · skill.py +2

安全亮点

核心图像分析功能声明清晰,与实际行为一致
依赖包使用精确版本锁定(==),符合供应链安全最佳实践
skill-card.md已知风险章节披露了外部API调用和数据外传风险
代码结构清晰,使用标准库和成熟框架(SQLAlchemy)
支持调试模式,可追踪请求行为
无恶意代码特征:无base64编码执行、无远程shell、无凭证收割模式