安全决策报告

smyx-elderly-medication-compliance-analysis

功能合法的老年服药监控技能,但存在影子凭证收集机制:自动读取/创建用户标识符、存储token至本地SQLite数据库、访问系统环境变量获取身份信息,云端数据流未完全在SKILL.md中声明。

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

为什么得出这个结论

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

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

复核
隐藏执行与外联

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

通过
攻击链与高危发现

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

通过
依赖与供应链卫生

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

风险分是怎么被拉高的

影子凭证管理 +15

OpenIdUtil自动读取/创建smyx-api-key.txt中的用户标识符,未在SKILL.md声明

本地数据库存储认证信息 +10

dao.py将token/open_token存入本地SQLite,文档未明确说明

自动用户注册 +10

util.py中_get_or_create_user自动调用/jeecg-boot-xzgz接口注册用户

环境变量身份读取 +5

config.py读取OPENCLAW_SENDER_OPEN_ID等环境变量

视频数据云端外传 +5

SKILL.md已声明但缺少数据保留说明

最关键的证据

中危 凭证窃取

影子凭证收集机制

OpenIdUtil.get_api_key_file_open_id()自动读取data/smyx-api-key.txt中的内部标识符作为用户身份,SKILL.md未声明此机制

skills/smyx_common/scripts/util.py:290
在SKILL.md明确说明内部身份标识的来源和使用方式
中危 敏感访问

自动用户创建与注册

_get_or_create_user()通过POST /sys/phoneLogin接口自动注册用户,包括从username提取手机号逻辑

skills/smyx_common/scripts/util.py:200
确认此自动注册行为是否为系统架构必需
中危 敏感访问

环境变量身份读取

config.py从环境变量读取OPENCLAW_SENDER_OPEN_ID、OPENCLAW_SENDER_USERNAME、FEISHU_OPEN_ID作为身份标识

skills/smyx_common/scripts/config.py:180
明确说明读取哪些环境变量及其用途
低危 数据外泄

视频数据云端外传

用户视频上传至lifeemergence.com服务器处理,skill-card.md有提及但缺少数据保留期说明

skills/smyx_analysis/scripts/skill.py:100
补充数据保留、删除和访问控制策略
低危 供应链

第三方依赖无版本锁定

pydash==8.0.6、SQLAlchemy==2.0.46等依赖未发现已知漏洞,但建议锁定次要版本

skills/smyx_common/requirements.txt:1
依赖管理符合常规实践,可保持现状

声明能力 vs 实际能力

文件系统 通过
声明 NONE
→
推断 READ
skills/smyx_analysis/scripts/skill.py:82 open(input_path, 'rb')
网络访问 通过
声明 NONE
→
推断 WRITE
skills/smyx_common/scripts/util.py:180 requests.post上传视频/凭证到外部API
环境变量 阻止
声明 NONE
→
推断 READ
skills/smyx_common/scripts/config.py:180 读取OPENCLAW_SENDER_OPEN_ID等
数据库 通过
声明 NONE
→
推断 WRITE
skills/smyx_common/scripts/dao.py:50 存储token/open_token到SQLite

可疑产物与外联

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

SKILL.md:34

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

skill-card.md:9

中危 外部 URL
https://clawhub.ai/18072937735/skills/smyx-elderly-medication-compliance-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 否 ORM库
PyYAML 6.0.3 pip 否 配置解析

文件构成

30 个文件 · 2708 行
Python 18 个文件 · 2363 行Markdown 4 个文件 · 310 行YAML 6 个文件 · 29 行Text 2 个文件 · 6 行
需关注文件 · 5
skills/smyx_common/scripts/util.py Python · 718 行
影子凭证收集机制 · 自动用户创建与注册
skills/smyx_common/scripts/config.py Python · 399 行
环境变量身份读取
SKILL.md Markdown · 177 行
https://lifeemergence.com/sample.html
skills/smyx_analysis/scripts/skill.py Python · 175 行
视频数据云端外传
skill-card.md Markdown · 59 行
https://clawhub.ai/user/18072937735 · https://clawhub.ai/18072937735/skills/smyx-elderly-medication-compliance-analysis
其他文件 · dao.py · smyx_analysis.py · smyx_elderly_medication_compliance_analysis.py · api_service.py · skill.py · api_doc.md +1

安全亮点

技能功能与文档描述一致,核心功能为合法的老年服药监控
无反向shell、命令注入等主动攻击代码
无base64编码执行、eval等混淆行为
未访问~/.ssh、.env等典型敏感凭证路径
本地数据库路径重定向至workspace/data目录,符合沙箱规范