点击上方,选择星标置顶,不定期资源大放送

阅读大概需要5分钟

Follow小博主,每天更新前沿干货

转载自:量子位

论攻击科技巨头有多难?

非常容易,而且是简单到极致的那种。

只需要制造虚假的pipnpm软件包,就可以轻松攻破微软苹果特斯拉PayPalYelp等数十家科技公司服务器。

没错,就是我们再熟悉不过的那些安装命令。

这是一位名叫Alex Birsan的黑客最近发现的巨大漏洞:只要上传和科技公司内部软件包名字相同的“李鬼”,就可以让他们在不知不觉中感染恶意软件。

波及范围之广、攻击方式之简单,令人咋舌。

Birsan由此发现了30多家科技公司的存在漏洞,有两家公司已经奖励他3万美元的的bug赏金。

怎么一回事?

事情起源于2020年夏天。

另一位黑客在网上分享了一段GitHub上有趣的Node.js源代码。这段代码原来仅供PayPal内部使用。

Birsan发现,package.json文件列出了安装软件所需的各种依赖项:

其中有来自npm的公共软件包,也有PayPal内部的私有软件包(红色),后者是由PayPal内部托管,这些软件包在公共npm注册表中搜索不到。

Birsan因此产生了很多的疑问:

  • 如果有人假冒PayPal私有软件包的名字,将恶意代码上传到npm会发生什么?

  • PayPal的内部项目是否有可能因此使用假冒的软件包,而不是原来的私有软件包?

  • 系统是否会因为安装假冒软件包而运行恶意代码?

  • 如果这种攻击方法行得通,可以从中获得科技公司的漏洞赏金吗?

  • 这种攻击还会对其他公司起作用吗?

攻击方法

带着这些想法,Birsan将同名的“恶意” Node程序包上传到npm注册表,这样PayPal的程序员如果安装他们的私有软件包,就会被假的软件欺骗和替代。

当然,Birsan的“恶意软件”并不包含破坏成分,它只有一个功能,当对方使用npm安装上与原软件同名的“李鬼”时,就会发送信息通知Birsan。

“恶意软件”将返回用户名、主机名、安装路径等信息,一方面可以帮助公司安全团队根据这些信息确定可能受到攻击的系统,同时还可以避免将Birsan的测试误认为是实际的攻击。

不过,要让安装假软件的服务器向自己发出信息并不容易。因为公司内部电脑都受到防火墙的保护,DNS渗透是解决办法。

Birsan通过DNS协议将信息发送到他的服务器,

Birsan数据经过十六进制编码,将数据伪装成DNS查询的一部分,DNS查询直接或通过中间解析器到达了他自定义的服务器。

通过这种攻击方式,他记录了每台计算机下载软件包的记录。

寻找攻击目标

有了攻击的基本计划,Birsan决定寻找更多可能的攻击目标。

首先就是把攻击的软件生态范围扩大,除了Node.js外,他还将代码移植到Python和Ruby上,这样使用PyPIRubyGems的公司也会受到影响。

接下来就是寻找各大公司的私有软件包名称。

在搜索了整整几天后,Birsan发现,可以在GitHub以及主要软件包托管服务中找到,也可以通过各种互联网论坛上的帖子。

甚至没必要那么麻烦,其实找到私有程序包名称的最佳位置,是在各家公司的javascript文件。

这和前面在package.json找到依赖项类似。同样,require()这些文件中泄漏的内部路径或调用也可能包含依赖项名称。

苹果、Yelp和特斯拉都可以通过这种方式找到。下面就是从Yelp网站上发现的依赖项。

接下来,就开始“攻击”了。

攻击结果如何?

“成功率简直让人吃惊。”

Brisan在按照上述方法进行攻击后,不禁发出这样的感慨。

他将这样的bug叫做依赖性混乱 (dependency confusion),并称已经在超过35个组织、所有三种测试编程语言中,均有发现:

有一点非常明确:非法占用有效的内部包名称,几乎成了一种万无一失的攻击方法。

绝大多数受此影响的公司,规模都是超过1000名员工的,这很可能反映出大型公司内部库的使用率很高。

并且,由于Javascript 依赖名称更容易找到,几乎75% 的已记录回调来自 npm 包,但这并不一定意味着 Python 和 Ruby 不易受到攻击:

事实上,尽管在我的搜索过程中只能识别出8个组织的内部Ruby gem名称,但其中有4个公司很容易因为RubyGems而产生“依赖性混乱”。

Brisan还举了个栗子????。

加拿大电商巨头Shopify就中过招,然后他们为了修复这个bug,特意设立了3万美元的赏金。

无独有偶,在去年8月,他向npm上产了一个Node包,这个包的代码被苹果内部的多台电脑中执行。

苹果为此也设立的3万美元的奖励,但当这位黑客向苹果反映“这个漏洞可能允许威胁参与者在苹果 ID 中注入’后门’”,苹果公司却不这么认为:

在运营服务中实现“后门”需要更复杂的事件序列。

但与此同时,苹果也确实证实,通过使用 npm 包技术,苹果服务器上的远程代码执行是可以实现的。

最后,Birsan奉劝大家不要随意尝试,因为他研究的35家公司,都有公共漏洞赏金计划或允许通过私有协议对安全性进行测试。

如果未经公司授权,请不要尝试这种测试!

大公司缘何频频中招?

看到这里,或许你也会产生疑问:

为什么会发生这种情况?

大公司在面对这样的攻击时,为何会如此脆弱?

Brisan表示,大公司不愿意透露其在“修复”过程中的细节信息,但在他与安全团队沟通过程中,却发现了些有意思的事情。

例如,造成Python“依赖性混乱”的罪魁祸首,似乎就是错误地使用了一个名为extra-index-url的“design by insecure”命令行参数。

当同时使用这个参数和pip install library,来指定你自己的包索引时,虽然达到的效果和预期差不多,但实际上 pip 在幕后做的事情是这样的:

  • 检查指定的(内部)包索引上是否存在库。

  • 检查公共包索引(PyPI)中是否存在库。

  • 以找到的版本为准进行安装。如果两个版本的软件包都存在,则默认从版本号较高的源码安装。

因此,若是将一个名为库9000.0.0的包上传到PyPI,就会导致上述例子中的依赖关系被“劫持”。

虽然这种事情是广为人知的,但若是在GitHub上搜索“extra-index-url”,就可以找到一些属于大型组织的易受攻击脚本——包括一个影响微软.NET Core组件的bug。

这个漏洞可能允许在.NET Core中添加“后门”,但不幸的是,微软并没有把这个漏洞放在“.NET错误赏金计划”的范围内。

还会有新攻击方法

对此,Brisan认为,虽然现在很多大型公司已经意识到了这个bug的存在,也在它们的基础设施中进行了修复,但还是有更多需要被发现的东西

具体而言,他相信要是存在一种更聪明的新方法来泄露内部包名称,那么将会暴露出更多更容易受到攻击的系统。

而若是寻找替代的编程语言和存储库作为目标,就会发现一些额外的“依赖性混乱”bug的攻击面。

……

如此看来,大型公司还需要在这种看似基础的漏洞上,再下点功夫了。

参考链接:

https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610

欢迎添加群助手微信,邀请您加入大佬云集-计算机视觉交流群!

???? 长按识别添加,邀请您进群!

黑入苹果、特斯拉竟如此容易!这位鬼才的攻击方法火了!相关推荐

  1. 黑入苹果特斯拉竟如此容易!这位鬼才的攻击方法火了,微软等35家公司一起悬赏...

    边策 金磊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 论攻击科技巨头有多难? 非常容易,而且是简单到极致的那种. 只需要制造虚假的pip.npm软件包,就可以轻松攻破微软.苹果.特斯拉.P ...

  2. AI一分钟 | 无人驾驶技术排名:百度居中游,苹果特斯拉垫底;Google在深圳设立办公室

    一分钟AI 苹果智能扬声器HomePod的组装厂之一英业达被爆已经开始出货HomePod,首批只有100万台. 美国调研机构发布最新无人驾驶技术排行榜,百度居中游,苹果特斯拉垫底. Google证实已 ...

  3. u盘安装centos8黑屏_u盘centos7 安装 黑屏苹果电脑怎么安装win7系统还原

    3.然后进入资料备份界面,通过勾选可以选择对"我的文档"."收藏夹"."桌面文件"进行备份,备份资料会保存到自动生成的"XBGho ...

  4. 真是疯了!3毫米厚的黑科技面料,竟能抗住-196℃极寒!

    程序君个人微信和我聊聊编程和创业的事加好友 ©程序员严选 丨为您甄选全球好物 就算里三层外三层的裹得像熊一样 竟然一点都不暖和 ... 一款用宇航服上黑科技材质,打造的神奇抗寒神器--S.KISTLE ...

  5. android beam苹果,安卓多年黑科技 苹果终于蹒跚追上_苹果 iPhone X _手机评测-中关村在线...

    安卓多年黑科技 苹果终于蹒跚追上 用"Android系统多年的黑科技,iOS现在终于用上了"这一句话来形容iOS 11.3支持刷公交卡这个行为一点也不为过.是的,早在三四年前多数A ...

  6. itunes未能连接到iphone_iTunes下载_苹果iTunes官方下载「32位|64位」

    iTunes是苹果官方推出的Apple官方数字媒体播放与管理应用程序.苹果iTunes官方下载中文版能将您所有的媒体文件和应用收藏导入iPad和iPhone,您还可以通过它购买应用.数字音乐.视频.电 ...

  7. 无人车企哪家强?通用第一Waymo第二,苹果特斯拉进黑榜

    李杉 安妮 编译整理 量子位 出品 | 公众号 QbitAI 昨天,咨询公司Navigant Research发布了一年一度的自动驾驶技术公司排名. 在这份排名中,Navigant将公司分为领导者.竞 ...

  8. 疯狂天才乔治·霍兹:17岁黑掉苹果,22岁搞垮索尼,还是特斯拉、谷歌最可怕的对手!

    IT人物(微信号:itrenwu) 猿妹 整编 我是天生的黑客,我不是因为某种理念而成为黑客,而是因为我无聊--这玩意很刺激,破解就是和系统进行较量.我在和硬件原作者进行较量,当破解进入一台电脑系统时 ...

  9. 疯狂天才乔治·霍兹:17岁黑掉苹果,22岁搞垮索尼,还是特斯拉、谷歌最可怕的对手!...

    我是天生的黑客,我不是因为某种理念而成为黑客,而是因为我无聊--这玩意很刺激,破解就是和系统进行较量.我在和硬件原作者进行较量,当破解进入一台电脑系统时,我感觉自己充满了血性.说这句话的人就是乔治·霍 ...

最新文章

  1. JSP笔记-XML 数据处理
  2. MongoDB资料大全
  3. generator自动生成mybatis的xml配置
  4. 文件路径最好使用正斜杠,使用反斜杠可能在unix系统中访问不到文件
  5. html网页访问计数器,HTML添加网站计数器(Cookie)
  6. Android开发之刷新图片到相册 | 刷新视频到相册的方法区分发广播刷新方法
  7. 【Day05】Html5 有哪些新特性?如何处理 Html5 新标签的浏览器兼容问题?如何区分 Html 和 Html5?
  8. SPSS计算变量(图文+数据集)【SPSS 012期】
  9. 阅读圣经丨聚合与迭代
  10. 用golang从企业微信里获取打卡记录的方法
  11. 刘德华--10有一种精神叫刘德华
  12. 台式电脑自带照片编辑软件将二寸照片改为一寸照片
  13. 计算机如何格式化和重装系统,怎样格式化c盘重新安装系统_重装系统时如何格式化C盘...
  14. 基于微信小程序的毕业设计题目(35)PHP医院预约挂号小程序(含开题报告、任务书、中期报告、答辩PPT、论文模板)
  15. Windows UI 测试
  16. PCIe是如何工作的——How PCI Express Works
  17. 蓝牙开发经验小结——蓝牙通讯
  18. 计算机控制系统第二章答案,计算机控制系统习题参考答案--第2章
  19. 纯CSS3制作逼真的iphone 6手机模型
  20. C语言校园超市管理系统

热门文章

  1. 开始iOS 7中自动布局教程(一)
  2. 文件fluent_胡言4种Fluent二次开发姿势
  3. ubuntu安装mysql依赖关系_ubuntu 安装mysql问题
  4. java反射的性能_java反射的性能问题
  5. 数据处理之不平衡数据过采样与下采样
  6. 从具体案例了解知识图谱
  7. python中元组tuple官方使用手册
  8. OPENGFILER存储柜
  9. html两个性别按钮并排,css实现男女切换按钮
  10. spring mysql mongdb_Spring Boot中使用MongoDB数据库的方法