安全决策报告

psychology-analysis

心理健康分析工具包含多项未声明的敏感操作(本地数据库、凭证存储、环境变量读取),存在文档欺骗风险,但核心功能为合法的视频分析服务。

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

为什么得出这个结论

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

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

复核
隐藏执行与外联

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

通过
攻击链与高危发现

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

通过
依赖与供应链卫生

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

风险分是怎么被拉高的

文档-行为差异 +20

SKILL.md未声明SQLite数据库操作、data/smyx-api-key.txt文件读取、凭证存储等敏感行为

环境变量读取 +10

代码读取OPENCLAW_SENDER_OPEN_ID等环境变量,未在文档中声明

数据库操作 +10

创建并操作SQLite数据库存储用户token/open_token,未声明

合法功能无越权 +-5

核心视频分析功能正常,无RCE、凭证外泄等恶意行为

最关键的证据

中危 文档欺骗

未声明的本地数据库操作

技能在 data 目录下创建 SQLite 数据库 smyx-common-claw.db,存储用户的 username、token、open_token 等敏感凭证。SKILL.md 未声明此数据库操作。

skills/smyx_common/scripts/dao.py:68
在 SKILL.md 的资源索引部分声明数据库操作及其用途
中危 文档欺骗

未声明的敏感文件读取

OpenIdUtil 从 data/smyx-api-key.txt 读取 API 密钥,SKILL.md 未声明此文件访问行为。

skills/smyx_common/scripts/util.py:237
在文档中说明凭证文件的读取方式和安全存储
中危 文档欺骗

未声明的环境变量读取

ConstantEnum.init() 读取 OPENCLAW_SENDER_OPEN_ID、OPENCLAW_SENDER_USERNAME、FEISHU_OPEN_ID 等环境变量,SKILL.md 未声明。

skills/smyx_common/scripts/config.py:107
在文档中声明所需的环境变量及其用途
低危 敏感访问

工作区路径检测算法

AgentContextUtil.detect_current_agent_workspace() 实现了复杂的工作区检测逻辑,涉及 agent_id 追踪,代码复杂度过高但无明显恶意。

skills/smyx_common/scripts/util.py:109
简化工作区检测逻辑,减少攻击面

声明能力 vs 实际能力

文件系统 阻止
声明 NONE
→
推断 READ
skills/smyx_common/scripts/util.py:237 smyx-api-key.txt
文件系统 阻止
声明 NONE
→
推断 WRITE
skills/smyx_common/scripts/dao.py:68 SQLite数据库创建
环境变量 阻止
声明 NONE
→
推断 READ
skills/smyx_common/scripts/config.py:107 环境变量读取
数据库 阻止
声明 NONE
→
推断 WRITE
skills/smyx_common/scripts/dao.py 完整的CRUD操作
网络访问 通过
声明 READ
→
推断 READ
scripts/psychology_analysis.py API调用

可疑产物与外联

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

SKILL.md:37

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

skill-card.md:9

中危 外部 URL
https://clawhub.ai/smyx-sunjinhui/skills/smyx-psychology-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

依赖与供应链

包名版本来源漏洞备注
requests >=2.28.0 pip 否 版本要求宽松
sqlalchemy 未声明 import 否 依赖未在 requirements 中声明
pydash 未声明 import 否 try/except 兼容处理
pyyaml 未声明 import 否 用于配置加载

文件构成

31 个文件 · 2812 行
Python 18 个文件 · 2490 行Markdown 4 个文件 · 282 行YAML 6 个文件 · 29 行Text 2 个文件 · 6 行JSON 1 个文件 · 5 行
需关注文件 · 5
skills/smyx_common/scripts/util.py Python · 718 行
未声明的敏感文件读取 · 工作区路径检测算法
skills/smyx_common/scripts/config.py Python · 399 行
未声明的环境变量读取
skills/smyx_common/scripts/dao.py Python · 499 行
未声明的本地数据库操作
SKILL.md Markdown · 183 行
https://lifeemergence.com/sample.html
skill-card.md Markdown · 59 行
https://clawhub.ai/user/smyx-sunjinhui · https://clawhub.ai/smyx-sunjinhui/skills/smyx-psychology-analysis
其他文件 · psychology_analysis.py · skill.py · smyx_analysis.py · api_service.py · skill.py · api_service.py +1

安全亮点

核心功能为合法的心理健康视频分析,无 RCE 或反向 shell
网络请求仅用于调用云端 API,无外部 IP 直连或 C2 通信
无 base64/bash 管道、裸 IP 请求等混淆技术
依赖版本有声明(requests>=2.28.0)
未访问 ~/.ssh、~/.aws、.env 等高风险敏感路径