尽管攻击者仍然未知,但发布了有关该事件的更多详细信息
维护者php一位不知名的演员将后排代码推向脚本语言的官方PHP GIT存储库后,已发布了一份验尸报告。
如前所述每日swbeplay2018官网ig, 一个攻击者将两次提交给PHP-SRC存储库,其中包含一个允许的后门远程代码执行(RCE)。
人们认为他们可以访问主服务器,这使他们能够以维护者名称进行的次要编辑的幌子种植后门。
昨晚(4月6日),维护者Nikita Popov发布了更多详细信息与攻击有关,并说团队不再相信git.php.net服务器已被妥协,而是Master.php.net用户数据库被泄漏了。
该更新包括有关改善安全性的一系列更改的信息,包括Master.php.net已迁移到新系统Main.php.net。
所有php.net密码已经重置,用户需要通过“忘记密码”功能请求新的。
波波夫还透露,git.php.net和svn.php.net现在都是“但暂时可用的”。
深潜
首次怀疑PHP共同创造者Rasmus Lerdorf的帐户已被妥协,Popov说她调查了PHPgiolite安装以确定哪个帐户推出了恶意代码。
那时她意识到没有git-receive-pack两种恶意提交的条目,这意味着它们完全绕过了吉蒂尔基础设施。
波波夫写道:“这被解释为服务器妥协的可能证据。”
然后,团队中止Git.php.net服务器并迁移到github作为存储库主机。
波波夫还发现,git.php.net不仅有意地支持推动更改
而且还通过https。
“后者没有使用吉托石,而是使用git-http-backendApache2 Digest身份验证的背后针对Master.php.net用户数据库。”
Popov补充说:“基于访问日志,我们可以确定确实使用HTTPS和基于密码来推动提交验证。”
不清楚的入口点
该团队怀疑数据库泄漏使恶意攻击者访问了密码,尽管他们还尝试了几次尝试猜测用户名,波波夫写道:“目前尚不清楚为什么攻击者在这种情况下需要猜测用户名”。
鉴于可能的泄漏,已经进行了更改,包括迁移到Master.php.net(正在运行PHP 8),并引入对TLS1.2的支持。
Popov还指出,该实现已转向使用参数化查询,“更有信心不能发生SQL注射”。
密码现在使用BCRypt存储在先前以与HTTP Digest身份验证兼容的格式后存储 - “本质上是普通MD5 Hash” - 这是Git.php.net和svn.php.net上HTTP身份验证所必需的。
有关更改的更多详细信息可以在Popov的咨询中找到。