记录网站挂马检测的改动基线,核心是保存一份“改动前”的可核对快照,再在改动后用同一套方法重新采集并逐项比对。基线不是一次性的截图,而是包含文件哈希、关键配置、页面输出和访问日志线索的一组证据。只有采集口径一致,比对结果才能说明问题。
假设你的站点某天被搜索引擎提示存在恶意跳转。你检查首页源码,发现页面底部多了一段陌生的脚本。此时直接删除脚本并不够,因为你无法确认它是唯一改动,也无法判断是否还有后门。正确做法是先建立基线,再处置。
改动前的基线可以这样采集:
这些记录要存放在站点之外,例如本地加密目录或独立的版本库。如果放在网站目录内,攻击者可能一并篡改。
处置完可疑文件后,用完全相同的方式再采集一次。比对时重点看三类差异:
比对结果中,缓存目录、上传目录和日志文件的变动通常属于正常范围,但前提是你能解释它们的来源。如果某个核心程序文件的哈希值变化,而你不记得做过升级,就需要进一步查看该文件内容。
第一,只记录文件修改时间。修改时间可以被篡改,单靠它无法证明文件未被改动。哈希值更可靠,但也要注意采集时文件是否正在被写入。
第二,基线保存在同一台服务器上。攻击者获得权限后,可以同时修改文件和基线记录,比对就失去意义。
第三,比对时混用了不同口径。例如改动前统计的是磁盘文件,改动后统计的是版本库文件,两者范围不同,差异无法解释。采集前先固定目录范围、排除规则和哈希算法,并写下来。
发现差异不等于确认挂马。一个文件哈希变化可能有多种解释:程序自动更新、管理员手动修改、缓存刷新或攻击者植入。要结合文件内容、访问日志和改动时间综合判断。如果差异文件包含混淆代码、外链请求或异常编码,风险更高;如果只是版本号变化,则可能属于正常升级。
对于第一次接触这个问题的人,建议先完成一次基线采集,再执行任何删除或修复操作。没有基线,后续所有判断都缺少参照。下一步可以选定一个固定目录,用哈希工具生成第一份清单,并把它存到站点之外。