study-analysis
学习行为分析技能,具有未声明的本地SQLite凭证存储和自动登录功能,但未发现恶意数据外泄行为
为什么得出这个结论
1/4 个维度触发发现 3 项声明之外的能力或越权行为。
提取到 10 个一般风险产物,需要结合上下文判断。
没有形成明确的恶意路径。
依赖结构存在,但暂未看到明显高危告警。
风险分是怎么被拉高的
dao.py创建smyx-common-claw.db存储token/open_token等敏感信息,SKILL.md未声明
AgentContextUtil读取OPENCLAW_SENDER_OPEN_ID、FEISHU_OPEN_ID等平台内部变量
最关键的证据
本地数据库存储用户凭证
dao.py创建本地SQLite数据库smyx-common-claw.db,存储sys_user表包含username、token、open_token等敏感凭证,SKILL.md未声明
skills/smyx_common/scripts/dao.py:91 平台内部环境变量读取
OpenIdUtil和ConstantEnum读取OPENCLAW_SENDER_OPEN_ID、OPENCLAW_SENDER_USERNAME、FEISHU_OPEN_ID等平台内部环境变量,用于身份关联,SKILL.md未提及
skills/smyx_common/scripts/util.py:299 自动登录API调用
RequestUtil.http_request自动调用/sys/phoneLogin接口进行静默登录,传入open_id参数,代码注释掉的默认值ou_86fdd8e0d5f116c18a9dd550abefe6d2未在文档说明
skills/smyx_common/scripts/util.py:214 声明能力 vs 实际能力
dao.py:91 创建SQLite数据库文件 api_service.py HTTP请求到lifeemergence.com 无subprocess调用 util.py:299-301 读取OPENCLAW_SENDER_OPEN_ID等 dao.py:91 create_engine创建本地SQLite 可疑产物与外联
https://lifeemergence.com/sample.html SKILL.md:36
http://192.168.1.234:9601/smyx-open-api skills/smyx_common/scripts/config-dev.yaml:2
http://192.168.1.234:4100 skills/smyx_common/scripts/config-dev.yaml:3
http://192.168.1.234:7070/jeecg-boot-xzgz skills/smyx_common/scripts/config-dev.yaml:4
https://livemonitortest.lifeemergence.com/smyx-open-api skills/smyx_common/scripts/config-test.yaml:2
http://livemonitortest.lifeemergence.com skills/smyx_common/scripts/config-test.yaml:3
https://healthtest.lifeemergence.com/jeecg-boot-xzgz skills/smyx_common/scripts/config-test.yaml:4
https://lifeemergence.com/jeecg-boot-xzgz skills/smyx_common/scripts/config.yaml:4
https://open.lifeemergence.com/smyx-open-api skills/smyx_common/scripts/config.yaml:5
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 | 否 | 版本锁定 |
文件构成
skills/smyx_common/scripts/util.py skills/smyx_common/scripts/dao.py SKILL.md