PHP的Git服务器被黑客攻击 源码库被添加后门


在最新的软件供应链攻击中,PHP官方Git仓库被黑客攻击,代码库被篡改。昨天,PHP 团队在 git.php.net?服务器上维护的 php-src Git 仓库中被推送了两个恶意提交。攻击者在上游提交了一个神秘的改动,称其正在"修复排版",假装这是一个小的排版更正,并且伪造签名,让人以为这些提交是由已知的PHP开发者和维护者Rasmus Lerdorf和Nikita Popov完成的。

实际上,攻击者的恶意提交是植入了远程代码执行后门。考虑到PHP仍然是服务器端编程语言,为互联网上超过79%的网站提供支持,这一事件令人震惊。新增的第370行调用zend_eval_string函数的地方,这段代码实际上是为运行这个被劫持的PHP版本的网站埋下了一个后门,以获取轻松的远程代码执行(RCE)。

"如果字符串以'zerodium'开头,这一行就会从useragent HTTP头内执行PHP代码。"PHP开发者Jake Birchall向最先指出这一异常的Michael Vo?í?ek回应道。

PHP的Git服务器被黑客攻击 源码库被添加后门
PHP的Git服务器被黑客攻击 源码库被添加后门

在电子邮件采访中,PHP维护者Nikita Popov告诉我们。

"第一次提交是在几个小时后被发现的,作为常规提交后代码审查的一部分。Popov表示,"这些改动是相当明显的恶意的,并且马上就被还原了"。

这并不奇怪,因为像Git这样的源码版本控制系统,可以将一个提交的内容签名为来自本地的其他人,然后将伪造的提交上传到远程的Git服务器上,这样就会给人一种印象,好像它确实是由被已知的开发者签名的。

虽然对事件的完整调查还在进行中,但根据PHP维护者的说法,这次恶意活动源于被入侵的git.php.net服务器,而不是个人的Git账户被入侵。作为此次事件后的预防措施,PHP维护人员决定将PHP官方源码库迁移至GitHub。

"虽然调查仍在进行中,但我们决定维护自己的git基础设施是一个不必要的安全风险,我们将停止使用git.php.net服务器。"

PHP的Git服务器被黑客攻击 源码库被添加后门
PHP的Git服务器被黑客攻击 源码库被添加后门

"取而代之的是,GitHub上的仓库,以前只是镜像,现在将成为规范的来源。"Popov宣布。随着这一改变的进行,从现在开始,任何代码修改都要直接推送到GitHub上,而不是git.php.net服务器上。

那些有兴趣为PHP项目做出贡献的人现在需要在GitHub上被添加为PHP组织的一部分。相关说明在同一个安全公告中提供。

要成为该组织的成员,你需要在你的GitHub账户上启用双因素认证(2FA)。"我们正在审查仓库中除了两个引用的提交之外的任何损坏,在此期间,它可能被克隆/分叉,但这些更改并没有进入任何标签或发布工件中。"

"这些改动是在PHP8.1的开发分支上,该分支将在年底发布。"PHP团队已经证实,他们计划在接下来的日子里最终退役他们的git服务器,并永久转移到GitHub。