如何通过auditlog定位将PHP文件重命名为php.suspected的进程名
我之前维护Nextcloud环境时碰到过几乎一模一样的情况,这类文件被标记成可疑大概率是安全防护工具触发的,但既然你已经通过auditlog拿到了PID/PPID却找不到对应进程名,试试下面这些针对性的排查方法:
1. 提取auditlog的完整事件细节
你之前的命令可能截断了关键信息,建议直接查询该文件的完整审计事件,从中提取进程名(comm字段):
# 搜索该文件的所有审计事件并转换为可读格式 sudo ausearch -f /home/apache/www/html/nextcloud/3rdparty/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php --raw | sudo aureport -i
在输出结果里找包含rename操作的记录,里面的comm字段就是执行重命名的进程名——哪怕进程已经退出,审计日志也会留存这个信息。
2. 查看历史进程记录(针对已退出的进程)
如果进程已经结束,ps命令自然查不到,这时候可以用lastcomm工具查看历史进程活动:
# 先安装进程审计工具(Debian/Ubuntu) sudo apt install acct # 或者RHEL/CentOS sudo yum install psacct # 搜索目标PID的历史进程信息 lastcomm | grep <你的目标PID>
这个工具会记录系统中所有执行过的进程,哪怕已经退出,也能看到进程名和执行的命令细节。
3. 排查安全防护工具的日志
Eval_.php是php-parser库中的合法文件,被重命名为.suspected几乎肯定是安全工具的误报,建议检查以下日志:
- ClamAV日志:查看
/var/log/clamav/clamav.log,搜索该文件路径,确认是否是病毒扫描触发的隔离 - Nextcloud内置安全日志:登录Nextcloud管理后台→日志,或者直接查看文件
/home/apache/www/html/nextcloud/data/nextcloud.log,搜索Eval_.php或suspected关键词 - ModSecurity日志:如果启用了ModSecurity,检查
/var/log/apache2/modsec_audit.log(或对应Apache日志目录)
4. 实时监控文件变化以捕获进程
如果这个文件还会被重复重命名,可以用inotifywait实时监控目录,一旦文件被修改就立刻捕获触发进程:
# 安装inotify-tools sudo apt install inotify-tools # 监控目标目录,捕获rename操作 sudo inotifywait -m -e rename /home/apache/www/html/nextcloud/3rdparty/nikic/php-parser/lib/PhpParser/Node/Expr/
当看到文件被重命名的输出时,立刻执行ps aux | grep <输出中的PID>,就能抓到还在运行的进程。
5. 追踪Apache/PHP父进程
因为文件位于Web服务器目录,大概率是Apache或PHP-FPM的子进程触发的操作,你可以通过PPID反向追踪父进程:
# 查看PPID对应的父进程名称 ps -p <你的目标PPID> -o comm=
如果父进程是php-fpm或httpd,可以进一步查看该进程的所有子进程,确认是否有相关的执行记录。
额外提示
确认是误报后,你可以在对应安全工具中添加规则排除该文件,比如在ClamAV中添加排除路径,或者在Nextcloud安全设置中信任该文件路径,避免后续被重复重命名。
内容的提问来源于stack exchange,提问作者XU LUV

