流行的开源包遭到破坏,窃取用户凭据

每月下载量超过 100 万次的命令行工具遭到黑客攻击,导致用户凭据和敏感数据泄露。了解发生了什么以及如何保护自己。
一个重大的网络安全事件在开源社区敲响了警钟,此前每月下载量超过 100 万次的广泛使用的软件包遭受了复杂攻击。此次泄露暴露了敏感的用户凭据和身份验证令牌,凸显了开源软件生态系统中持续存在的漏洞以及开发流程各个级别的稳健安全实践的至关重要性。
威胁行为者成功利用了 element-data 背后的开发团队使用的帐户工作流基础设施中的漏洞,element-data 是一个流行的命令行界面,旨在帮助用户监控性能指标并检测机器学习系统中的异常情况。通过损害开发者的帐户安全,攻击者可以未经授权访问关键的签名密钥和其他通常受到严格限制的敏感信息。这种访问权限使他们能够伪造看似合法的版本,并通过官方渠道将恶意代码直接推送给最终用户。
攻击于周五展开,未知攻击者利用其受损的访问权限推送了 element-data 0.23.3 版本,其中包含旨在从受影响系统中窃取敏感信息的嵌入式恶意代码。当用户执行受感染的软件包时,它会在他们的环境中进行广泛的搜索,以寻找有价值的凭据和身份验证材料。据报道,被盗数据包括用户配置文件、仓库凭证、云提供商身份验证密钥、API 令牌、SSH 密钥以及其他可能使攻击者进一步访问下游系统和服务的敏感信息。
恶意版本很快被识别并分配了版本号0.23.3,并同时在多个分发渠道发布,包括官方Python包索引存储库和开发人员的Docker镜像注册表。尽管该软件包在这些平台上迅速传播,但安全团队在首次发布后约 12 小时内成功识别并删除了受感染的软件包,从而限制了暴露时间。然而,在这些关键时刻,未知数量的用户可能在其系统上下载并执行了恶意代码,这可能会损害他们的凭据和敏感数据。
在有关该事件的官方声明中,element-data 背后的开发团队确认,这次攻击具有高度针对性和复杂性。威胁参与者展示了开发工作流程和用于管理软件包发布的基础设施的知识。该团队指出,虽然主要的攻击面是恶意 Python 软件包发布,但他们迅速采取行动,评估了攻击的全部范围,并确定哪些其他系统可能受到攻击链的影响或暴露。
重要的是,开发商确认其他相关产品和服务并未受到该事件的影响。 Elementary Cloud 代表该平台的商业托管产品,保持安全且不受影响。提供数据集成功能的 Elementary dbt 软件包也被确认不受影响。此外,0.23.3 版之前的所有其他版本的 CLI 工具都经过验证是干净且可以安全使用的。对于试图确定对其自身操作的影响范围的用户来说,这种区别至关重要。
事件发生后,开发团队向所有受影响的用户发出了严重警告。安装版本 0.23.3 或从注册表中提取并执行受影响的 Docker 映像的用户应立即假设执行时在其环境中可访问的任何凭据和敏感信息都可能暴露给威胁参与者。这不仅包括配置文件和环境变量中存储的凭据,还包括在包执行期间可能临时加载到内存中的任何身份验证材料。
该事件强调了开源软件供应链中存在的固有风险以及攻击者破坏广泛使用的软件包的可能性。 element-data 的每月下载量超过 100 万次,是一个高价值目标,在整个用户社区中具有广泛影响力。该攻击表明,即使是流行且维护良好的项目也可能成为复杂的凭据盗窃活动的受害者,特别是当攻击者可以识别和利用开发团队使用的底层帐户基础设施中的漏洞时。
安全研究人员和行业专家强调了实施多因素身份验证、限制对敏感签名密钥的访问以及维护所有软件包版本的严格审核日志的重要性。该事件提醒我们,开源安全需要一种全面的方法,不仅限于代码审查和漏洞扫描,还包括基础设施强化、访问控制和事件响应功能。
对于受此事件影响的用户,建议立即采取行动以减轻潜在的风险。这包括轮换执行恶意包的环境中存在的所有凭据,包括 API 密钥、身份验证令牌、SSH 密钥和数据库密码。此外,用户应检查其系统是否有任何未经授权的访问尝试或可疑活动,这些活动可能表明攻击者利用被盗的凭据来进一步访问内部系统或连接的服务。
元素数据团队的响应因其在识别和修复漏洞方面的透明度和快速行动而受到安全社区的赞扬。然而,该事件重新引发了关于开源项目以及托管和分发这些项目的平台是否需要更强的安全标准的讨论。随着软件行业继续严重依赖开源组件,确保这些软件包的安全性和完整性对于软件供应链的整体健康变得越来越重要。
此事件可作为案例研究,说明供应链安全的重要性以及单个受损软件包可能对大型用户群产生的潜在影响。使用开源软件的组织应考虑实施额外的监控和验证措施,以检测其工具中的异常行为,并应保持严格的访问控制和凭据管理实践,以最大程度地减少未来事件的潜在损害。
来源: Ars Technica


