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