安全指南

LibreFang 采用深度防御策略,包含 16 个独立可测试的安全层。


16 层安全系统

#系统功能
1WASM 双计量沙箱工具代码在 WebAssembly 中运行,带燃料计量和时代中断。看门狗线程杀死失控代码。
2Merkle 哈希链审计追踪每个操作加密链接到前一个。篡改一个条目整个链断裂。
3信息流污点追踪标签在执行中传播——敏感信息从源跟踪到汇。
4Ed25519 签名 Agent 清单每个 agent 身份和能力集加密签名。
5SSRF 保护阻止私有 IP、云元数据端点和 DNS 重新绑定攻击。
6Secret 零化Zeroizing<String> 在密钥不再需要时立即从内存中擦除。
7OFP 双向认证基于 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路径遍历防护规范化带符号链接转义防止。../ 在这里不工作。
16GCRA 速率限制器成本感知的令牌桶速率限制,带每 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"]

最佳实践

  1. 不要在配置文件中存储密钥 - 使用环境变量
  2. 限制 agent 能力 - 只授予必要的工具
  3. 启用通道访问控制 - 限制谁可以与 agent 交互
  4. 定期审计 - 使用 librefang doctor 检查配置
  5. 保持更新 - 及时更新到最新版本

报告安全漏洞

请通过私人渠道报告安全漏洞:

参考 SECURITY.md 了解详细的报告流程。