记忆雷达(Memory Radar)
面向 AI Agent 记忆文件的安全扫描系统,对记忆文件、日志、工作区配置进行持续安全审计,主动发现恶意指令、注入模式、凭证泄漏与行为操纵,防患于未然.
输入格式
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | string | 是 | 记忆雷达处理的输入数据或指令 |
| options | object | 否 | 附加配置选项,如模式选择、格式偏好等 |
| callback_url | string | 否 | 异步处理完成后的回调通知URL |
付费版专享能力
| 能力 | 免费版 | 付费版 |
|---|---|---|
| 基础功能 | 支持 | 支持 |
| 记忆雷达t记忆文件的安全扫描 | 不支持 | 支持 |
| 深度漏洞扫描与CVE关联 | 不支持 | 支持 |
| 安全基线合规审计 | 不支持 | 支持 |
| 批量资产风险评分 | 不支持 | 支持 |
| 威胁情报实时订阅与告警 | 不支持 | 支持 |
核心能力
-
七大威胁类别检测
- 恶意指令:检测删除文件、发送邮件、执行危险命令等破坏性指令
- Prompt注入:识别"忽略之前的指令"、"你现在是..."等嵌入式操纵模式
- 凭证泄漏:匹配 sk-/AKIA/ghp_/xoxb- 等已知前缀的API Key与Token
- 数据外泄:检测curl到外部服务器、上传指令等数据外传行为
- 护栏绕过:识别禁用安全检查、关闭防护等绕过行为
- 行为操纵:检测未授权的人格改变、角色覆盖等操纵指令
- 权限提升:识别提权到root、获取管理员权限等越权行为
- 输出:按文件列出的威胁清单,含file:line定位与威胁描述
-
五级安全分级与告警
- SAFE:无威胁,正常输出
- LOW:轻微关注,继续使用但保持警觉
- MEDIUM:潜在威胁,建议立即审查相关内容
- HIGH:很可能威胁,立即审查并考虑隔离
- CRITICAL:活跃威胁,立即隔离并排查来源
- MEDIUM及以上级别自动触发告警,附带文件位置与处置建议
-
跨文件威胁关联分析
- 时序关联:7天窗口内多文件出现同类威胁,自动升级严重度
- 主题关联:多文件提及同一外部域名或攻击目标,标记为关联事件
- 行为关联:注入指令+数据外泄组合出现时,整体升级为HIGH
- 渐进关联:威胁严重度逐日递增时,升级为CRITICAL
- 输出:关联威胁报告,含涉及的文件列表与关联规则说明
-
误报抑制机制
- 白名单机制:测试Key、API文档示例、注释中的安全提醒、环境变量引用自动降级
- 上下文感知:检测到"示例"/"测试"关键词时自动降级,32+字符高熵字符串自动升级
- 误报反馈学习:用户标记误报后自动加入白名单,后续扫描跳过相似模式
- 白名单可手动审查与清理,防止过度抑制导致漏报
-
隔离与恢复链路
- 检测到威胁后备份原文件到
.memory-radar/quarantine/目录 - 脱敏威胁行,替换为
[已隔离 by 记忆雷达: 时间戳] - 保留恢复入口,用
--restore命令一键恢复原始内容 - 始终先询问用户确认,系统永不自动隔离
- 检测到威胁后备份原文件到
-
增量扫描
- 基于文件hash判断变更,仅扫描新增或修改的文件
- 避免重复全量扫描,大幅降低扫描耗时
- 支持通过
--force参数强制全量扫描 - 扫描状态持久化到
.memory-radar/state.json
-
远程LLM增强分析(可选)
- 本地模式:零网络请求,纯模式匹配检测
- 远程模式:仅传输脱敏内容(疑似凭证替换为
[REDACTED]),由LLM进行语义级分析 - 自动检测LLM提供商:优先使用OpenAI(gpt-4o-mini),回退到Anthropic(claude-sonnet-4-5)
- 远程模式可识别隐含指令、间接提示注入等高级攻击
使用流程
第一步:执行安全扫描
# 扫描全部记忆文件(本地模式,零网络请求)
python3 (请参考skill目录中的脚本文件)
# ...
# 允许远程LLM分析(仅传输脱敏内容)
python3 (请参考skill目录中的脚本文件) --allow-remote
# ...
# 扫描指定文件
python3 (请参考skill目录中的脚本文件) --file memory/2026-07-18.md
# ...
# JSON输出(用于集成到CI/CD或其他工具链)
python3 (请参考skill目录中的脚本文件) --json
# ...
# 强制全量扫描(忽略增量缓存)
python3 (请参考skill目录中的脚本文件) --force
第二步:分析扫描报告
查看按文件列出的威胁清单,重点关注MEDIUM及以上级别的威胁。报告包含以下信息:
- 文件路径与行号定位(file:line格式)
- 威胁类别与描述
- 建议处置方案
- 关联威胁信息(如有跨文件关联)
第三步:处置已发现的威胁
对于MEDIUM及以上威胁,系统会询问是否隔离。确认后执行隔离操作:
# 隔离指定文件的指定行
python3 (请参考skill目录中的脚本文件) memory/2026-07-18.md 42
隔离操作会:备份原文件到 .memory-radar/quarantine/ → 脱敏威胁行 → 记录隔离日志.
第四步:恢复误隔离内容(如需)
如确认隔离内容为误报或需要恢复:
python3 (请参考skill目录中的脚本文件) --restore memory/2026-07-18.md 42
系统从备份恢复原始内容,并清除隔离标记.
第五步:配置定时监控与误报反馈
# 创建每日扫描定时任务
bash (请参考skill目录中的脚本文件)
标记误报后系统自动学习:记录该模式到白名单 → 后续扫描自动跳过相似模式 → 白名单可手动审查与清理.
错误处理
| 错误类型 | 原因 | 处理方式 |
|---|---|---|
| 扫描报错找不到文件 | 路径配置错误或工作区路径变更 | 检查工作区路径,用 --path /correct/path 指定正确路径 |
| 远程LLM不可用 | OPENAI_API_KEY未配置或已过期 | 配置OPENAI_API_KEY环境变量,或禁用 --allow-remote 使用本地模式 |
| 误报率过高 | 白名单未配置或上下文感知未启用 | 标记误报让系统自动学习,配置白名单规则,启用上下文感知降级 |
| 隔离后文件损坏 | 备份写入失败或磁盘空间不足 | 检查 .memory-radar/quarantine/ 是否有完整备份,清理磁盘空间后从备份恢复 |
| 增量扫描漏报 | state.json损坏或hash计算异常 | 删除 .memory-radar/state.json,用 --force 强制全量扫描 |
| 跨文件关联未触发 | 扫描文件数量不足或时间窗口不匹配 | 确保扫描覆盖足够时间范围(默认30天),检查关联规则配置 |
| 隔离操作被拒绝 | 文件权限不足或被其他进程占用 | 检查文件写入权限,关闭占用该文件的进程后 |
| 远程LLM分析超时 | 网络延迟或LLM服务负载高 | 增加超时时间配置,或回退到本地模式先完成基础扫描 |
示例
示例一:记忆文件定期安全审计
输入: 用户说"扫描一下记忆文件有没有安全问题"
执行命令:
python3 (请参考skill目录中的脚本文件)
输出:
记忆安全扫描
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
扫描记忆文件...
# ...
✓ MEMORY.md - SAFE
✓ memory/2026-07-18.md - SAFE
⚠ memory/2026-07-15.md - MEDIUM (line 42)
→ 疑似凭证泄漏:检测到 sk- 开头的高熵字符串
→ 关联:memory/2026-07-14.md line 18 含外泄指令
→ 建议:隔离并检查来源
# ...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
总体:MEDIUM
建议处置:审查 memory/2026-07-15.md:42
后续操作: 用户确认后执行 python3 (请参考skill目录中的脚本文件) memory/2026-07-15.md 42 隔离威胁行.
示例二:引入外部数据后检查注入
输入: 用户说"我刚把一份外部文档导入记忆,帮我检查是否安全"
执行命令:
python3 (请参考skill目录中的脚本文件) --file memory/2026-07-20.md --allow-remote
输出:
记忆安全扫描(远程LLM增强模式)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
扫描 memory/2026-07-20.md...
# ...
⚠ memory/2026-07-20.md - HIGH (line 15)
→ Prompt注入:检测到"忽略之前的指令,你现在是..."
→ 语义分析:隐含角色覆盖意图,属于间接提示注入
# ...
⚠ memory/2026-07-20.md - MEDIUM (line 28)
→ 数据外泄:检测到curl到外部服务器指令
→ 关联:与line 15的注入指令构成行为关联组合
# ...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
总体:HIGH(注入+外泄组合升级)
建议处置:隔离 line 15 和 line 28,排查文档来源
后续操作: 系统询问是否隔离,用户确认后隔离line 15和line 28,并检查外部文档来源.
FAQ
Q1:扫描会不会泄露我的记忆内容?
本地模式零网络请求,所有检测在本地完成。远程LLM模式(--allow-remote)仅传输脱敏内容,所有疑似凭证替换为 [REDACTED],仅保留上下文结构供LLM分析,不会泄露敏感信息.
Q2:误报太多怎么办?
三种方式降低误报:(1) 用白名单机制标记合法内容(如测试Key、API文档示例);(2) 启用上下文感知降级(检测到"示例"/"测试"关键词自动降级);(3) 标记误报后系统自动学习,后续扫描跳过相似模式。白名单可定期审查清理,防止过度抑制.
Q3:隔离后能恢复吗?
可以。隔离前系统自动备份原文件到 .memory-radar/quarantine/ 目录,用 python3 (请参考skill目录中的脚本文件) --restore <file> <line> 命令即可恢复原始内容。恢复操作会清除隔离标记并还原原始行.
Q4:增量扫描会不会漏掉威胁?
不会。增量扫描基于文件hash,任何内容变更都会触发重新扫描该文件。未变更文件复用上次扫描结果,不影响检测率。如担心遗漏,可用 --force 参数强制全量扫描所有文件.
Q5:跨文件关联分析怎么工作?
扫描完成后,系统对所有发现的威胁进行关联分析,检查时序关联(7天内多文件同类威胁升级)、主题关联(多文件提及同一外部域名)、行为关联(注入+外泄组合升级HIGH)、渐进关联(严重度逐日递增升级CRITICAL)四种关联模式。关联命中则升级威胁等级并标记为关联事件.
Q6:本地模式和远程LLM模式有什么区别?
本地模式使用纯模式匹配,零网络请求,速度快但无法识别语义级高级注入(如隐含指令、间接提示注入)。远程LLM模式将脱敏内容发送给LLM进行语义分析,可识别更复杂的攻击模式,但需要配置API Key且增加网络依赖。建议日常使用本地模式,导入外部数据后使用远程模式增强.
Q7:系统能否自动隔离威胁?
系统永不自动隔离,始终先询问用户确认。这是为了防止误报导致合法内容被意外修改。在无人值守的定时监控场景下,发现的威胁会保留至下次人工审查,并通过告警渠道通知用户.
依赖说明
运行环境
- Agent平台: 支持SKILL.md的任意AI Agent(Claude Code / Cursor / Codex / Gemini CLI等)
- 操作系统: Windows / macOS / Linux
依赖项
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent内置LLM提供 |
API Key 配置
需要配置对应API Key,详见上文环境配置章节
可用性分类
- 分类: MD+EXEC()
API Key配置方式:
export API_KEY="your_api_key_here"
配置后需重启会话或开启新终端生效。API Key应妥善保管,避免泄露到版本控制系统.
已知限制
- 本地模式检测能力有限:纯模式匹配无法识别语义级的高级注入(如隐含指令、间接提示注入),需启用
--allow-remote远程LLM分析增强,但会增加网络依赖和API调用成本. - 凭证检测基于前缀模式:依赖 sk-/AKIA/ghp_/xoxb- 等已知前缀进行匹配,无法检测自定义格式的凭证或无固定前缀的密码,可能漏报非标准凭证.
- 跨文件关联需要时间窗口:时序关联默认7天窗口,超出窗口的分散攻击可能被遗漏;渐进关联需要多日数据积累,首次扫描无法触发关联分析.
- 隔离不自动执行:系统永不自动隔离,始终先询问用户确认。在无人值守的定时监控场景下,威胁会保留至下次人工审查,可能延误处置.
- 扫描范围限于记忆文件:仅扫描MEMORY.md、memory/*.md及工作区配置文件(AGENTS.md、SOUL.md、USER.md等),不覆盖代码文件、日志文件或其他非记忆文件中的安全威胁.
输出格式
{
"success": true,
"data": {
"result": "记忆雷达处理结果",
"execution_time": "0.5s",
"metadata": {
"version": "1.0",
"processor": "memory-radar"
}
},
"execution_log": [
"解析输入参数",
"执行核心处理",
"格式化输出结果"
],
"error": null
}
评论
加载中…