Harava News 的内容由人工智能生成,可能包含错误。

Claude 为什么会保存这些机密?

焦点人工智能

本文背后的新闻: Apiiro 在 1,122 个公开的 Claude Code 设置文件中发现凭据

Apiiro 发现,1,122 份公开的 Claude Code 设置文件中含有机密,这是因为已保存的命令批准规则以明文形式保留了凭据。

已保存的批准规则如何暴露机密

Claude Code 可以在运行 shell 命令前征求用户同意,并提供记住该批准的选项。选择“是,以后不再询问”后,程序会在 .claude/settings.local.json 中保存一条允许规则。如果获批的命令中含有密码或令牌,这条规则可能会以明文形式保存它们。Apiiro 使用不同的 Claude 模型复现了这一情况,说明问题出在 Claude Code 处理权限的方式,而非某个特定模型。

开发者在调试数据库连接或部署时,可能会将凭据作为环境变量或参数传递给命令行工具。反复出现的权限提示也可能促使他们一次性批准某条命令,然后继续工作。Apiiro 表示,这是研究人员根据工作流程和发现的命令格式作出的推断。

Apiiro 在公开文件中发现了什么

Apiiro 在 GitHub 上的 104,185 份公开 settings.local.json 副本中,至少在 1,122 份里发现了一项机密。这些文件中包含 1,379 个不同的机密。研究人员将旧版 Git 历史记录、共享设置文件和已保存的智能体对话记录也计算在内后,报告称在 1,994 个代码库中共发现 2,539 个机密。

这些机密包括数据库密码、SSH 登录凭据、软件平台令牌和云密钥。这个数字说明存在暴露风险,并不代表每项凭据目前仍然有效或已遭滥用。Apiiro 表示,一家收到通知的组织确认其中一个密钥仍然有效,但该公司并未证实攻击者曾使用这些被发现的机密。

文件为何可能持续暴露

Anthropic 的文档称,如果代码库尚未忽略该本地设置文件,Claude Code 首次在其中创建该文件时,会将其添加到用户的全局 Git 排除规则中。这项保护只适用于开发者自己的计算机,而不适用于共享项目。它无法撤销已经纳入 Git 跟踪的文件,也无法清除代码库历史记录和分支中的副本。

2025 年 12 月 4 日,一名开发者在 Anthropic 的 GitHub 问题跟踪器中报告了类似的暴露情况,称本地设置文件中的凭据被提交到了公开代码库。该报告表明,在 Apiiro 衡量其规模之前,这种风险就已显现。

普通命令语法中嵌入的密码可能不符合常见 API 密钥格式,因此通用机密扫描工具可能会漏掉它们。智能体配置文件、对话记录和其他工作数据中也可能包含凭据。有效密钥可能成为进入数据库、云账户或软件供应链的途径;它能造成多大影响,取决于它可以访问哪些资源。

Anthropic 和组织可以采取哪些措施

Anthropic 的 Claude Code 负责人 Boris Cherny 承认了这一问题,并表示公司正在研究防护措施,包括自动模式和基础机密扫描。根据最新报道,这些仍是提议,并非已确认的修复方案或发布日期。

组织可以搜索代码库及其历史记录,查找相关文件;轮换已暴露的凭据;并移除或清理已纳入跟踪的副本。仅仅删除文件,无法让已经公开的凭据重新变得机密。