安全决策报告

MemOptimizer

MemOptimizer 是合法的记忆优化工具,无恶意行为。存在轻微文档-实现差异(未声明 shell 执行和跨智能体 memory 访问),但均为合理的系统监控功能。

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

为什么得出这个结论

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

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

通过
隐藏执行与外联

当前没有明显的高危外联或执行信号。

通过
攻击链与高危发现

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

复核
依赖与供应链卫生

没有完整依赖信息,供应链判断需要保留弹性。

风险分是怎么被拉高的

未声明的 shell 执行 +10

getServerStatus() 执行 top/free/df 命令获取系统状态,SKILL.md 未提及

未声明的跨智能体访问 +10

scanAllAgentsWorkspaces() 访问 /root/.openclaw/agents/ 下各智能体的 memory 目录,SKILL.md 仅描述单智能体场景

最关键的证据

低危 文档欺骗

Shell 执行未声明

getServerStatus() 函数通过 exec 执行系统命令(top, free, df, uptime)获取服务器状态,用于每日报告。SKILL.md 在「每日总结报告」中提到服务器状态但未说明是通过 shell 命令获取。

index.js:243
在 SKILL.md 中明确说明会执行只读的系统命令来获取服务器监控信息
低危 文档欺骗

跨智能体 memory 访问未声明

scanAllAgentsWorkspaces() 函数会扫描 /root/.openclaw/agents/ 下所有智能体的工作空间,访问其 memory 目录。SKILL.md 主要描述单智能体优化场景,多智能体功能描述较简略。

index.js:314
在 SKILL.md 中明确说明多智能体模式会访问其他智能体的 memory 目录
低危 文档欺骗

tools.json 参数声明不完整

mem_optimize 函数实际支持 multiAgent、message、text、includeReflection 等参数,但 tools.json 仅声明了 dryRun 参数。

tools.json:1
更新 tools.json 声明以匹配实际参数

声明能力 vs 实际能力

文件系统 通过
声明 READ
→
推断 READ
index.js:34 scanMemoryFiles 扫描 memory 目录
命令执行 阻止
声明 NONE
→
推断 READ
index.js:243 getServerStatus 使用 exec 执行 top/free/df 命令
环境变量 通过
声明 NONE
→
推断 NONE
无访问环境变量的代码

可疑产物与外联

没有提取到明显 IOC。

依赖与供应链

没有结构化依赖告警。

文件构成

3 个文件 · 1179 行
JavaScript 1 个文件 · 827 行Markdown 1 个文件 · 302 行JSON 1 个文件 · 50 行
需关注文件 · 2
index.js JavaScript · 827 行
Shell 执行未声明 · 跨智能体 memory 访问未声明
tools.json JSON · 50 行
tools.json 参数声明不完整
其他文件 · SKILL.md

安全亮点

无凭证收割行为,不读取 .ssh、.aws、.env 等敏感路径
无网络外传行为,不存在数据外泄风险
无代码混淆或恶意编码
无持久化后门植入
文件写入仅限 memory 目录且需要 dryRun: false
shell 命令为只读系统监控命令(top/free/df/uptime)
默认 dryRun: true 预览模式保护用户数据