当前位置: 首页 > news >正文

差点把用户数据泄漏给Claude Code后,我写了个 Rust 工具

两周前我把公司的数据库接进了Claude Code效率确实起飞了直到我翻了一下会话记录。两周前公司的 PostgreSQL 数据库接进了Claude Code以后AI 确实能干——帮我写迁移、联表、生成报表效率直接起飞。直到我随手翻了一下会话记录看到这个[{id:1,country:NZ,full_name:Alice Johnson,email:alice.johnsonexample.com,phone_number:64 0212339940,ird_number:823-101-334,created_at:2023-01-15 10:30:00},...]这是 AI 执行SELECT * FROM users时返回的真实数据。姓名、邮箱、电话、政府税号等等敏感信息全在上下文里。并且这些数据可能存在对话日志AI 生成的任何摘要它刚写入/tmp的文件如果开了会话共享可能还去了别人的机器最隐蔽的某些平台会拿用户数据训练下一代开源模型AI 没做错任何事。我也没做错。工具返回了什么模型就看到什么——中间没有人在把关。我当时的第一反应为什么不用 LLM 来脱敏能不能让 AI “自觉”不请求敏感字段试过没用。提示词写得再严模型在某些边界情况下还是会漏。那在 AI 收到结果后再调个 LLM 脱敏呢这条路我也想过但行不通成本一次会话几十上百次查询每次多调一次模型账单感人延迟tool 执行路径需要毫秒级返回LLM 做不到审计“为什么这个字段被脱敏了”——LLM 给不出确定答案也没法复现现有的 PII 脱敏工具Presidio、Nightfall 等是给数据管道或 API 网关用的跑在 Agent 的 tool 执行路径上不合适。所以我想要的不是“更聪明的模型”而是一个确定性的过滤器放在 Agent 和数据库之间自动拦截查询结果不靠 LLM 猜Agent 无法绕过于是写了 gategate是一个 Rust 写的命令行工具做一件事在数据进入模型之前把 PII 替换成[PII:类型]。JSON 结构不变AI 可以继续遍历、计数、推理但永远看不到原始值。覆盖两个路径它覆盖了 Agent 从后端拿数据的两个主要途径1. Bash 命令Agent 想跑psql -c SELECT ...→gate的钩子在 harness 层把命令改写成gate run -- psql -c ...→ 子进程的 stdout 经过扫描脱敏后才返回给模型。这个改写发生在 Claude Code / OpenCode / Copilot CLI 的PreToolUse钩子里是强制执行的Agent 没法说我不走那个钩子。2. MCP Servergate mcp是一个 stdio 代理你把它注册成 MCP Server它启动上游的真实 Server然后所有tools/call的返回值都会经过脱敏扫描。对上游 Server 零侵入现有 MCP Server 不用改一行代码。一条命令就能把所有 MCP Server 包进去bashgate init --wrap-mcp --yes用之前先扫一遍gate scan我建议任何人在接入 AI 之前先跑gate scan看看自己库里有多少敏感信息bashpsql -d mydb -c SELECT TABLE_NAME, COLUMN_NAME FROM information_schema.columns WHERE table_schema public | gate scan输出按 Critical / Elevated / Standard 分级告诉你哪几张表风险最高。如果有false positive字段比如products表里的city字段可以用--review一键加入白名单。跑了一段时间后gate retrogate retro会读取本地的统计日志告诉你一共拦截了多少次查询脱敏了多少个 PII 字段按工具和 PII 类型拆分的命中率这是写给安全团队看的这工具不是摆设数字在这。坦诚说哪些它防不住Agent攻击被注入后故意 Base64 编码、换成 CSV 输出、走没配置的工具—— 不在威胁模型内。可以配合 harness 级别的工具白名单加固。非 JSON 输出— 纯文本、CSV 原样放过。可以配置pipe: jq -c .转成 JSON。MCP 的resources/read—— 目前只拦截tools/call这是个已知缺口正在做。快速指南3条命令bash# macOS / Linux brew tap GaaraZhu/gate brew install gate gate config # 生成配置 gate init # 注册 Claude Code Hook gate init --wrap-mcp # 包住现有 MCP Server先 dry-run关了也很简单gate disable关gate enable再开。彻底卸载是gate uninstall。项目地址https://github.com/GaaraZhu/gateRust 编写MIT 协议~7k 行代码 ~6k 行测试已发布 46 个版本Homebrew 可安装。如果你也在用AI连接数据库不妨先跑个gate scan看看。也许你会发现有些东西不该出现在模型的上下文里。
http://www.gsyq.cn/news/1356579.html

相关文章:

  • 在多轮对话应用中体验Taotoken路由的稳定性与低延迟表现
  • 深入解析Quartz调度引擎:核心原理、集群机制与生产实践
  • 高考答题卡样式模板可打印word版(高中9科)
  • C语言assert()宏:从防御性编程到调试实战的完整指南
  • 小电视空降助手:告别B站广告困扰,体验纯净视频观看
  • Makefile与Shell脚本协同:构建Linux C/C++项目自动化流水线
  • 远程访问性能优化:从网络延迟到协议编码的全链路实战指南
  • 三年级下册语文第六单元作文:身边那些有特点的人
  • 抢票难题有解吗?揭秘大麦网智能抢票系统的技术突破
  • KMS智能激活工具:一篇文章掌握Windows与Office全版本授权管理
  • Yarn Spinner终极指南:10分钟学会编写专业游戏交互对话
  • 5个关键技术点解析:Python SECS/GEM协议库secsgem的工业级实现
  • 掌握SRA Tools:3步轻松处理高通量测序数据的高效工具
  • VMware Workstation Pro 17许可证密钥完整指南:从获取到高效使用的终极方案
  • HPM6200 MCU内置PLA可编程逻辑阵列:原理、开发与应用实战
  • Linux内核通知链机制:从原理到实践的事件驱动编程
  • 探索UI-TARS桌面版:从零到精通的智能代理完整指南
  • 如何在SillyTavern中创造有灵魂的AI角色:从图片到智能伴侣的魔法指南
  • Ollama 生态扩展:插件、工具与社区资源整合
  • 信号带宽与上升时间:从傅里叶分析到工程估算的0.35常数揭秘
  • Sin3DGen:单样本无训练生成三维场景,革新AIGC与图形学融合
  • 智能物流系统的技术难点
  • 3个关键步骤:如何用Method Draw打造零门槛SVG设计体验
  • IndexedDB事务异常排查:从原理到实战解决并发与生命周期问题
  • 模组开发新选择:为什么这个Fabric示例项目能让你的创意快速起飞?
  • TI DSP平台FFT算法实现与CCS可视化调试实战指南
  • 观察TaotokenAPI调用的延迟与稳定性在实际项目中的表现
  • 非线性PDE导向的加热炉在线炉温滚动优化方法与系统实现【附程序】
  • Cortex-M3调试中JTAG RESET线的关键作用与实践
  • Bebas Neue字体完全指南:免费商用的现代设计利器