目录

MnemoGuard

记忆有界,遗忘有据。

作品简介

MnemoGuard 面向 openKylin 上的智能体记忆安全问题,探索一种“敏感记忆识别、精准保护、内核级阻断、结构化审计”的操作系统安全机制。

系统当前包含多个核心模块、多个 OS/性能实验模块和一个端到端演示模块:

  • src/v2_bpf_map_lsm/:基于 BPF-LSM 的动态文件访问阻断原型,用户态通过 BPF map 下发保护规则,内核态在 file_open 路径执行访问控制。
  • src/v3_sensitive_detector/:敏感内容检测器,扫描智能体记忆文件,生成脱敏规则清单和 BPF 可加载规则。
  • src/v4_audit_ringbuf/:结构化审计模块,在阻断发生时通过 BPF ringbuf 向用户态发送事件,并写入 JSONL 与系统日志。
  • src/v5_precise_forget/:精准遗忘原型,将自然语言样式遗忘指令转化为 forgetting plan、BPF 规则、脱敏动作和 JSONL 审计。
  • src/v6_inode_dev_lsm/:inode/dev 级 BPF-LSM 规则,避免 basename 同名文件误伤,并正确阻断同 inode hardlink。
  • src/v7_performance_benchmark/:性能微基准,测量 baseline、BPF map miss、deny + audit 和 1000 条规则场景下的 open 延迟。
  • src/v8_memory_core/:多源记忆核心,支持偏好提取、知识结构化、冲突处理、跨语言检索、RAG 上下文、短/中/长期记忆流转、v11 mmap 版本化存储导出和量化评测。
  • src/v9_end_to_end_demo/:端到端联动演示,将 v8 MemoryCore、v5 精准遗忘和 v6 inode/dev BPF-LSM 串成完整链路。
  • src/v10_cgroup_resource_control/:cgroup v2 资源管控实验,将 MemoryCore workload 放入受限 cgroup 并采样 CPU/内存/PID 指标。
  • src/v11_mmap_versioned_store/:基于 mmap 的版本化记忆存储实验,验证页缓存 + CoW 风格快照。
  • src/v12_namespace_session_isolation/:namespace 多会话隔离实验,验证相同逻辑记忆路径可映射到不同会话根目录,并拒绝跨会话读取。
  • src/v13_ukui_dbus_integration/:UKUI/D-Bus 桌面联动原型,生成 Peony 右键动作、D-Bus 接口描述和脱敏通知 payload。
  • src/v14_mnemoguardd_daemon/mnemoguardd 用户态 daemon 控制面原型,统一处理记入偏好、精准遗忘、策略解释、检索上下文和桌面事件,并输出 checkpoint、heartbeat、PID 与 systemd user unit。
  • src/v15_scale_reliability_benchmark/:daemon 规模与可靠性压测,验证大队列处理、checkpoint 恢复、无重放、并发追加和审计完整性。
  • src/v16_inode_precision_benchmark/:inode/dev 精准规则基准,对比 basename/path/inode-dev 三类策略在同名碰撞、hardlink、rename 和路径复用场景下的误伤/漏挡。
  • src/v17_hash_chain_audit/:哈希链审计完整性基准,为 JSONL 审计增加 prev_hash / record_hash 与 manifest root,验证修改、删除、重排和删除后重算链均可检测。

当前冠军叙事主线已经收敛为:

  • v8:多源记忆核心,负责偏好/知识/RAG/评测。
  • v5:自然语言样式精准遗忘,负责敏感记忆闭环。
  • v6:inode/dev 级规则,负责去除 basename 同名误伤。
  • v10:cgroup v2 资源管控,负责 OS 级资源边界。
  • v11:mmap 版本化存储,负责页缓存 + 版本快照 + 回溯审计。
  • v12:namespace 会话隔离,负责多用户/多会话记忆空间边界。
  • v13:UKUI/D-Bus 联动,负责 openKylin 桌面入口和用户可见操作闭环。
  • v14:mnemoguardd daemon,负责把 v8/v11/v12/v13 统一成可服务化控制面,提供 bounded --serve 生命周期证据。
  • v15:scale/reliability benchmark,负责证明控制面不是“5 条命令 demo”,而是可恢复、可扩展、可复跑的工程化服务骨架。
  • v16:inode/dev precision benchmark,负责把 v6 的 OS 级文件身份规则量化成 0 误伤、0 漏挡、hardlink/rename 可追踪、路径复用不误伤的抗追问证据。
  • v17:hash-chain audit benchmark,负责把审计证据从“写入 JSONL”推进到“篡改可检测”,覆盖修改、删除、重排和重算链攻击。

运行环境

建议环境:

  • openKylin 2.0 SP2 或兼容 Linux 发行版。
  • 内核启用 BPF、BTF 与 BPF-LSM 能力。
  • clangllvmbpftoollibbpflibelfzlib
  • Python 3.8+。

示例依赖安装命令需根据实际系统包名调整:

sudo apt update
sudo apt install -y clang llvm bpftool libbpf-dev libelf-dev zlib1g-dev make gcc python3

快速验证

0. openKylin VM 一键拉包复跑

若在 openKylin VM 中从 Windows 主机 HTTP 服务拉取最新演示包,可执行:

curl -fsSL http://192.168.75.1:39000/openkylin_fetch_and_run_champion.sh | bash

该脚本会备份旧的 ~/mnemoguard/champion_demo、下载 LF 修复版总验收包、执行 scripts/run_champion_demo.sh,并打印 all_gates_passed。 运行成功后会生成 run/champion_demo/openkylin_rerun_evidence.md,用于保存脱敏的 openKylin 复跑环境、包哈希和关键指标。

1. 构建 BPF-LSM 审计版

cd src/v4_audit_ringbuf
bash build.sh

2. 准备样例文件

mkdir -p run/demo
printf 'email=redacted@example.invalid\npassword=SYNTHETIC_DEMO_SECRET\n' > run/demo/agent-memory.txt
printf 'ordinary public notes\n' > run/demo/allowed.txt

3. 启动内核保护与审计

sudo ./redact --audit-log "$PWD/run/audit.jsonl" agent-memory.txt

在另一个终端触发访问:

cd src/v4_audit_ringbuf
cat run/demo/agent-memory.txt
printf 'tamper\n' >> run/demo/agent-memory.txt
cat run/demo/allowed.txt
cat run/audit.jsonl
journalctl -t mnemoguard --no-pager -n 20
sudo grep 'MnemoGuard v4' /sys/kernel/debug/tracing/trace | tail -n 20

预期现象:

  • 访问受保护的 agent-memory.txt 返回权限错误。
  • 普通文件 allowed.txt 正常读取。
  • JSONL、系统日志、kernel trace 中出现阻断审计记录。

初赛提交材料

本仓库根目录应同时提供:

  • README.md
  • 项目说明书.docx
  • 演示PPT.pptx
  • 参赛承诺书.docx
  • video/mnemo_demo.mp4:3 分 52 秒,约 6.7MB,MP4 格式。
  • video/演示视频脚本.md:视频录制/复核脚本。
  • screenshots/:10 张脱敏证据图,覆盖 v8/v5/v6/v10/v11/v12/v13/v14/v15/champion demo。
  • docs/GitLink提交与匿名化手册.md:入仓、分批提交、作者匿名化和人工复核指南。
  • docs/现场演示备用方案.md:现场演示失败时的分模块备用路径和答辩口径。
  • docs/需求完成度审计.md:逐条映射赛题要求、现有证据和原型边界。
  • docs/技术创新对比表.md:对比应用层正则、chmod、加密数据库等常见方案。
  • docs/评委追问速答卡.md:答辩前快速复习用的一页式问答卡。
  • docs/决赛现场5分钟讲稿.md:现场答辩/路演口播稿。
  • docs/评委问答演练稿.md:连续追问演练稿。
  • docs/截图证据索引与匿名化说明.md:openKylin 原始截图证据索引和脱敏提交原则。

所有材料必须保持匿名化,仅出现参赛队名与所选赛题名称,不出现可识别身份信息、真实人员姓名或真实单位邮箱等内容。

项目状态

当前已完成:

  • BPF-LSM 文件访问阻断原型。
  • 动态 BPF map 规则加载。
  • 敏感内容自动检测与脱敏规则生成。
  • 内核阻断事件结构化审计。
  • 自然语言样式精准遗忘计划、脱敏执行和审计原型。
  • inode/dev 级文件身份规则,验证同名文件不误伤。
  • open 路径性能微基准。
  • 多源偏好与知识记忆 MemoryCore 初版。
  • 短期/中期/长期记忆分层流转原型。
  • v8 MemoryCore 输出接入 v11 mmap 版本化存储原型。
  • v12 namespace 多会话隔离原型。
  • v13 UKUI/D-Bus 桌面联动原型。
  • v14 mnemoguardd daemon 控制面原型。
  • v15 规模与可靠性压测原型。
  • v16 inode/dev 精准规则量化基准。
  • v17 哈希链审计完整性基准。
  • v8/v5/v6 端到端联动演示。
  • cgroup v2 资源管控实验。
  • 冠军版端到端演示脚本。
  • openKylin 环境下的功能验证。
  • mmap 版本化记忆存储原型。
  • 3-5 分钟演示视频成片。
  • GitLink 入仓与匿名化手册。
  • 现场演示备用方案。
  • 需求完成度审计、技术创新对比表与评委追问速答卡。
  • 决赛现场 5 分钟讲稿与评委问答演练稿。
  • 截图证据索引与匿名化说明。
  • 10 张脱敏实验截图成品。

计划增强:

  • 持续补充更多 openKylin 真实场景截图与决赛级系统化实验。
关于
251.8 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号