2026年5月30日 1 分钟阅读

用 Sieve 给 AI 编程 Agent 做一次密钥泄露体检——Cursor 与 Claude 对话记录的安全扫描实战

tinyash 0 条评论

当你用 Cursor、Claude Code 或 Copilot 编写代码时,有没有想过:这些 AI 工具会保存你的对话记录,而你在这个对话里可能无意中泄露了多少 API 密钥和密码?

这不是危言耸听。一个常见的场景是:你在调试某个服务时,直接把 .env 文件的内容粘贴到了聊天框里,或者让 AI 帮你看一个包含 AWS_SECRET_ACCESS_KEY 的配置文件。这些对话记录保存在本地,而你不知道它们何时会被其他进程读取、被备份上传、甚至被不小心提交到版本控制里。

Sieve 就是专门解决这个问题的工具——一个 macOS 原生应用,能扫描 Cursor 和 Claude 的聊天历史,找出其中泄露的 API 密钥和敏感凭证。

Sieve 能做什么

Sieve(App Store 链接)是一款轻量级的本地密钥扫描器,它做的事情非常聚焦:

  • 扫描 Cursor 的聊天历史数据库
  • 扫描 Claude(Claude Code/Claude Desktop)的对话记录
  • 识别各类 API 密钥模式:AWS、GitHub、OpenAI、Slack、Stripe 等 50+ 种常见密钥格式
  • 在 macOS 菜单栏显示扫描结果,标识已泄露的密钥类型和所在对话

它不联网、不发送数据、完全本地运行。你只需安装后打开,它就会自动扫描并展示结果。

为什么这是个紧迫的问题

2025 到 2026 年,使用 AI 编程 Agent 的开发者数量增长了数倍,但安全意识并没有同步提升。几个值得注意的数据点:

  • 全球有超过 1000 万个 硬编码的 API 密钥和令牌被泄露在公开仓库中(GitHub 已检测并旋转了其中的一部分)
  • AI 编程聊天记录是最新也是最容易被忽视的泄露渠道——它不像 .git 目录那样有 .gitignore 保护
  • Cursor 和 Claude Code 将对话记录存储在 ~/Library/Application Support/ 下,格式为 SQLite 或 JSON,一些备份工具或云同步应用可能会将其上传至云端

Sieve 的价值在于:它把”未知”变成了”已知”。 很多开发者并不知道自己的聊天历史里藏着密钥,直到 Sieve 帮他们扫描出来。

实际使用体验

Sieve 的使用流程极简:

  1. 从 Mac App Store 下载安装
  2. 授予 Sieve 访问 ~/Library/Application Support/ 的权限(用于读取聊天数据库)
  3. 启动后自动扫描,几秒内展示结果
  4. 针对每条泄露记录,Sieve 会显示:泄露的密钥类型、所在的聊天应用、对话的标题或时间戳

如果你发现了泄露的密钥,立即旋转(rotate)该密钥是最重要的补救措施。AI Agent 生成的代码中可能也包含了该密钥——这意味着密钥可能被写入了代码文件、被提交到 git、甚至被推送到远程仓库。

综合防护策略

Sieve 只是 AI 编程安全的一个环节。完整的防护链条包括:

防护层工具/方法作用
预防.env 文件 + 环境变量避免在对话中粘贴原始密钥
扫描Sieve检测已泄露的聊天记录
扫描git-secrets / truffleHog检测 Git 仓库中的硬编码密钥
治理Enforra / Veil限制 AI Agent 访问敏感文件
旋转及时更换受影响的密钥消除泄露的实质影响

对于日常使用 AI 编程工具的开发者,推荐的工作流是:

  1. 用 Sieve 做一次性全面检查——扫描所有历史会话,旋转发现的已泄露密钥
  2. 养成”聊天中不粘贴原始密钥”的习惯——使用环境变量引用,需要粘贴时用 API_KEY=xxx 的遮蔽格式
  3. 定期运行 Sieve——每周一次,养成安全巡检习惯
  4. 结合 git-secrets 作为 pre-commit hook——防止密钥通过代码提交外泄

总结

Sieve 解决的是一个真实且被普遍忽视的问题:AI 编程 Agent 聊天记录中的密钥泄露。它不追求功能大而全,而是把”扫描聊天历史中的密钥”这一件事做到极致。对于任何在日常工作中使用 Cursor 或 Claude 的开发者来说,花 5 分钟安装 Sieve 跑一次扫描,可能比花一小时配置复杂的密钥管理系统更有实际价值——因为你可能立刻就发现了已泄露但从未意识到的密钥。

安全的第一步,往往只是知道自己暴露了什么。

发表评论

你的邮箱地址不会被公开,带 * 的为必填项。