安全决策报告

cat-face-recognition-analysis

猫脸识别技能,核心功能正常,网络操作用于调用云端AI分析API,无恶意行为发现,但存在文档声明与实际行为的不一致(未明确说明数据外传至第三方服务器)

安装决策优先 来源: ClawHub 扫描时间: 29 天前
文件 29
IOC 10
越权项 1
发现 3

为什么得出这个结论

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

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

复核
隐藏执行与外联

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

通过
攻击链与高危发现

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

通过
依赖与供应链卫生

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

风险分是怎么被拉高的

文档声明宽泛 +15

SKILL.md未明确说明图片/视频数据会上传至外部API服务器(lifeemergence.com)

内部身份管理未声明 +5

技能自动管理User_前缀的内部身份标识并在本地数据库存储token,文档未提及

最关键的证据

中危 文档欺骗

数据外传未在文档中明确声明

SKILL.md描述为'调用API分析',但未明确告知用户上传的图片/视频会被发送至lifeemergence.com外部服务器。用户上传的媒体文件会被完整发送到云端API进行分析。

skills/smyx_common/scripts/util.py:305
在SKILL.md的'能力范围'部分明确说明:图片/视频会上传至云端API服务器进行分析
低危 敏感访问

本地数据库存储认证凭证

技能在data/smyx-common-claw.db中存储用户的token、open_token等认证信息,用于后续API调用。

skills/smyx_common/scripts/dao.py:28
文档中说明凭证的存储位置和用途,增强透明度
提示 权限提升

内部身份自动生成与复用

技能自动生成User_前缀的内部身份标识,在本地不存在时创建缺省用户,用于API调用身份关联。

skills/smyx_common/scripts/util.py:228
这是正常的身份管理机制,但应向用户说明

声明能力 vs 实际能力

文件系统 通过
声明 READ
→
推断 READ
skills/smyx_analysis/scripts/skill.py:54 open()
网络访问 阻止
声明 READ
→
推断 WRITE
skills/smyx_common/scripts/util.py:305 requests.request() 发送文件到外部API
命令执行 通过
声明 NONE
→
推断 NONE
subprocess调用已被注释,skills/smyx_common/scripts/skill.py:32

可疑产物与外联

中危 外部 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

依赖与供应链

包名版本来源漏洞备注
requests >=2.28.0 pip 否 SKILL.md中声明的依赖
pydash ==8.0.6 requirements.txt 否 版本已锁定
SQLAlchemy ==2.0.46 requirements.txt 否 版本已锁定
yaml/PyYAML 6.0.3 requirements.txt 否 版本已锁定

文件构成

29 个文件 · 2610 行
Python 18 个文件 · 2357 行Markdown 3 个文件 · 218 行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 · 178 行
https://lifeemergence.com/sample.html
其他文件 · config.py · skill.py · smyx_analysis.py · cat_face_recognition_analysis.py · api_service.py · skill.py +3

安全亮点

代码结构清晰,模块化设计良好(smyx_common基础库 + smyx_analysis业务技能)
无高危代码特征:无base64解码、无裸IP请求、无curl|bash管道
API调用使用HTTPS,凭证通过header传递(非URL参数)
subprocess.run调用已被注释排除
文件操作有格式验证和大小限制(最大10MB,支持mp4/avi/mov/jpg/png)
依赖版本锁定(pydash==8.0.6, SQLAlchemy==2.0.46, PyYAML==6.0.3)