依赖攻击可让PayPal,Microsoft,Apple,Netflix,Uber和其他30家公司执行代码

几天前 发布了一个令人惊讶的简单方法,该方法允许攻击应用程序中的依赖项 使用内部软件包存储库开发的。 发现问题的研究人员 他们能够运行您的代码 在包括PayPal,Microsoft,Apple,Netflix,Uber,Tesla和Shopify在内的35家公司的内部服务器上运行。

黑客是在与受攻击的公司配合下进行的Bug赏金计划的一部分,这些攻击者已经获得了130.000万美元的奖金来识别漏洞。

该方法基于以下事实: 许多公司在其内部应用程序中使用NPM,PyPI和RubyGems的标准存储库依赖项以及未公开分发或从其自己的存储库下载的内部依赖项。

问题是包管理器 像npm,pip和gem 他们甚至试图从公共存储库下载公司的内部依赖项。 为了进攻 只需定义具有内部依赖关系的软件包的名称,然后使用相同的名称创建自己的软件包 在NPM,PyPI和RubyGems的公共存储库中。

该问题不仅针对NPM,PyPI和RubyGems,而且还出现在其他系统上,例如NuGet,Maven和Yarn。

在研究人员无意中注意到在GitHub上发布的公开代码中, 许多公司没有从清单文件中删除对其他依赖项的提及 用于内部项目或实现扩展功能时。 在Web服务的JavaScript代码以及许多公司的Node.JS,Python和Ruby项目中也发现了类似的痕迹。

主要泄漏与内容的嵌入有关 在构建过程中从可公开获取的JavaScript代码中的package.json文件中获取数据,以及在require()调用中使用实际的路径元素,这些可用于判断依赖项名称。

扫描了数百万个公司域,发现了数千个JavaScript程序包名称 不在NPM存储库中。 在编译了内部程序包名称的数据库之后,研究人员决定进行一项实验,以破解参与Bug赏金计划的公司的基础架构。 结果出乎意料地有效 研究人员得以在负责基于连续集成系统进行构建或测试的许多开发计算机和服务器上运行其代码。

在下载依赖项时,软件包管理器npm,pip和gem主要从主要公共存储库NPM,PyPI和RubyGems中安装了软件包,这些软件包被认为具有更高的优先级。

在私人公司的存储库中存在具有相同名称的类似软件包的情况会被忽略,而不会显示任何警告或导致崩溃 可能会引起管理员的注意。 在PyPI中,下载优先级受版本号影响(无论存储库如何,都下载了软件包的最新版本)。 在NPM和RubyGems中,优先级仅取决于存储库。

研究人员已将软件包放置在与找到的内部依赖项名称相交的NPM,PyPI和RubyGems存储库中,向安装前运行的脚本(预先安装在NPM中)添加了代码,以收集有关系统的信息并提交信息接收到外部主机。

为了传达有关黑客攻击成功的信息,请绕过阻止外部流量的防火墙,这是一种通过DNS协议组织秘密通道通信的方法。 正在运行的代码在攻击域的控制下解析了攻击域中的主机,这使得有可能收集有关DNS服务器上成功操作的信息。 传递了有关主机,用户名和当前路径的信息。

所有记录的代码执行中有75%与NPM软件包下载相关,这主要是因为JavaScript中的内部模块名称比Python和Ruby中的依赖项名称要多得多。

数据来源: https://medium.com/


成为第一个发表评论

发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。