最近(年3月28日),PHP团队发现其git.php.net服务器被入侵,官方仓库中出现了两个恶意提交,并且这些提交伪造了PHP开发者和维护者RasmusLerdorf和NikitaPopov的签名。
伪造签名恶意提交代码被攻击的代码是在预计今年年底发布的PHP8.1开发分支中,这两个恶意提交试图在PHP中留下一个远程代码执行的后门:如果字符串以“zerodium”开头,就会从useragentHTTP头内执行PHP代码。
目前,PHP仍然是服务器端主要的编程语言,互联网上超过79%的网站由PHP提供支持,其中就包括我们大家都在使用的WordPress,如果该后门没有被发现,PHP8.1版本发布之后,后果将非常严重。
所幸这两个恶意提交很快被发现然后还原,NikitaPopov随即发布声明表示此次事故应该不是个人账户泄漏,而是git.php.net服务器被入侵。因为在Git这样的源码版本控制系统中,可以在一个提交使用来自本地其他人的签名,然后把伪造的提交上传到远程的Git服务器上,这样一来,就会让人觉得这个提交确实是由该签名所有人签署的。
PHPGit服务迁移到GitHub此外,PHP团队表示维护自己的Git服务是一个不必要的安全风险,所以将在接下来的几天内停止使用git.php.net服务器,而原本GitHub上的镜像仓库将成为主仓库,以后所有修改会直接推送到GitHub上,而不再是git.php.net服务器上。
因此,今后想为PHP做贡献的人需要先通过双重身份认证加入GitHub上的PHP组织,在GitHub上的提交都要开启2FA(双重身份验证)认证,在开启2FA后,每次需要移动设备来额外验证一次身份,通过扫描