Apiiro 发现 Claude Code 配置功能致密钥泄露至公开 GitHub 仓库
KI-Coding-Agenten verfrachten Zugangsdaten in öffentliche Repositories | heise online
IT 安全公司 Apiiro 在 GitHub 上超过 10 万份 Claude Code 配置文件副本中发现 1100 多份含真实密钥,共在 1994 个公开仓库找到 2539 个真实密钥。原因是 Claude Code 的“不再询问”选项会把含凭据的命令写入 .claude/settings.local.json,当该文件未被 .gitignore 覆盖时便随提交公开。Claude Code 负责人 Boris Cherny 表示团队正在研究拦截方案,Apiiro 建议先轮换泄露凭据再清理仓库与 Git 历史。
推荐理由
精选AI 评分 77
安全公司 Apiiro 的扫描数据揭示了 Claude Code 配置文件的泄露路径,读者可据此自查仓库与 Git 历史。
主题
正文 · AI 翻译
借助人工智能协助程序员完成任务并生成代码的编码代理,可能因一项可能被疏忽使用的功能,将机密访问凭据泄露到公开的 Git 仓库中。该功能旨在提供便利,很容易被点击。尽管有可用的文档说明,但由此存放的访问凭据、API 令牌和其他机密仍会变得可被公开访问。
广告后继续阅读
IT 安全公司 Apiiro 在一篇博客文章中对此发出警告。在 GitHub 上公开存放的超过 10 万份 Claude Code 配置文件副本中,IT 研究人员发现了 1100 多份包含真实机密的文件。原因是 Claude Code 的一项已有文档记录的功能:在访问数据库或 API 时,它会询问是否应执行所建议的命令,然后提供“是,不再询问”选项(使用英文版 Claude Code 的用户则会看到:“Yes, and don’t ask again”)。该命令包含访问凭据,而该选项会导致这些凭据被写入项目文件夹中的“.claude/settings.local.json”。
无意识的机密转移
默认情况下,该文件应保留在开发者计算机上。当 Claude Code 在 Git 仓库内创建该文件时,会将其添加到全局 Git 忽略列表中。这是通常且最常见的情况。然而,正如 IT 研究人员所阐述的那样,如果某个文件夹后来才成为 Git 仓库、从另一台机器克隆而来,或者有人已经提交过该文件,那么这一规则就不会生效。此时该规则不会写入仓库的“.gitignore”文件,该文件便不受保护。在许多情况下,Claude Code 似乎自行传输了该文件。报告解释说,在 1105 个包含真实机密的仓库中,有 539 个存在一次提交,其中 Claude 作为共同作者修改了该文件。
根据该报告,许多人似乎并不清楚这一点。IT 研究人员在 1994 个公开 GitHub 仓库中发现了 2539 个真实机密,其中包括数据库密码、云密钥、API 令牌或 SSH root 登录凭据。另有 1160 个机密出现在 Git 历史记录、分析显示团队有意共享的 settings.json 中,以及存储在仓库中的代理聊天记录中。
据 Apiiro 称,周六 Anthropic 的 Claude Code 负责人 Boris Cherny 参与了 Hacker News 上的一场讨论,并在那里宣布团队正在研究如何防止这种情况。他提到团队希望以原型方式测试的思路包括:让自动模式拦截此类情况,以及让 Claude Code 获得简单的机密扫描功能。
Apiiro 建议搜索自己的 GitHub 组织以及 Git 历史记录,查找“.claude/settings.local.json”和“.claude/settings.json”。受影响者应首先更换发现的访问凭据,然后再进行清理。GitHub 试图对机密(如访问凭据)的非自愿公开采取一些应对措施。开发者不断为此补充安全功能。例如在 2025 年春季,GitHub Advanced Security(GHAS)就扩展了一项扫描工具,以防止机密外泄。
广告后继续阅读
(dmk)