利用Dependency Confusion进入Paypal,Apple,Shopify等公司内部

漏洞报告原始地址:RCE via npm misconfig -- installing internal libraries from the public registry

漏洞报告时间为2020年7月17日 由alexbirsan提交 赏金为$30000 本篇文章记录的仅为提交给Paypal的漏洞报告,但另有针对多家企业的报告

漏洞概况

为了简约并快速的让读者能够对这样一份报告有大体上的理解,所以我决定将漏洞报告分析概况提到文章前头来。这样也方便读者决定是否要继续阅读完整报告,也尽量能让一些非专业读者能够对此篇文章所介绍的内容有所了解,而不至于太过枯燥乏味。

在配置项目的包依赖时,常常会混用外部公共包和内部自定义包,我们称此为dependency confusion(依赖混淆)问题。而由于包依赖程序的内部机制,就会导致错误的引入外部的恶意包,这也就为一次成功的供应链攻击(supply chain attacks)提供了机会。攻击者通过将配置文件中与内部包相同名称的恶意包上传到公共包管理库当中,使得当项目构建加载运行时错误引用这一恶意包,从而使得RCE攻击成为可能。

以python的包管理工具pip为例,当使用包含这一参数--extra-index-urlpip install library命令来指定所要使用的包时,其内部机制为:

  • 检测library是否存在于指定(内部)包索引中

  • 检测library是否位于公共包索引(PyPI)中

  • 安装所找到的版本,如果在两个位置都找到了library,那默认就会安装更高版本的那个

因此上传高版本的包到公共源当中,即可实现RCE攻击,且这一攻击的成功率非常之高。

当然,不单单是python的pip,管理Node包的npm,Ruby的RubyGems等也存在同样的问题。发掘这一漏洞的关键除了这些包管理工具的内部机制外,如何发现更多的暴露出来的内部包配置脚本同样也是值得探究的地方。

研究员alexbirsan利用自动化脚本搜集并利用这一dependency confusion(依赖混淆)问题,成功“入侵”了包括苹果(Apple)、Yelp、特斯拉(Tesla)和Shopify等大型公司,且每项漏洞报告都获得了不菲的奖金(

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值