安全指南
LibreFang 采用深度防御策略,包含 16 个独立可测试的安全层。
16 层安全系统
| # | 系统 | 功能 |
|---|---|---|
| 1 | WASM 双计量沙箱 | 工具代码在 WebAssembly 中运行,带燃料计量和时代中断。看门狗线程杀死失控代码。 |
| 2 | Merkle 哈希链审计追踪 | 每个操作加密链接到前一个。篡改一个条目整个链断裂。 |
| 3 | 信息流污点追踪 | 标签在执行中传播——敏感信息从源跟踪到汇。 |
| 4 | Ed25519 签名 Agent 清单 | 每个 agent 身份和能力集加密签名。 |
| 5 | SSRF 保护 | 阻止私有 IP、云元数据端点和 DNS 重新绑定攻击。 |
| 6 | Secret 零化 | Zeroizing<String> 在密钥不再需要时立即从内存中擦除。 |
| 7 | OFP 双向认证 | 基于 HMAC-SHA256 nonce 的 P2P 网络验证,常数时间验证。 |
| 8 | 能力门 | 基于角色的访问控制——agent 声明所需工具,内核强制执行。 |
| 9 | 安全头 | CSP、X-Frame-Options、HSTS、X-Content-Type-Options 每个响应。 |
| 10 | 健康端点重写 | 公共健康检查返回最小信息。完整诊断需要认证。 |
| 11 | 子进程沙箱 | env_clear() + 选择性变量传递。进程树隔离,跨平台 kill。 |
| 12 | 提示注入扫描器 | 检测技能中的覆盖尝试、数据外泄模式、shell 引用注入。 |
| 13 | 循环守卫 | SHA256 工具循环检测,带熔断器。处理乒乓模式。 |
| 14 | 会话修复 | 7 阶段消息历史验证和自动从损坏中恢复。 |
| 15 | 路径遍历防护 | 规范化带符号链接转义防止。../ 在这里不工作。 |
| 16 | GCRA 速率限制器 | 成本感知的令牌桶速率限制,带每 IP 追踪和陈旧清理。 |
核心安全概念
能力模型
Agent 必须声明其所需的能力:
[capabilities]
tools = ["file_read", "web_fetch"]
network = ["example.com"]
memory_read = ["self.*"]
memory_write = ["self.*"]
agent_spawn = false
污点追踪
敏感信息被标记并在整个执行过程中追踪:
- API 密钥被标记为污点
- 污点标签在函数调用间传播
- 敏感数据不能写入日志或非安全存储
审计追踪
每个操作记录在 Merkle 哈希链中:
// 操作被链接到链中
chain.append(operation_hash);
安全配置
API 认证
api_key = "your-bearer-token"
网络配置
[network]
listen_addr = "127.0.0.1:4200"
shared_secret = "your-secret"
通道访问控制
[telegram]
allowed_users = ["user_id_1", "user_id_2"]
最佳实践
- 不要在配置文件中存储密钥 - 使用环境变量
- 限制 agent 能力 - 只授予必要的工具
- 启用通道访问控制 - 限制谁可以与 agent 交互
- 定期审计 - 使用
librefang doctor检查配置 - 保持更新 - 及时更新到最新版本
报告安全漏洞
请通过私人渠道报告安全漏洞:
参考 SECURITY.md 了解详细的报告流程。