安全架构
设计原则:默认安全,按需增强。遵循 VS Code 工作区信任模型:将操作限制在本地,升级能力时明确提示,由用户在理解风险后解锁。
理念
AcaClaw 面向非安全专家的科研用户。安全模型应满足:
- 安全时无感 — 标准本地使用应顺畅
- 升级时醒目 — 任何扩大攻击面的操作必须有可见提示
- 默认关闭危险能力 — 危险能力默认禁用,需主动开启
- 分层而非二元 — 安全是一组可独立调节的控制
- 对齐 VS Code — 工作区信任模型成熟且足够
安全的两个维度
| 维度 | 保护对象 | 示例 |
|---|---|---|
| 数据安全 | 文件、科研数据、实验结果 | 误删、覆盖、损坏 |
| 信息安全 | 凭据、API 密钥、个人信息、科研 IP | 凭据泄露、数据外泄、会话劫持 |
安全层级
AcaClaw 提供三个层级,从便利到隔离递增:层级 1 本地工作区(默认) 在内;层级 2 远程访问 在中间(可选);层级 3 Docker 沙箱 在外(可选)。
各层级概要
| 层级 | 缓解的威胁 | 主要机制 | 残余风险 |
|---|---|---|---|
| 层级 1(本地) | 18/26 | 工作区限制、黑名单、域名白名单、凭据脱敏 | 命令注入、符号链接边界、无进程隔离 |
| 层级 2(远程) | 20/26 | 层级 1 + TLS、令牌、受限日志查看 | 授权提升、Webhook 认证 |
| 层级 3(Docker) | 25/26 | 容器隔离、network=none、降权、只读 rootfs | 部分内核上 Docker no-new-privileges 兼容性 |
层级 1 — 本地工作区(默认)
所有操作限制在本地工作区。不暴露网络。不需要 Docker。
已实施的管控
| 管控 | 机制 |
|---|---|
| 工作区限制 | tools.fs.workspaceOnly: true |
| 工具黑名单 | tools.deny(gateway、cron、sessions_spawn 等) |
| 命令黑名单 | 15 类危险模式(rm -rf、chmod 777、curl 管道 sh 等) |
| 网络白名单 | 出站限制在学术相关域名 |
| 修改前备份 | 每个会改文件的工具先触发备份 |
| 凭据脱敏 | 从 LLM 输出中剥离 12 类模式 |
| 注入检测 | 8 类提示注入模式被标记 |
| 审计日志 | 每次工具调用写入 ~/.acaclaw/audit/ |
| 仅 loopback 绑定 | 网关绑定 127.0.0.1 |
何时层级 1 足够
写论文、分析个人数据、管理引用;学生作业;文献检索;数据可信且仅本人操作的流程。
层级 2 — 远程访问(可选)
将网关暴露在 127.0.0.1 之外视为显著安全升级。
启用远程访问
展示安全说明、明确确认、写入审计、非 loopback 强制 TLS、必须认证令牌。
绑定模式
| 模式 | 绑定到 | 风险 | 建议场景 |
|---|---|---|---|
loopback(默认) |
127.0.0.1 |
无 | 标准本地 |
tailnet |
Tailscale IP | 低 | 自有设备 |
lan |
0.0.0.0 |
中 | 可信局域网 |
custom |
用户指定 | 高 | 高级用户 |
层级 3 — Docker 沙箱(可选)
所有工具执行在容器中隔离。
Docker 加固要点
丢弃能力、只读 root、network: none、Seccomp、非 root、仅挂载工作区、随会话销毁容器。
防护层
工具调用顺序:AcaClaw 策略层(备份、安全策略、审计)→ OpenClaw 工具策略 → 执行层(标准:宿主机仅工作区;最高:Docker)。
凭据脱敏
剥离 OpenAI 密钥、GitHub PAT、AWS 密钥、JWT、PEM 等共 12 类模式。
提示注入检测
8 类模式被标记告警而非硬拦,减少误伤学术讨论。
网络策略
出站请求对照学术域名白名单(arXiv、Semantic Scholar、NCBI、CrossRef、npm、PyPI、GitHub 等)。可通过 plugins.acaclaw-security.customAllowedDomains 添加域名。
审计与日志
记录 tool_call、tool_blocked、credential_scrubbed、injection_warning、network_blocked 等元数据;不记录消息全文、文件内容、凭据值。日志在 ~/.acaclaw/audit/,默认保留 90 天。
与 OpenClaw 上游对比
| 控制项 | OpenClaw 默认 | AcaClaw 标准 | AcaClaw 最高 |
|---|---|---|---|
| workspaceOnly | false | true | true |
| 工具/命令黑名单 | 无 | 有 | 有 |
| 网络白名单 | 无 | 学术域名 | network: none |
| 修改前备份 | 无 | 自动 | 自动 |
| 凭据脱敏与审计 | 无 | 有 | 有 |
| Docker 沙箱 | off | off | all |