挂马检测工具给出的是告警或可疑文件线索,日志用来回答“谁在什么时候、从哪里、改了什么、影响了哪些访问”。正确做法是先固定检测工具发现的异常对象和时间点,再回到Web访问日志、错误日志、文件变更记录和进程记录中找同一时间窗的证据,最后把能相互印证的条目整理成时间线。日志不能替代工具扫描,但能把“疑似挂马”推进为“有依据的处置判断”。
在查日志之前,先把挂马检测工具的输出保存下来,包括告警时间、涉及路径、文件哈希、可疑URL或特征串。然后确定日志范围:以告警时间为基准,向前后各取一段,覆盖页面被访问、文件被写入和进程启动的可能时段。多人协作时,建议把这一步写成一张交接单,避免不同人重复拉取或漏掉关键时间窗。
如果工具只给出“发现可疑脚本”,没有具体时间,就用文件修改时间作为起点,再向访问日志中查找该文件首次被请求的时间。若两者差距很大,说明可能存在更早的写入动作,需要继续向前扩展时间窗。
日志分析的关键不是逐条阅读,而是围绕同一对象做关联。挂马检测工具指向的文件路径、URL或特征串,就是关联字段。把访问日志中的请求路径、来源IP、User-Agent、状态码,与错误日志中的异常报错、文件变更记录中的写入时间放在一起比对。
可以按下面的顺序推进:
假设某次检测发现一个可疑PHP文件,访问日志显示该文件在凌晨被外部IP多次请求,错误日志同一秒出现解析报错,文件变更记录显示该文件在前一小时被写入。这三条证据指向同一时间窗,就可以把分析重点放在“写入来源”而不是“文件内容本身”。如果只有访问记录,没有写入和报错记录,则只能说明该文件被访问过,不能直接认定它就是挂马入口。
多人协作时,建议把每条证据标注来源、时间、原始位置和判断结论。例如“访问日志第X行,时间,请求路径,状态码,判断:疑似触发”。这样交付时其他人可以复核,不需要重新翻原始日志。
日志能提供线索,但一项现象往往有多种解释。可疑文件被访问,可能是攻击者触发,也可能是正常功能误报、爬虫扫描或安全设备探测。判断时要看证据是否形成闭环:写入、执行、外联或篡改页面内容是否都有对应记录。
验证时不要只看单一日志。搜索引擎报告、第三方流量估算和站内统计口径不同,不能用流量变化直接反推挂马是否发生。更可靠的做法是用日志时间线回答:异常对象何时出现、何时被访问、何时被修改、是否被外部连接。若无法闭环,就如实标注“可能原因”,不要写成“已经定位”。
处置完成后,把本次使用的查询条件、时间窗、字段和判断规则整理成检查清单。下次挂马检测工具再次告警时,可以直接按同一流程拉取日志,减少重复沟通。维护重点包括:确认日志保留周期足够覆盖发现延迟,确认服务器时区统一,确认文件变更记录和访问日志可以按时间关联。
如果日志保留时间过短,工具告警时可能已经找不到对应记录。此时应先调整保留策略,而不是反复扫描同一批文件。对于多人协作场景,交接单中应明确谁负责拉取日志、谁负责比对、谁负责给出结论,避免同一时间窗被多人重复分析。
下一步可以做的具体动作是:选一次最近的挂马检测告警,按“工具输出—时间窗—访问日志—错误日志—文件变更—结论”的顺序整理成一页时间线,并让另一位同事按原始日志复核其中两条证据。能复核通过,说明这套日志补充分析流程可以固定下来。