在最新的软件供应链攻击中,PHP官方Git仓库被黑,代码库被篡改。最近,PHP维护人员表示,黑客可能已经拥有包含密码的用户数据库。3月28日,攻击者使用PHP作者RasmusLerdorf和Jetbrains开发人员NikitaPopov的帐户将两个恶意提交推送到git.php.net服务器上的php-src存储库。用户数据库可能已被破坏该事件最初被视为对git.php.net服务器的破坏。但对该事件的进一步调查显示,这些提交是使用HTTPS和基于密码的身份验证推送的结果,导致研究人员怀疑master.php.net用户数据库可能存在泄漏。同时,研究人员还发现,黑客需要对用户名进行多次猜测,一旦找到正确的用户名,认证就会成功。但如果数据库已经泄露,黑客为什么还要猜测呢?到目前为止,研究人员还没有弄清楚原因。另外,据说master.php.net认证系统使用了非常老旧的操作系统和PHP版本,这使得攻击者有可能利用软件漏洞发起攻击。因此,维护人员已将master.php.net迁移到支持TLS1.2的新main.php.net系统。此外,维护人员使用bcrypt而不是普通的MD5哈希重置了所有现有密码和存储的密码。事件回顾PHPGit服务器被植入RCE后门PHP是一种开源计算机脚本语言,为互联网上79%以上的网站提供支持。因此,该事件一经曝光,便引起了强烈关注。波波夫负责人在公告中表示,他们目前还不清楚事件是如何发生的,但此次事件的后果是git.php.net服务器的数据泄露,而不是简单的单个账号泄露。官方公告据观察,在两次恶意提交中,攻击者在上游发布了一个神秘的修改,假装修复了一个拼写错误。攻击者签名为RasmusLerdorf(非法)的恶意提交植入远程代码执行后门,但仔细查看新添加的调用zend_eval_string函数的370行可以发现,这段代码实际上是劫持执行的PHP版本该网站植入了一个后门,以便于远程代码执行(RCE)。PHP的开发人员表示,如果字符串以“zerodium”开头,则此行会从useragentHTTP标头中执行PHP代码。此外,恶意代码包含一条评论“REMOVETHIS:soldtozerodium,mid2017”。值得注意的是,Zerodium是一家知名的零日漏洞中间商,评论的意思是“2017年年中将漏洞卖给了zerodium”。对此,Zerodium的CEOChaoukiBekrar认为,攻击者很可能试图出售这个漏洞,但找不到卖家,所以攻击者只是在自我欺骗。不过,PHP相关负责人表示,在恶意提交数小时后,他们在定期代码审查时才发现。这些变化的恶意是显而易见的,所以很快就被恢复了。对于像Git这样的源代码版本控制系统,发生这样的事件是很正常的。因为提交的内容可以由任何本地人签名,然后可以将伪造的提交内容上传到Git服务器。这会给人一种印象,即提交确实是由签署它的人做出的。官方PHP代码库已迁移至GitHub。作为此事件发生后的预防措施,PHP维护人员决定将官方PHP源代码库迁移到GitHub。他们表示,虽然调查仍在进行中,但他们决定关闭git.php.net服务器,以降低其Git基础设施面临的风险。最初只是GitHub上的镜像仓库,后来成为官方服务器。而且,从现在开始,任何更改都将直接推送到GitHub而不是原始服务器。想要帮助PHP的人可以在GitHub上申请加入PHP组织。但是,要成为该组的成员,您必须首先在您的GitHub帐户上启用双因素身份验证。目前,PHP也在检查除了这两个恶意提交之外的威胁,并检查在发现恶意提交之前是否有任何代码被分发到下游。来源:bleepingcomputer
