2026-10-21 23:34:38
网络攻击者利用被盗的OAuth令牌窃取客户帐户凭据的过程及影响如下:
攻击过程解析令牌窃取阶段
初始入侵:攻击者于4月7日通过与Heroku内部机器账户关联的被盗OAuth令牌,首次获得对Heroku数据库的访问权限。
令牌下载:攻击者从数据库中下载了存储的OAuth令牌,这些令牌原本用于授权客户GitHub集成(如通过Heroku仪表板或自动化工具部署应用)。

客户数据窃取阶段
二次攻击:4月9日,攻击者使用窃取的OAuth令牌,枚举并克隆了数十个组织的私有GitHub存储库,包括源代码和客户数据。
数据库渗透:攻击者进一步利用同一机器账户的OAuth令牌,访问Heroku内部数据库,窃取了属于客户的散列加盐密码(虽经加密,但仍需重置以消除风险)。

攻击范围扩展
横向移动:GitHub调查显示,攻击者通过分析下载的私有存储库内容,挖掘可用于攻击其他基础设施的数据(如API密钥、配置文件等)。
针对性选择:攻击者列出所有受影响组织后,仅选择高价值目标(如全球数百万开发者使用的npm相关存储库)进行深度克隆。
对客户的影响
凭据泄露风险:尽管密码为散列加盐存储,但攻击者可能通过暴力破解或利用其他漏洞还原原始密码。
存储库数据暴露:私有代码、配置文件等敏感信息被窃取,可能导致知识产权损失或供应链攻击。
Heroku的应急响应
强制密码重置:要求所有受影响用户重置密码,并轮换内部凭据以切断攻击者残留访问路径。
令牌撤销:立即撤销所有GitHub集成OAuth令牌,暂停客户通过GitHub部署应用的功能。

长期安全改进
检测机制增强:部署额外监控工具以实时识别异常访问行为(具体技术未公开)。
跨平台协作:与GitHub、威胁情报供应商及执法部门合作追踪攻击源头,共享攻击指标(IoCs)。
内部机器账户的OAuth令牌权限过高,且未遵循最小权限原则,导致攻击者“一令通行”关键系统。
令牌存储未实施足够加密或隔离措施,使数据库泄露直接导致令牌失窃。
Heroku与GitHub的集成设计未充分验证令牌使用上下文,攻击者得以滥用权限访问无关资源。
对企业的建议
定期轮换令牌:为OAuth令牌设置短有效期,并自动化轮换流程。
实施零信任架构:严格限制机器账户权限,采用多因素认证(MFA)保护关键操作。
加密敏感数据:对存储的密码、令牌等采用强加密算法(如Argon2、bcrypt),并分离存储加密密钥。
对开发者的建议
审查第三方集成权限:定期审计GitHub等平台的第三方应用授权范围,撤销不必要的访问权限。
监控异常行为:通过日志分析工具(如ELK Stack)检测异常登录或数据下载活动。
此次事件表明,OAuth令牌的滥用可能成为攻击者渗透企业系统的“钥匙”。组织需从权限管理、数据加密、监测预警三方面构建防御体系,以应对日益复杂的供应链攻击。