安全决策报告

drive-analysis

安全驾驶分析技能,代码结构清晰,仅包含视频分析API调用和本地数据缓存,未发现恶意行为。主要发现为AgentSkill中未声明的subprocess调用,但属于框架基础设施代码,非面向用户功能。

安装决策优先 来源: ClawHub 扫描时间: 2026/4/30
文件 30
IOC 11
越权项 3
发现 3

为什么得出这个结论

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

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

阻止
隐藏执行与外联

提取到 1 个高危 IOC 或外联信号。

通过
攻击链与高危发现

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

复核
依赖与供应链卫生

发现 1 项需要关注的依赖或供应链线索。

风险分是怎么被拉高的

未声明的shell执行功能 +15

AgentSkill.ai_chat()通过subprocess执行openclaw agent,SKILL.md未声明此能力

硬编码占位符凭证 +5

face_analysis/README.md:11 包含API_KEY = "your-api-key-here"

依赖版本未锁定 +5

requirements.txt中pydash/yaml/SQLAlchemy使用精确版本,但smyx_common依赖文件使用通配符*

最关键的证据

中危 文档欺骗

未声明的shell执行能力

AgentSkill.ai_chat()方法通过subprocess执行openclaw agent命令,但SKILL.md声明的能力列表中未包含此功能,属于阴影功能。

skills/smyx_common/scripts/skill.py:52
如该功能为内部框架使用,建议在文档中声明;如不需要建议移除。
低危 凭证窃取

硬编码占位符API密钥

face_analysis/README.md第11行包含占位符凭证字符串 'your-api-key-here',虽为示例但可能造成混淆。

skills/face_analysis/README.md:11
移除或替换为更明确的占位符提示,如【请替换为您的API密钥】
低危 供应链

依赖版本未完全锁定

smyx_common/requirements.txt使用127个依赖,部分使用通配符版本,可能引入供应链风险。

skills/smyx_common/requirements.txt:1
建议将所有依赖版本锁定到具体版本号

声明能力 vs 实际能力

文件系统 通过
声明 READ
→
推断 READ
skills/face_analysis/scripts/face_analysis.py:68 读取本地视频文件
网络访问 通过
声明 READ
→
推断 READ
skills/smyx_common/scripts/util.py:145 发送HTTP请求到API服务器
命令执行 阻止
声明 NONE
→
推断 WRITE
skills/smyx_common/scripts/skill.py:52 subprocess.run执行openclaw命令
数据库 阻止
声明 NONE
→
推断 WRITE
skills/smyx_common/scripts/dao.py:41 创建SQLite数据库存储用户凭证
环境变量 阻止
声明 NONE
→
推断 READ
skills/smyx_common/scripts/config.py:145 读取OPENCLAW_SENDER_OPEN_ID等环境变量

可疑产物与外联

高危 API 密钥
API_KEY = "your-api-key-here"

skills/face_analysis/README.md:11

中危 外部 URL
https://your-api-server.com/api/v1/face-analysis

skills/face_analysis/README.md:10

中危 外部 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://open.lifeemergence.com/smyx-open-api

skills/smyx_common/scripts/config.yaml:7

中危 外部 URL
http://livemonitor.lifeemergence.com

skills/smyx_common/scripts/config.yaml:8

中危 外部 URL
https://lifeemergence.com/jeecg-boot-xzgz

skills/smyx_common/scripts/config.yaml:9

依赖与供应链

包名版本来源漏洞备注
requests 2.32.5 pip 否 主依赖,用于API调用
pydash 8.0.6 pip 否 精确版本锁定
SQLAlchemy 2.0.46 pip 否 精确版本锁定
langchain 1.0.3 pip 否 未锁定次版本,可能有兼容性问题
openai 2.16.0 pip 否 未使用,依赖声明过度

文件构成

30 个文件 · 2690 行
Python 19 个文件 · 2147 行Markdown 4 个文件 · 383 行Text 2 个文件 · 130 行YAML 5 个文件 · 30 行
需关注文件 · 3
skills/face_analysis/README.md Markdown · 86 行
硬编码占位符API密钥 · API_KEY = "your-api-key-here" · https://your-api-server.com/api/v1/face-analysis
skills/smyx_common/scripts/skill.py Python · 82 行
未声明的shell执行能力
skills/smyx_common/requirements.txt Text · 127 行
依赖版本未完全锁定
其他文件 · util.py · SKILL.md · skill.py · dao.py · config.py · drive_analysis.py +3

安全亮点

代码结构清晰,模块化设计良好
未发现反向shell、base64混淆等恶意模式
未发现凭证收割循环或环境变量遍历
网络请求目标为正常业务API域名(lifeemergence.com)
本地数据库仅用于缓存用户会话,非敏感数据外泄
文件操作限定在技能目录内,无越权访问敏感路径
API密钥通过参数传入,非硬编码在执行代码中