网站被黑后,记录变更与复盘的核心是先建立一条可核对的时间线:从发现异常、确认入侵痕迹、实施清理,到恢复访问,每一步都记下时间、操作人、证据和结果。这样做不是为了写一份好看的报告,而是为了回答三个问题——入侵从哪进来、哪些改动是攻击者留下的、哪些改动是你自己做的。人手和时间有限时,先保证这条时间线不断,再谈深度分析。
很多站长发现被黑后的第一反应是立刻删掉可疑文件、改密码、恢复备份。动作本身没错,但如果没先记录,后续会失去判断依据:你无法区分“攻击者改过的文件”和“自己清理时改过的文件”,也无法确认入侵是否真的被切断。记录的价值在于保留证据链,让复盘有据可查,而不是凭印象猜。
适用前提:只要网站出现了你无法解释的改动,比如首页被替换、出现陌生链接、搜索结果摘要异常、服务器向外发送异常请求,就应进入记录状态。如果只是自己刚做过的正常改版,不需要按入侵流程处理。
时间有限时,优先记录下面几类信息,每一条都尽量带上时间戳和来源:
index.php 被追加了一段混淆代码,或 .htaccess 出现陌生重定向规则。记录方式不必复杂。一个按时间排序的文本文件,或一张含“时间、对象、操作、证据、结果”五列的表格即可。关键是持续写,而不是事后补。
复盘能否成立,取决于时间线是否和客观记录对得上。可以核对的来源包括:Web 服务器访问日志、错误日志、文件系统的修改时间、数据库变更时间、程序后台的操作日志、备份的生成时间。
核对方法:先找出异常文件的最早修改时间,再回到访问日志里查这个时间点前后有哪些请求,尤其关注对上传接口、管理后台、已知漏洞路径的访问。如果日志里能看到可疑请求,且时间与文件改动吻合,这条线索的可信度就较高。如果对不上,说明可能还有别的入口,或者日志已被清理。
需要注意:文件修改时间可以被篡改,日志也可能被攻击者删除或不完整。因此单一来源不足以定论,应把多个来源交叉比对,把“可能原因”和“已经定位的原因”分开写。
清理完成后,复盘围绕以下问题展开,并给出明确结论或“尚不确定”:
验收信号可以设为:连续一段时间内不再出现异常页面或异常外发请求;搜索平台的安全提示消失或状态恢复正常;日志中不再出现此前确认的可疑请求模式;所有改动都有记录可查。这里的时间长度由你自己的风险承受度决定,不承诺固定见效时间。
假设例子:某站点首页被插入跳转代码,记录显示文件修改时间为某日凌晨,访问日志中同一时间有对旧版上传接口的异常请求。清理后更新了该接口并限制上传类型,随后一周未再出现同类请求。这只能说明这一条路径被堵住,不能证明没有其他入口。
如果只有你一个人处理,按这个顺序推进:先记录发现信息和当前异常现象,再备份可疑文件(不要直接覆盖),然后核对日志与文件时间,接着实施最小必要的清理动作并记录,最后补全复盘结论。不要在没记录的情况下直接格式化或全量恢复,那会丢掉判断依据。
下一步:现在就建立一个带时间戳的记录文件,把已知的异常现象和发现时间写进去,再开始查日志和文件修改时间。