近日PEAR 官方发布推文, 有个go-pear.phar安装包出现一个安全问题。
这意味着,如果你在过去6个月内从其官方网站下载了PHP PEAR包管理器(PHP PEAR package manager),则你的服务器很可能已经受到了攻击。
如果你在近六个月下载过这个 go-pear.phar 文件,你可以去 GitHub https://github.com/pear/pearweb_phars复制一份相同版本的副本文件,比较两文件的哈希值。如果不一样,你的文件很可能就是被篡改的。
上周,PEAR的维护人员在发现有人用核心PEAR文件系统中的篡改版本替换了原来的PHP PEAR包管理器(go-pear.phar),于是他们关闭了PEAR的官方网站。目前官方未公布服务重建的预计完成时间,不过维护人员目前正在进行调查,以确定攻击的范围以及攻击者最初是如何设法对服务器进行攻击的。
尽管PEAR开发人员仍在分析恶意程序包,根据2019年1月19日发布的一份安全声明,我们可以知道,被恶意代码污染的安装文件的下载时间已经至少有半年了。
PEAR是PHP扩展与应用库(the PHP Extension and Application Repository)的缩写。它是一个PHP扩展及应用的一个代码仓库,简单地说,PEAR之于PHP就像是CPAN(Comprehensive Perl Archive Network)之于Perl。PHP扩展和应用程序存储库(PEAR)是一个社区驱动的框架和分发系统,它使任何人都可以搜索和下载用PHP编程语言编写的免费库。这些开源库(更好地称为包)允许开发人员在其项目和网站中轻松添加其他功能,包括身份验证,缓存,加密,Web服务等等。PEAR的基本目标是发展成为PHP扩展和库代码的知识库,而这个项目最有雄心的目标则是试图定义一种标准,这种标准将帮助开发者编写可移植、可重用的代码。
当你为Unix/Linux/BSD系统下载PHP软件时,PEAR下载管理器(go-pear.phar)已预先安装,而Windows和Mac OS X用户需要手动安装该组件。
现在可以在Github上下载一个新的干净版本,即1.10.10版本的pearweb_pharshttps://github.com/pear/pearweb_phars/releases/tag/v1.10.10,Github也重新发布了干净的go-pear版本。
受污染的go-pear.phar版本为1.10.9,现在每个受污染的phar文件都含有独立的GPG签名。但目前只发现pear.php.net服务器上的副本受到了影响,因此影响了go-pear的GitHub副本。
开发人员进一步通知说,只有pear.php.net服务器上的副本受到了影响,据他们所知, go-pear.phar的GitHub副本并没有受到影响。
由于PEAR没有公布任何细节,目前仍不清楚谁是这次袭击的幕后黑手。
所有在过去六个月内从官方网站下载安装文件go-pear.phar的PHP / PEAR用户,都应该是受到了攻击,我们建议快速下载并安装Github版本。
分析进展和安全注意事项
在分析了包管理器的受污染版本之后,维护团队发现恶意模块是通过Perl在IP 104.131.154.154服务器生成反向shell,通受感染的服务器,攻击者可以完全控制包管理器,比如安装恶意应用程序、运行恶意代码和窃取敏感数据。
德国网络安全组织DCSO也分析了这个受污染的代码,该组织表示,服务器IP地址104.131.154.154指向一个网络域名bestlinuxgames[.]com,这个可能是攻击者使用的一个受到攻击的主机。另外PEAR团队在一系列推文中也表示:
除了发现这个IP外,目前还没有发现其他漏洞,install-pear-nozlib.phar也没问题,GitHub上的go-pear.phar文件也没有问题,这些文件可以用作对于任何可疑md5sum副本的比较。所以,如果你是在2018年12月20号之后下载的go-pear.phar,且在系统上安装了PEAR包,那么你应该与安全的副本做个比较,特别是如果系统中有“sh”和“perl”可用时。如果你是在2018年12月20日之前下载了go-pear.phar,则不用担心。
另外,本次的污染不会影响PEAR安装程序包本身,它只会影响你最初安装PEAR安装程序时使用的go-pear.phar可执行文件,这意味着使用pear命令安装各种PEAR包是不受此次影响的。