我们在一家大型托管服务提供商处拥有一台 Linux 服务器,该服务器上托管着大约 75 个 Joomla! 网站。我们每天使用 maldet 扫描所有这些网站上是否存在恶意软件。在过去一周左右的时间里,文件一直出现在 /tmp 中
/tmp/20130930-202240-UkpAAEBaJ74AABlPLiMAAAAL-file-cdQfYQ
/tmp/20131001-004117-Ukp8nUBaJ74AAGD@-W0AAAAD-file-P6KfRr
/tmp/20131001-004128-Ukp8qEBaJ74AAGEdQ88AAAAI-file-W65Hp6
它们由运行 apache 的用户所有,并且包含恶意编码的 PHP 代码。我们想找出哪些网站或哪些网站正在受到攻击。我们需要知道这些文件是从哪里或如何创建的。显然,只有一个用户帐户控制着所有这些网站,因此很难缩小范围。
有没有办法审核 Apache 并确定这些文件是从哪个网站创建的?
谢谢,杰伊
答案1
您应该检查 apache2-mod-itk 并通过虚拟主机提供用户。您将轻松发现哪个用户有问题、哪个虚拟主机应该停止、创建了哪个文件、哪个数据包正在通过您的 iptables 防火墙……
那么在共享的世界中一切都变得简单
答案2
您是否有一个 joomla 网站列表,告诉您哪些网站已经过时?最近有一个严重的漏洞,允许远程代码执行
漏洞扫描器将要找到您的网站,尤其是当告诉他们运行哪个版本时,所以我的猜测是:应该调查每个过时的 joomla 实例。
答案3
也许可以将 /tmp 文件和 Apache 访问日志之间的时间戳关联起来?根据时间戳分辨率以及站点的繁忙程度,您可能能够确定哪些请求正在创建文件。
如果您使用的是 ext4,则可以关闭 ext4 上的 atime,以便文件访问时间模仿文件创建时间,并使用记录器将访问日志从 apache 发送到 rsyslog,这些措施一起会给您相当精确的时间戳,不一定 100% 准确但很可能足以追踪事情。
要调整 ext4 选项,请参阅:
man 8 mount
man 5 fstab
要调整 Apache 日志,请参阅:
http://httpd.apache.org/docs/2.2/logs.html
就像是:
CustomLog "|/usr/bin/logger -p local6.info" vhost_combined
要调整系统日志设置,请参阅:
man 8 rsyslogd