首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

黑客攻击 Packagist PHP 包,“劫持”数亿软件包

Bleeping Computer 网站披露,一个化名“neskafe3v1”的网络攻击者“黑进” PHP 软件包集中式存储库 Packagist 中 ,获取了四个不太活跃账户的访问权限,劫持十四个软件包。据悉,这些软件包累计安装已超数亿次。

有意思的是,包“劫持”事件发生后,这名网络攻击者联系了 Bleeping Computer 并表示之所以发动此次网络攻击活动,是想通过劫持软件包,找到一份工作。

至少劫持了 14 个 Packagist 包

Packagist 是一个 PHP 软件包的集中式存储库,为开发人员提供了一个快捷的方式来分享和安装 PHP 软件包,开发人员可以将自己的 PHP 软件包上传到 Packagist,并通过 Composer 进行安装和依赖管理。

被劫持包的名称主要包括:

值得一提的是,该名攻击者还向 Bleeping Computer 提供了材料,证明被劫持包的 Packagist 页面已经修改成了指向自己的(伪造的)链接,取代了此前指向合法 GitHub 存储库的链接。

例如,下面截图中 acmepp 包 Packagist 页面的 GitHub 链接,已经从 GitHub.com/acmehp/acmephp 改为研究人员的 repo。

Packagist 的发布过程与 npm 或 PyPI 等开源 repos 的发布过程略有不同,与直接将二进制文件或软件版本上传到 Packagist.org 相反,开发人员只需创建一个 Packagistorg 帐户,并提交一个链接到特定包的GitHub 回购,Packagist 的爬虫随后访问所提供的 repo,并聚合所有数据以显示在该包的 Packagist 页面上。

当开发人员使用“install”或“update”命令运行 Composer 时, Composer 实例首先在本地查找包的存在,如果找不到,则默认在 Packagist 上搜索此包,并检索为该包列出的 GitHub URL。之后,从该包的 Packagist 页面上列出的 GitHub 回购中下载该包的内容。也就是说,Packagist 直接从服务器托管和分发软件版本,这种方式与 npm 或 PyPI 的工作方式形成了鲜明对比。

通过修改每个包的 Packagist 页面,网络攻击者有效地劫持了 Composer 环境中使用的安装工作流。开发人员现在可以从 neskafe3v1 的 GitHub 回购中获取包的内容,而不是从项目的存储库中获取。

网络攻击者简单地将 composer.json 文件更改为类似于应用程序清单的文件,在这些包中读取”由neskafe3v1……Иõураборунапозиции应用安全、渗透测试人员、网络安全专家提供。“等内容。

更改了 composer.json 文件以演示黑客攻击:

网络攻击者通过分叉原始项目存储库,修改 composer.json 中 的“description”字段,并将更改提交到自身的分叉存储库中,但没有将更改合并回原始存储库。(这样做需要额外的访问权限,并且可能会引起维护人员的仔细检查)。

当 Bleeping Computer 要求网络攻击者分享劫持包裹使用的确切技术时,没有获得答案,反而收到了”我正在找工作,在被某家公司聘用后会披露一份报告,没有获得取工作之前,没有什么可谈的。”一段话。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230506A06R9P00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券