You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何排查导致RPM校验失败(md5、大小、时间变更)的文件篡改进程

RPM包文件篡改排查方案

事后溯源(已发生篡改场景)

  • 先锁定篡改发生的精确时间范围:执行stat 被篡改的文件路径,获取文件的修改时间(mtime),所有后续排查都围绕该时间点前后1小时的范围缩小目标。
  • 排查系统操作日志
    • 若提前开启了auditd服务,优先查询审计日志:执行ausearch -f 被篡改的文件路径 --start '篡改时间前1小时' --end '篡改时间后10分钟',正常配置的auditd会直接记录修改该文件的进程PID、运行用户、父进程信息。
    • 筛选系统常规日志:执行grep -aE "(sudo|yum|rpm|wget|curl)" /var/log/messages /var/log/secure /var/log/cron | grep "篡改时间关键词",排查对应时间点有没有特权操作、软件包更新、定时任务触发记录。
  • 排查用户操作与进程残留
    • 导出所有特权用户的操作历史:cat /root/.bash_history /home/*/.bash_history | grep -E "(vi|vim|echo|cp|mv|wget) 目标文件所在目录",匹配对应时间的手动修改操作。
    • 若开启了进程记账服务(psacct),执行lastcomm --since "篡改时间前1小时" | head -100,筛选对目标文件有写入权限的进程记录。
  • 排查自动执行逻辑
    • 扫描所有定时任务:检查/var/spool/cron/*、/etc/cron.d/*、/etc/cron.hourly/*等路径下的脚本,有没有自动替换、修改软件包文件的逻辑。
    • 排查自启动服务:检查/etc/rc.d/、/usr/lib/systemd/system/下的自启动项,排除服务启动时覆盖文件的可能。
  • 恶意程序排查
    • 执行rkhunter --check、chkrootkit扫描系统Rootkit、恶意后门,同时执行ls -la /proc/*/exe | grep deleted排查无对应二进制文件的可疑残留进程。

事前捕获(未定位到进程,防止二次篡改)

如果现有日志不足以定位篡改进程,可以部署监控捕获下一次篡改行为:

  • 配置auditd监控规则:执行auditctl -w 被篡改文件路径 -p w -k php70_file_tamper,后续所有对该文件的修改操作都会被审计日志完整记录,篡改触发后执行ausearch -k php70_file_tamper即可直接获取进程信息。
  • 配置inotify实时监控:后台执行inotifywait -mq 被篡改文件路径 -e modify --format '%w%f %T' --timefmt '%F %T' >> /tmp/file_monitor.log,触发修改时自动联动ps auxf、lsof 被篡改文件路径记录当前操作进程的完整上下文。
  • 兜底防护:如果确认该文件不会有合法变更,可执行chattr +i 被篡改文件路径设置不可变属性,所有进程(包括root)都无法修改/删除该文件,尝试修改的操作会直接报错并在系统日志留下记录。

注意:排查过程中不要直接恢复或覆盖被篡改的文件,避免破坏篡改时间戳、残留属性等关键证据,建议先对被篡改文件做完整备份后再操作。

内容的提问来源于stack exchange,提问作者Hasan Aliyev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 21:09:03