
Hush Security发布《MCP配置现状:身份安全缺口》报告指出,在GitHub公开可访问的MCP(Model Context Protocol)配置文件中,普遍存在硬编码API密钥、访问令牌及其他AI编程工具凭据。
该机构分析了约8.2万个配置文件,发现12%的凭据槽位包含硬编码的凭据字面量,这可能导致相关连接服务和系统的认证信息暴露。
如何识别暴露的凭据
研究人员在公共GitHub仓库中检索主流编码代理使用的配置文件,检查环境变量和认证头,并根据存储方式对凭据槽位进行分类。类别涵盖硬编码值、环境变量引用、客户端管理提示、密钥管理器引用、占位符及空字段。
通过特定供应商模式和衡量随机性的香农熵,研究人员在硬编码值中识别出潜在的秘密信息。鉴于GitHub代码搜索索引默认分支、排除分叉仓库且限制单次查询结果数量,Hush将报告数据视为下限估计值,而非精确计数。
研究仅统计声明了MCP服务器的采样文件,未尝试使用发现的值进行任何服务身份验证。部分凭据自提交后可能已被撤销或轮换。在硬编码秘密中,55%没有供应商可识别的令牌格式,其中包括31%被归类为内部MCP服务器的不透明承载令牌。
对于无特定供应商格式的数值,研究人员结合键名、长度、熵和字符模式评估其凭据属性。分析显示,这些值主要由供应商API密钥、承载令牌和数据库密码组成,非秘密标识符占比微乎其微。所有原始秘密值均未保留,研究结果经聚合和匿名化处理。
已删除的秘密仍存于Git历史
从文件最新版本移除敏感信息并不能彻底消除风险。Git保留历史版本,使得已删除的值仍可通过提交历史访问。
研究人员审查了7681个含凭据配置的历史记录,查看当前版本前多达七个修订版,确认243个配置中的秘密虽已从当前文件移除,但仍保留在较早提交中。因此,仅在配置中删除秘密无效,必须在供应商处轮换受影响的凭据以终结暴露状态。
Hush Security首席执行官Micha Rave表示:“传统安全团队扫描秘密、阻止提交并轮换泄露内容的本能在此远远不够。这些文件旨在被提交,秘密绝不应存在于其中。当秘密出现时,高风险凭据往往匹配不到已知模式,且背后身份无所有者、无过期时间。这意味着大量访问令牌裸露在公共Git中,却无人监管。”
数据显示,24%的硬编码凭据字面量属于设计上范围广泛且无有效期的类型。在具有分类范围的凭据中,53%提供组织级、账户级、工作区级或数据库级访问权限;对于定义过期策略的凭据,80%默认不会过期。拥有广泛权限的长期有效凭据显著放大了暴露影响,单个凭据即可访问多个资源或敏感功能。
MCP加剧机器身份管理难题
MCP连接赋予AI代理代表用户或组织与源代码、数据库、云基础设施及其他服务交互的权限。这些代理作为非人类身份运行,使用凭据进行系统认证,无需每次交互都要求人员登录。
随着使用规模增长,组织亟需建立机制,跟踪哪些代理拥有访问权限、持有哪些权限、责任归属以及何时终止访问,以应对日益复杂的机器身份安全问题。