单纯出现在公开仓库中,并不等于一枚凭证必然仍构成现实威胁。真正危险的情况是:密钥没有被撤销,仍能通过认证,同时还保留了有意义的访问权限。此次调查显示,这三个条件经常同时出现。
在仍处于活跃状态、且被归属于企业账户的密钥中,研究人员确认了817枚。其中包括:
根用户凭证是AWS客户账户可用的最高权限凭证;而绑定AdministratorAccess策略的IAM身份,也能在AWS各项服务中执行范围极广的操作。只要密钥仍然有效,攻击者就可能借此接管账户、访问数据、创建未经授权的云资源,甚至制造异常云账单。
这一结果也与该公司对Hugging Face公开数据进行的更大范围扫描相呼应。Truffle Security表示,它检查了7.6 PB的公开数据集,并在数千个数据集中发现仍然有效的凭证。这说明,秘密信息不仅会留在传统软件仓库中,也可能随着公开发布的数据长期传播。
对安全团队而言,启示十分直接:只扫描当前源代码仓库远远不够。Git历史、构建产物、容器镜像、注册表、公开数据集以及CI输出,都可能在开发者以为“已经删除”之后继续保留凭证。
长期有效的访问密钥,为未经授权的使用留下了更长时间窗口,也让企业更难确认密钥的实际归属。人员变动、应用迁移、仓库清理以及运维职责调整,都可能发生了,但密钥却继续有效。
因此,凭证年龄本身就应被视为风险信号。一枚已经公开暴露数年的密钥,不能因为“看起来很旧”就被默认视为无效。除非所有者能够证明它已经失效,否则应立即核验、撤销并展开调查。
预算提醒不能替代密钥撤销或威胁检测,但在攻击者利用泄露凭证创建高成本资源时,它可以提供早期预警,例如用于加密货币挖矿或其他云资源滥用。如果异常支出的通知无法送达能够采取行动的人,账户遭到入侵后,相关费用可能持续增长。
相关报道介绍,AWS的泄露密钥保护机制可以识别已经公开的访问密钥、通知受影响客户,并采取限制或隔离措施。不过,如此多经过复测的密钥仍然有效,也说明检测或通知并不总能转化为客户一侧及时的撤销和轮换操作。
检测只是凭证响应的第一步。完整的处置流程还应包括:确认密钥所有者、评估凭证可访问的资源和权限、检查是否存在滥用行为,并最终使密钥失效。
Truffle Security称,其验证过程是只读的:研究人员检查凭证能否通过认证,并读取权限或账户元数据,而没有修改客户资源。需要注意的是,这一方法描述来自Truffle Security自身,所提供的其他来源并未独立核实其每项操作细节。
AWS根用户访问密钥不应被用于日常程序化访问。企业应删除根用户密钥,并将工作负载迁移到权限受控、范围明确的身份上。
确认密钥属于哪个账户、用户或服务,以及它能够访问哪些资源。应优先处理拥有根用户权限、AdministratorAccess权限、广泛数据访问权限,或能够创建基础设施的密钥。
检查认证活动、CloudTrail日志、IAM变更、新创建的资源以及账单,寻找可疑行为。撤销密钥只能阻止其后续使用,无法证明它此前没有被滥用。
启用AWS Budgets预算提醒和成本异常监控,并将通知发送给能够快速采取行动的联系人。财务监控只能作为最后一道防线,不能替代秘密扫描、凭证轮换和访问权限审查。
这项调查最值得关注的并不只是秘密信息的数量,而是公开暴露、持续有效、高权限、长期未更新和监控不足这几种风险因素叠加在了一起。
公开数据存储可能在企业忘记凭证使用位置很久之后,仍然保留这些秘密;而一枚已经被复制的密钥,只要没有被明确撤销,就可能继续成为进入云环境的入口。
对云平台团队而言,更安全的做法是采取一个明确的默认前提:任何公开暴露的AWS凭证都应视为已经泄露。企业应立即确认它能访问什么、撤销或轮换密钥,并尽可能用短期、最小权限的身份替代长期访问密钥。