老金出海AI · GO GLOBAL
返回列表
Agent 技能的安全底线:密钥、权限与敏感信息
Agent 技能发布于 2026年8月11日·7 分钟阅读

Agent 技能的安全底线:密钥、权限与敏感信息

我见过一个团队,花了三个通宵把 AI Agent 接进客服系统,效果出奇地好——响应快、语气准、客户以为换了个老销售。结果上线第四天,API 账单突然暴涨:有人在暗网拿了他们的 API key,用他们的额度跑了 7 万多…


密钥不是“写代码的事”,是“管钱的事”

我见过一个团队,花了三个通宵把 AI Agent 接进客服系统,效果出奇地好——响应快、语气准、客户以为换了个老销售。结果上线第四天,API 账单突然暴涨:有人在暗网拿了他们的 API key,用他们的额度跑了 7 万多次请求,全是刷账号注册的灰产脚本。溯源发现,key 来自团队公开的技能仓库里一个README 截图。那张图只出现了一天,但足够被爬走。

我不懂代码,但我看得懂账单。密钥泄露不是安全团队的专属课题,它是每个用 AI 的人的第一道风险门。你让 Agent 读客户工单、查库存、发消息——这些都涉及真实资源。技能文件、配置文件、调用权限,任何一个环节漏了,就等于把保险柜密码写在门上。

---

三个最常见的信息泄露点

  1. 密钥明晃晃躺在文件里

API 密钥、token、私钥直接写在技能文件或配置文件中。稍微认真一点的灰产会用爬虫专门扫 GitHub 和公开的 skill 仓库,几秒钟就能抓走你的 key。

  1. 内网地址和路径暴露架构

技能定义的执行环境里写进去“10.0.x.x”的内网 IP、数据库路径、甚至内网跳板机地址。对外一发布,你整个内部网络拓扑对攻击者就不是秘密。

  1. 业务数据和口径未脱敏

技能里拿来演示的客户信息、内部审批话术、价格策略,一不小心就公开出去。这不是技术漏洞,是直接的商业信息泄露。

---

安全基线:四条铁规矩

我把安全拆成四条,每条对应一个生意场景,你就算一行代码没写过,也能拿着它跟团队对齐。

① 发布前必须扫描,像出门前摸口袋 所有技能文件在公开或到生产环境前,要用规则扫一遍:是否包含 token、私钥、邮箱、本地路径、内网 IP。凡是上面这些,一律拦截。别靠肉眼,肉眼一定会漏。

365Skill 的公开仓内置 11 条敏感信息扫描规则,覆盖常见泄露点:

扫描规则典型示例泄漏后果防护措施
API key / tokensk-开头字符串、Bearer token额度被盗刷、账号被封环境变量注入,禁止出现在文件中
私钥BEGIN RSA PRIVATE KEY 等服务器被直接入侵一律上锁,不进仓库
邮箱地址个人和企业邮箱钓鱼攻击、垃圾邮件脱敏或用内部代号代替
内网 IP10.x.x.x, 192.168.x.x暴露网络拓扑替换为占位符
本地路径/home/user/project暴露系统账户与结构标准化路径,不写绝对路径
密码/密钥文件路径.pem, .key 结尾的文件直接泄露凭证排除在版本控制之外
数据库连接串jdbc:mysql://...数据库被拖库使用密钥管理服务,写入环境变量
内部 URLadmin.internal.company攻击者定点攻击内网服务公开文档去除所有内部链接

剩下的规则覆盖日志错误码、调试信息等,本质就是一句话:不该让人看见的东西,连影子都不能出去。

② 最小权限:别给大门钥匙,只给房间钥匙 技能只需要它干活必须的那点工具和那点数据范围。做客服的技能就别申请财务系统权限,查物流的技能就别碰客户通讯录。每多开一扇门,就多一条守不住的风控线。

③ 闸门式发布:默认谁都别想出去,批了再说 我们自己的做法是 deny-by-default——技能写完默认私有,经过扫描、评审,确认没敏感信息、权限也收紧了,才允许公开或推到生产。公开仓和私有仓物理分离,公开仓里的每一条内容都经过显式批准,不是复制粘贴。

④ 环境变量注入:别把密码写在便签上 不要把密钥写死在技能文件里,而是从运行环境注入。就像你家里的保险柜密码存在脑子里,而不是贴在门后面。技能发布时,文件里只有占位符,真实密钥在部署侧注入。

---

最常见的三个坑(几乎每个团队都踩过)

  • 截图和日志直接外传了密钥。 演示技能效果时随手截屏,抓到了终端或配置框里的 key。解决:演示环境统一用假 key 或遮罩工具。
  • 技能 README 把内网拓扑画得一清二楚。 为了让其他同事看懂,文档写明了服务调用链、内网地址和跳转路径。解决:内部和外部文档用两套,公开文档永远不出现真实 IP 和内部域名。
  • “先跑通,再加固”,结果永远没加固。 原型阶段的简易配置以为后面会改,但一上线就冲业务量,安全被忘在角落里。解决:安全检查必须卡在发布门槛处,不让步。

---

实战示例:一个技能从写完到安全发布(365Skill 流)

假设你写了一个“自动回复 WhatsApp 询盘”的技能,准备放到团队技能库共享。在 365Skill 仓库里,流程是这样的:

  1. 本地写完技能文件——里面所有的 API 地址、key 都用环境变量占位符表示,比如 API_KEY$SELLENCA_API_KEY,不出现真实值。
  2. 第一次提报时,跑扫描规则——11 条规则自动检查,发现有残留的测试邮箱 test@laojin.com,被拦截,提示“包含邮箱地址,请脱敏”。
  3. 修改后再次扫描通过——确认再无 token、密钥、内网地址、本地路径。
  4. 申请公开——进入 deny-by-default 审核队列,由负责人确认权限最小化、无敏感信息后,才合并到开源公开仓。

整个过程对提交者只是多一步扫描和审批,但安全水位是完全不同的级别。生意上多耽搁 30 分钟止损,比事后填一个几十万的账单窟窿划算得多。

---

常见问题

我是业务负责人,不懂技术,怎么确保团队遵守安全基线?

把以上四条基线写成 checklist,植入到你们的发布流程里。要求团队每次发布技能或更新时,提交一份自检结果:是否通过敏感信息扫描、权限是否最小化、是否已审批、密钥是否环境变量注入。不要因为你不懂代码就不提要求——你只需要坚持“不给清单不许上线”。

如果技能文件不小心泄露了密钥,第一时间该干什么?

立即在密钥对应的平台吊销该 key(如 OpenAI、模型 API 等),随后排查是否有异常调用记录,统计损失并检查是否影响到客户数据。同时,检查你的技能仓库历史记录,确认泄露的 key 是否已被恶意抓取。最后,走一遍安全基线,补上扫描和权限步骤。需要咨询具体的应急流程,也可以通过免费咨询直接联系我们。

365Skill 的扫描规则可以自己定制吗?

可以。开源仓库 Apache-2.0 允许你按自己业务的情况增加或修改扫描规则。如果你的业务涉及更多敏感字段(比如特定客户编号格式、特殊内网域名),可以在规则列表里追加。我们生产用的 11 条是最小集,建议所有的定制都从这 11 条开始扩展,而不是另起炉灶。

---

安全这件事,越早做成本越低。如果你正在把 AI Agent 导入业务,别只盯产出数据,先把门锁换好。365 产品家族里的每一个工具,从365SkillSellenca,都是在自己业务里血淋淋踩过坑再放出来的,安全底线刻在发布流程里这条,我们没敢偷懒。

如果你也是团队里那个被催着上 AI 的老板或负责人,建议先把密钥和权限的事理清。想直接看看我们怎么做的,可以从365 产品Agent 技能库入手,先用一用,再拿着我们的安全模板给技术团队上规矩。

老金出品 · 用 AI 提效

365SkillAgent Skills 实验仓库:10 个 365 原创 + 35 个同步技能

365Skill 是我们探索 Agent 技能的公开仓库:SKILL.md 标准格式、deny-by-default 发布策略、evals 验证体系。仓库现有 43 个技能——10 个 365 原创(8 个已公开)+ 35 个从 mattpocock/skills(MIT)同步的生产级技能。Apache-2.0 开源,欢迎 star、安装、提 issue。

更多老金产品:Sellenca · 365AIOrg · AllModelsAPI · 365Loopa · 365 Ops