在一次针对Joomla!扩展目录(JED)的服务器级别妥协中,我们希望向社区提供一个事件的事后总结,包括导致此问题的事件、Joomla项目团队成员的响应,以及未来防止类似问题的行动计划。

总之,这是一次可以预防的妥协,经过分析,我们没有理由相信任何用户数据被不当访问。

问题通知

  • 2019年5月15日大约09:30 UTC,一位安全研究人员通知Joomla安全打击团队(JSST),他们发现了一个内部Jenkins CI服务器,该服务器被JED用来部署其实时和预发布网站的更新,并且能够利用CVE-2018-1000861在服务器上,并提供了一个敏感文件的截图作为利用的证据。
  • 在收到通知后,JSST成员与JED团队成员合作,将受影响的Jenkins系统下线并进行分析,以确定这台服务器是否以其他方式被妥协。

系统审计

  • 在调查Jenkins服务器妥协时,发现服务器上已经安装并运行了一个加密货币挖矿软件。加密货币挖矿软件是一种通过滥用服务器资源(CPU和内存)来创建数字货币的脚本。
  • 作为安装软件的一部分,发现服务器上的crontab中添加了一个脚本,该脚本会尝试连接到本地网络中的其他服务器并安装相同的挖矿软件。
  • 由于Jenkins服务器用于部署网站更新,该脚本能够访问生产JED服务器并自行安装。
  • 一旦在JED服务器上发现该问题,立即采取措施将受影响服务器上的所有服务下线,并限制仅允许特权个体访问,以进行全面根本原因分析并开始执行恢复计划。
  • 与此同时,对托管joomla.org架构的其他服务器进行了审计,以确保它们也没有受到损害,结果是只有JED的服务器受到了影响。
  • 对生产环境中的JED服务器进行了分析,以确定受损范围,包括服务器被认为被入侵的时间以及可能被访问的资源。
  • 分析得出结论,加密货币挖矿程序在2019年5月11日晚上被安装,并且没有不当访问数据(包括访问上传到JED检查器的扩展包和站点数据库)的证据。
  • 分析完成后,受损服务器被停用,并激活了替代服务器,将2019年5月10日的文件备份和2019年5月15日的数据库恢复到新服务器。
  • 恢复过程于2019年5月16日完成,JED团队采取了行动,重新应用了备份日期和JED被发现受损之间的相关用户操作。

行动计划

由于服务器受损,我们正在采取多项措施确保服务器的安全以及用户数据的安全。

  • 首先,计划永久停用受损的Jenkins服务器,并将JED迁移到Joomla使用的其他CI服务器之一,以消除冗余资源。
  • 其次,正在重置所有管理访问权限(服务器级密码和SSH密钥)。
  • 第三,出于极度谨慎,将使所有“记住我”令牌失效,并要求所有注册用户重置密码。
  • 最后,我们将审查内部工作流程和程序,改进我们的政策和向所有joomla.org子域的用户提供的安全特性(例如在所有网站上启用双因素认证)。

问题和答案

问:受损的原因是什么?
答:用于部署JED生产环境和预览网站的Jenkins服务器没有更新以应用安全补丁,导致Jenkins服务器和JED生产服务器受损。

问:受损的目的是什么?
答:根据分析,加密货币挖矿程序于2019年5月11日晚上被安装,并运行到2019年5月15日被发现。该挖矿程序滥用服务器资源(CPU和内存)来挖掘数字货币。

问:为什么没有应用安全补丁?
答:负责保持系统更新的团队当时认为所有在这两台机器上运行的服务,包括Jenkins服务器,都是由托管公司管理和更新的,因此并不知道需要采取任何行动。然而,Jenkins系统不在托管公司的维护范围内,因此未打补丁。

问:哪些数据被泄露?
答:目前,我们没有证据支持JED服务器上发生任何数据泄露。
攻击中使用的漏洞载荷没有提供任意命令执行、数据导出或生成后门的方法,因此根本不具备访问系统中存储的用户相关数据的代码。此外,JED操作涉及的数据量很大,我们没有检测到除常规操作和挖矿活动之外的行为。然而,如果发现确实有数据泄露,可能被访问的资源包括

  • 从本地文件系统上传的JED列表扩展包(用于使用JED Checker工具扫描扩展代码)
  • 数据库中的JED用户数据
    • 用户账户数据(姓名、电子邮件地址、bcrypt哈希密码)
    • JED支持工单
    • JED列表数据(扩展数据、评论)

再次强调,目前我们没有任何证据表明发生了数据泄露,但如果这个结论有变化,我们将提供进一步的更新。

问:我需要做什么?
答:如果您在JED网站上有用户账户,下次登录时您将需要重置密码。 由于用户账户不会在joomla.org子域名之间共享,因此这个要求仅影响您的JED登录。我们还建议您更改在其他网站上使用的相同用户名和密码组合的密码,包括其他joomla.org子域名。 Joomla中存储的密码使用bcrypt哈希,不容易猜测或破解。

问:扩展下载安全吗?
答:扩展下载不是从JED服务器提供的,因此并未因此次泄露而受到任何影响。所有扩展下载以及相关的购买和/或订阅交易都是在开发者选择的外部服务上进行的。

问:我的Joomla安装安全吗?
答:此次泄露是在JED服务器使用的第三方软件中发现的,而不是在Joomla本身。

问:由于恢复旧备份是否有数据丢失?
答:虽然我们已经采取了步骤确保数据差异已解决,但最近的变化(大约在UTC时间上午11点到下午1点之间)没有在恢复的数据库备份中。因此,我们建议所有用户登录JED,检查他们在5月10日至5月15日之间所做的任何更改是否仍然存在。这包括提交新的扩展、更新现有扩展、扩展评论和支持工单。