vlambda博客
学习文章列表

PHP的Git服务器被入侵,源代码被添加后门

在最新的软件供应链攻击中,PHP官方Git仓库被黑客攻击,代码库被篡改。

3月28日,攻击者使用PHP的作者Rasmus Lerdorf和Jetbrains开发者Nikita Popov的账号,向git.php.net服务器上的 php-src 存储库推送了两次恶意提交。

PHP Git服务器被植入RCE后门

PHP是一种开源的计算机脚本语言,为互联网上超过79%的网站提供动力。因此,事件一经曝光被引起了强烈关注。

负责人Popov在公告中表示,他们目前还不知道事件是怎样发生的,但是此次事件导致的后果是git.php.net服务器的数据泄露而不是简单的单个账号的泄露。

PHP的Git服务器被入侵,源代码被添加后门

官方公告

经观察,在两个恶意提交中,攻击者在上游发布了一个假装成修正文字输入错误的神秘修改。

PHP的Git服务器被入侵,源代码被添加后门

攻击者以Rasmus Lerdorf的身份签署的恶意提交(非法)植入远程代码执行后门

然而,仔细检查一下新增的第370行调用zend_eval_string函数的地方,可以发现,这段代码实际上是为运行被劫持的PHP版本的网站植入了一个后门,以获得轻松的远程代码执行(RCE)。

PHP的开发者表示,如果字符串以’zerodium’开头,这一行就会从useragentt HTTP头内执行PHP代码。

此外,恶意代码中包含了一条注解 “REMOVETHIS: sold to zerodium, mid 2017”。值得注意的是,Zerodium是一家知名的零日漏洞经纪商,而注释的意思是“漏洞在2017年中出售给了zerodium”。对此,而Zerodium的CEO Chaouki Bekrar认为攻击者很可能试图出售这个漏洞,但找不到卖家,所以攻击者干脆自己恶搞。

PHP的Git服务器被入侵,源代码被添加后门不过,PHP相关负责人表示,恶意提交在提交几小时后,就在他们进行常规的代码审查时被发现。这些更改的恶意很明显,所以很快被还原了。

对于Git这样的源代码版本控制系统来说,这样的事件会发生很正常。因为可以把提交的内容为打上本地任何一个人的签名,然后再把伪造的提交内容上传到Git服务器上。这样一来,就会让人觉得这个提交确实是由签名的人提交的。

PHP官方代码库迁移到GitHub

作为此次事件后的预防措施,PHP维护人员决定将PHP官方源码库迁移至GitHub。

他们表示,虽然调查还在继续,但为了减少自己的Git基础设施所面对的风险,他们决定关闭git.php.net的服务器。原本只是镜像的GitHub上的存储库,之后将成为正式服务器。

并且,从现在开始,任何修改都要直接推送到GitHub上而不是原先的服务器。

那些想要帮助PHP的人可以申请在GitHub上被添加为PHP组织的一部分。不过,如果要成为该组织的一员,先要在自己的GitHub账户上开启双因素认证。

目前,PHP还在检查除了那两个恶意提交外的威胁,并且检查是否有任何代码在恶意提交被发现之前被分发到下游。

PHP的Git服务器被入侵,源代码被添加后门

PHP的Git服务器被入侵,源代码被添加后门 交易担保 FreeBuf+ FreeBuf+小程序:把安全装进口袋