Bug Hunter获得了13万美元的“依赖混乱”漏洞的奖励

研究人员在新型供应链攻击中攻击苹果,微软和其他主要科技公司

一位安全研究人员详细介绍了他如何能够进入新型软件供应链攻击中属于苹果,微软,贝宝和其他主要科技公司的系统。

虫子猎人亚历克斯·伯桑(Alex Birsan)博客文章昨天(2月9日)出版了他如何通过利用称为“依赖混乱”的漏洞来访问目标的内部系统。

依赖混乱是给出的名称脆弱性这可以允许攻击者通过用恶意的,同名的公共包裹覆盖私人使用的依赖软件包,在公司的网络中执行恶意软件。

许多公司在其源代码中同时使用私人和公共依赖性。公共依赖性可以上传到开源任何人的存款人Github,这意味着它们可能包含恶意代码。

名字叫什么?

伯桑说,在研究旨在内部贝宝使用的node.js文件时,他提出了依赖混乱的想法,这是由他的研究员朋友贾斯汀·加德纳(Justin Gardner)共享的。

Birsan说,该法规既包含私人和公共依赖性。在进一步的检查下,他意识到公共NPM注册表中不存在一些私人套餐名称。

“如果将恶意代码上传到这些名称下的NPM,会发生什么?”伯尔桑写道。

“ PayPal的某些内部项目是否有可能开始拖欠新的公共套餐,而不是私人套餐?”


阅读更多最新的安全软件开发新闻


Birsan测试了他的理论,将恶意代码上传到公共NPM依赖登记处,他在Github上发现的私人包,包装托管网站和在线论坛的名称。这些私人套餐都没有被列为公开。

研究人员发现,如果在公共和私人存储库上以相同名称列出了依赖项,则将优先使用公共版本,并将被使用。

令人担忧的是,这次攻击不需要开发人员的任何互动才能取得成功,可以自动与Birsan的恶意公众替换私人套餐。

伯尔桑说:“幸运的是,NPM允许在安装软件包时自动执行任意代码,使我可以轻松创建一个节点软件包,该节点软件包通过其预装脚本收集有关其安装的每台机器的一些基本信息。”

然后,他使用DNS渗透将信息发送给了自己,以逃避开发人员的检测。

其他目标

研究人员后来通过创建公共红宝石和python套件来进行相同的技术,将他的恶意代码移植到依赖关系中并重新创建攻击。

Birsan能够利用这种脆弱性来违反上述组织的内部系统以及Shopify,Netflix,Yelp,Tesla和Uber - 在此过程中至少获得了至少130,000美元的Bug Bounty。

他写道,在所有三种经过测试的编程语言的35个组织中发现了漏洞组织”。

伯尔桑写道:

从开发人员在自己的机器上犯的一次性错误,到对内部或基于云的构建服务器进行错误配置,再到系统脆弱的开发管道,一件事很明确:蹲下有效的内部包装名称是一种几乎可以肯定的方法,可以进入该方法。一些最大的科技公司的网络,获得远程代码执行,并可能允许攻击者在构建过程中添加后门。

防止袭击

此后,该问题已确认已由Apple,Yelp和Microsoft解决,后者已发布了深入咨询(PDF)关于使用私人软件包时如何减轻风险。

微软为该漏洞授予了最高的漏洞赏金支出,该漏洞是确保用户确保所有私人套餐都无法在公共供稿上获得,或者确保通过安全合并公众和私人视图的单个供稿访问它们。

有关如何安全使用私人依赖软件包的更多信息咨询(PDF)。


你也许也喜欢WordPress安全缺陷:运行NextGen Gallery插件的800,000个站点可能容易受到PWNage的影响