网站挂马检测:怎样记录改动前后的基线

📍 WDQWDWQD987AAAAA:216.73.216.218
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /41ee85d036b2.html
📄

网站挂马检测:怎样记录改动前后的基线

记录网站挂马检测的改动基线,核心是保存一份“改动前”的可核对快照,再在改动后用同一套方法重新采集并逐项比对。基线不是一次性的截图,而是包含文件哈希、关键配置、页面输出和访问日志线索的一组证据。只有采集口径一致,比对结果才能说明问题。

从一个假设例子开始

假设你的站点某天被搜索引擎提示存在恶意跳转。你检查首页源码,发现页面底部多了一段陌生的脚本。此时直接删除脚本并不够,因为你无法确认它是唯一改动,也无法判断是否还有后门。正确做法是先建立基线,再处置。

改动前的基线可以这样采集:

  1. 对网站根目录做一次完整文件清单,记录每个文件的路径、大小、修改时间和哈希值。
  2. 导出当前数据库中的关键表结构,尤其是文章表、用户表和配置表。
  3. 保存首页、栏目页和典型内容页的原始HTML输出,不经过浏览器渲染。
  4. 记录服务器上计划任务、启动项和最近登录记录。

这些记录要存放在站点之外,例如本地加密目录或独立的版本库。如果放在网站目录内,攻击者可能一并篡改。

改动后如何做同口径比对

处置完可疑文件后,用完全相同的方式再采集一次。比对时重点看三类差异:

比对结果中,缓存目录、上传目录和日志文件的变动通常属于正常范围,但前提是你能解释它们的来源。如果某个核心程序文件的哈希值变化,而你不记得做过升级,就需要进一步查看该文件内容。

基线记录中常见的三个错误

第一,只记录文件修改时间。修改时间可以被篡改,单靠它无法证明文件未被改动。哈希值更可靠,但也要注意采集时文件是否正在被写入。

第二,基线保存在同一台服务器上。攻击者获得权限后,可以同时修改文件和基线记录,比对就失去意义。

第三,比对时混用了不同口径。例如改动前统计的是磁盘文件,改动后统计的是版本库文件,两者范围不同,差异无法解释。采集前先固定目录范围、排除规则和哈希算法,并写下来。

判断结果时要注意什么

发现差异不等于确认挂马。一个文件哈希变化可能有多种解释:程序自动更新、管理员手动修改、缓存刷新或攻击者植入。要结合文件内容、访问日志和改动时间综合判断。如果差异文件包含混淆代码、外链请求或异常编码,风险更高;如果只是版本号变化,则可能属于正常升级。

对于第一次接触这个问题的人,建议先完成一次基线采集,再执行任何删除或修复操作。没有基线,后续所有判断都缺少参照。下一步可以选定一个固定目录,用哈希工具生成第一份清单,并把它存到站点之外。

图1 图2

nginx