Octarq

安全体系

16 层纵深防御 — 独立可测试的安全系统

Octarq 实现纵深防御安全。不依赖单一安全机制,16 个独立系统形成重叠层级,任何一层失败都会被其他层捕获。

安全系统总览

#系统防护目标
1WASM 双重计量沙箱CPU DoS,无限循环
2Merkle 哈希链审计日志篡改
3信息流污点追踪提示注入,数据泄露
4Ed25519 清单签名供应链攻击
5SSRF 防护服务端请求伪造
6密钥零化内存取证,密钥泄露
7OFP 互认证未授权 P2P 连接
8能力门控Agent 越权操作
9安全头XSS,点击劫持,MIME 嗅探
10GCRA 速率限制API 滥用,拒绝服务
11路径遍历防护目录遍历攻击
12子进程沙箱密钥通过子进程泄露
13提示注入扫描恶意技能提示
14循环守卫Agent 工具调用循环
15会话修复LLM 对话历史损坏
16健康端点脱敏信息泄露

能力门控

每个 Agent 操作都需要能力检查。能力在清单中声明,运行时强制执行:

[capabilities]
tools = ["file_read", "file_list", "web_fetch"]
memory_read = ["*"]
memory_write = ["self.*"]
network = ["api.anthropic.com"]
shell = []
agent_spawn = false

能力继承验证 — 子 Agent 的能力必须是父 Agent 的子集,防止权限提升。

WASM 双重计量

不可信 WASM 模块在 Wasmtime 沙箱中运行,同时使用两种计量机制:

  • 燃料计量 (Fuel) — 计算指令数,预算耗尽则终止
  • 纪元中断 (Epoch) — 看门狗线程监控墙钟时间

两者独立运行,即使一个失败,另一个也能终止失控模块。

Merkle 审计链

每个审计条目都包含前一条目的加密哈希。篡改任何一条记录,整个链条都会断裂。

密钥安全

  • 所有 API 密钥字段使用 Zeroizing<String>,drop 时自动从内存擦除
  • 配置中的敏感字段在 Debug 输出和日志中自动脱敏
  • 子进程使用 env_clear() + 选择性变量传递

目录