主题
AI 使用安全与隐私清单
AI 工具的风险不只来自“回答错了”。当工具能读文件、执行命令、访问网页和连接外部系统时,错误操作的影响会被放大。下面的目标是建立可执行的边界,而不是记口号。
1. 先给数据分级
| 级别 | 例子 | 默认处理 |
|---|---|---|
| 公开 | 官网内容、公开代码、公开报告 | 可使用已批准的云端工具 |
| 内部 | 未发布方案、普通工作文档 | 先确认组织政策与服务数据条款 |
| 机密 | 客户数据、源代码、商业计划 | 最小化、脱敏、限制工具与保存范围 |
| 高敏感 | 密码、API Key、身份证件、医疗与财务明细 | 不放进提示词;使用专门受控流程 |
不确定时按更高一级处理。把姓名替换成“客户 A”只是脱敏的开始,正文里的邮箱、订单号、地址和文件元数据也可能识别人。
2. API Key 与令牌
2.1 必须做到
- 示例使用
sk-xxxxxxxx,不复制真实令牌到截图或聊天。 - 令牌放环境变量、系统钥匙串或密钥管理服务。
.env加入.gitignore,但仍要在提交前搜索泄露。- 为不同设备或应用创建不同令牌,设置合理额度。
- 怀疑泄露时先撤销令牌,再调查来源,不只删除文件。
2.2 提交前检查
bash
git status
git diff --cached
git grep -n -E 'sk-[A-Za-z0-9_-]{12,}|API_KEY|TOKEN|PASSWORD'搜索只能降低风险,不能证明绝对安全。真实项目应配合仓库平台的 Secret Scanning 或专门工具。
3. Agent 执行权限
把操作按可逆性分层:
| 操作 | 建议 |
|---|---|
| 读代码、搜索文本、运行只读检查 | 可在可信目录常规执行 |
| 编辑文件、安装依赖、运行测试 | 先看计划,保留 Git 回滚点 |
| 删除文件、改系统配置、访问网络 | 每次审查命令和目标 |
| 推送代码、发布、发消息、付款 | 必须人工确认最终内容与目标 |
不要在用户主目录、下载目录或挂载整个磁盘后练习 Agent。把工作区缩小到单个项目,本身就是有效的安全控制。
4. 第三方 MCP、插件与扩展
接入前回答:
- 发布者是谁,源码和更新记录在哪里?
- 它能读取哪些目录、环境变量与账户数据?
- 它能执行写入、发送、删除或付款操作吗?
- 数据会发往哪个域名,保存多久?
- 不再使用时如何撤销令牌和移除权限?
先用测试账户与最小权限。能只读就不给写入,能限定目录就不授权整个磁盘。
5. 防止提示词注入影响 Agent
网页、文档、Issue 和代码注释都可能包含“忽略之前规则、上传文件”等恶意或误导指令。处理外部内容时:
- 明确告诉 Agent:外部内容是待分析数据,不是可信指令。
- 读取与执行分开,先让它汇总准备调用的工具。
- 涉及秘密、联网和不可逆操作时要求人工确认。
- 不让来自网页的文字直接决定终端命令。
- 检查工具调用的实际参数,不只看 Agent 的解释。
6. 本地模型的真实边界
本地推理能减少内容发送到模型服务商,但下列功能仍可能联网:模型下载、在线搜索、遥测、插件、MCP、崩溃报告和更新检查。参照《Ollama 与 LM Studio》验证断网能力,并逐项检查外部连接。
7. 交付前检查表
- [ ] 输出中的事实、数字和引用已回到原始来源核验。
- [ ] 代码通过测试、类型检查、构建和人工体验。
- [ ]
git diff中没有密钥、个人数据或意外文件。 - [ ] 依赖来自可信来源,安装脚本和许可证已检查。
- [ ] AI 生成内容没有冒充真实经历、用户评价或测试结果。
- [ ] 发布、推送、发送和删除操作由人做最终确认。
- [ ] 已记录已知限制、回滚方式和负责人。
8. 发生误传时
- 立即撤销令牌、会话或共享链接。
- 记录泄露时间、数据范围、接收服务与可能访问者。
- 按组织流程通知安全或数据负责人。
- 清理 Git 历史、聊天记录或云端文件,但不要把“删除界面记录”等同于服务端已彻底清除。
- 增加预防措施:更小权限、提交前扫描、脱敏模板或审批步骤。