安全决策报告

smyx-elderly-loneliness-comfort-analysis

独居老人孤独情绪分析技能,功能合法正当,核心风险是用户视频数据会上传至外部API但声明不透明,属于轻微文档缺失。

安装决策优先 来源: ClawHub 扫描时间: 2026/9/13
文件 29
IOC 10
越权项 1
发现 5

为什么得出这个结论

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

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

复核
隐藏执行与外联

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

通过
攻击链与高危发现

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

通过
依赖与供应链卫生

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

风险分是怎么被拉高的

视频数据外传未明确声明 +15

SKILL.md未说明用户视频会上传至https://open.lifeemergence.com处理

权限声明范围合理 +-5

代码实际权限与声明基本一致,无越权操作

依赖版本锁定 +0

pydash==8.0.6, SQLAlchemy==2.0.46版本已锁定

最关键的证据

中危 敏感访问

视频数据上传外部服务器未声明

用户上传的视频文件会通过HTTPS POST到https://open.lifeemergence.com/smyx-open-api和https://lifeemergence.com/jeecg-boot-xzgz进行处理,但SKILL.md未明确声明此数据流向。独居老人居家视频属于高度敏感的个人隐私数据。

skills/smyx_analysis/scripts/skill.py:87
在SKILL.md隐私条款中明确声明:1) 视频会上传至外部API服务器;2) 数据保留期限;3) 数据使用目的
中危 文档欺骗

数据库操作无文档说明

技能在data目录创建SQLite数据库smyx-common-claw.db存储用户凭证(token/open_token/username等),但SKILL.md未提及本地数据存储能力。

skills/smyx_common/scripts/dao.py:82
在SKILL.md资源索引中声明本地数据库存储功能及数据内容
低危 凭证窃取

认证信息持久化存储

UserDao将token、open_token等认证信息明文存储在本地SQLite数据库中,虽为本地存储但存在凭证泄露风险。

skills/smyx_common/scripts/dao.py:430
考虑对存储的token进行加密或使用系统凭证管理器
低危 权限提升

自动创建默认用户

OpenIdUtil会自动生成User_{随机哈希}用户并持久化到数据库,在用户不知情的情况下创建设备标识符。

skills/smyx_common/scripts/util.py:200
在隐私政策中说明自动用户创建行为,或提供退出选项
低危 供应链

配置文件暴露内部凭证占位符

config.yaml中包含APP_ID (x1a3s4nwy1s2r4se)和TENANT_CODE (XIAN_ZHAO_GAN_ZHI)等内部标识符,虽非直接密钥但可能用于追踪或定向攻击。

skills/smyx_common/scripts/config.yaml:5
将内部标识符移至环境变量而非硬编码

声明能力 vs 实际能力

文件系统 通过
声明 READ/WRITE
→
推断 READ/WRITE
scripts/smyx_analysis.py:76 文件读取, scripts/smyx_elderly_loneliness_comfort_analysis.py:84 文件写入
网络访问 通过
声明 READ
→
推断 WRITE
skills/smyx_common/scripts/util.py:RequestUtil.http_request 会POST视频数据到外部API
命令执行 通过
声明 NONE
→
推断 NONE
代码仅通过python -m调用本地脚本,无远程执行
环境变量 通过
声明 NONE
→
推断 READ
skills/smyx_common/scripts/config.py:37 读取OPENCLAW_SENDER_OPEN_ID等环境变量
技能调用 通过
声明 EXECUTE
→
推断 EXECUTE
脚本内部调用skill模块处理分析
数据库 阻止
声明 NONE
→
推断 WRITE
skills/smyx_common/scripts/dao.py 创建smyx-common-claw.db存储用户凭证

可疑产物与外联

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

SKILL.md:34

中危 外部 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 否 版本已锁定,ORM框架安全可靠
PyYAML 6.0.3 pip 否 版本已锁定,使用safe_load防止反序列化漏洞

文件构成

29 个文件 · 2700 行
Python 18 个文件 · 2363 行Markdown 3 个文件 · 302 行YAML 6 个文件 · 29 行Text 2 个文件 · 6 行
需关注文件 · 4
skills/smyx_common/scripts/util.py Python · 718 行
自动创建默认用户
skills/smyx_common/scripts/dao.py Python · 499 行
数据库操作无文档说明 · 认证信息持久化存储
SKILL.md Markdown · 189 行
https://lifeemergence.com/sample.html
skills/smyx_analysis/scripts/skill.py Python · 175 行
视频数据上传外部服务器未声明
其他文件 · config.py · api_doc.md · smyx_analysis.py · smyx_elderly_loneliness_comfort_analysis.py · api_service.py · skill.py +2

安全亮点

代码结构清晰,无恶意混淆或Base64编码执行
无subprocess远程脚本下载执行行为
网络请求使用HTTPS加密传输
依赖版本已锁定,无供应链风险
无eval()或exec()动态代码执行
无访问~/.ssh、~/.aws等敏感路径
功能本身合法正当,用于老年心理健康关怀