Bleeping Computer 网站披露,一个化名“neskafe3v1”的网络攻打者“黑进” PHP 软件包集中式存储库 Packagist 中 ,失掉了四个不太生动账户的访问权限,劫持十四个软件包。据悉,这些软件包累计装置已超数亿次。
无心思的是,包“劫持”事情出现后,这名网络攻打者咨询了 Bleeping Computer 并示意之所以发起此次网络攻打优惠,是想经过劫持软件包,找到一份上班。
Packagist 是一个 PHP 软件包的集中式存储库,为开发人员提供了一个快捷的方式来分享和装置 PHP 软件包,开发人员可以将自己的 PHP 软件包上行到 Packagist,并经过 Composer 启动装置和依赖治理。
被劫持包的称号重要包含:
值得一提的是,该名攻打者还向 Bleeping Computer 提供了资料,证实被劫持包的 Packagist 页面曾经修正成了指向自己的(伪造的)链接,取代了此前指向非法 GitHub 存储库的链接。
例如,上方截图中 acmepp 包 Packagist 页面的 GitHub 链接,曾经从 GitHub.com/acmehp/acmephp 改为钻研人员的 repo。
acmepp 劫持软件包列表页面(Bleeping Computer)
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 要求网络攻打者分享劫持包裹经常使用确实切技术时,没有取得答案,反而收到了”我正在找上班,在被某家公司聘用后会披露一份报告,没有取得取上班之前,没有什么可谈的。”一段话。