昨天凌晨三点,网站我盯着屏幕上那个纯黑背景配红色乱码的被黑页面,后背发凉。解决那是网站我给客户做的电商站,后台数据被删得干干净净,被黑首页被替换成一行挑衅留言——“你的解决安全措施太烂了”。
网站被黑,网站第一步不是被黑找黑客理论,也不是解决对着屏幕骂娘。先拔掉服务器网线,网站或者立刻在云控制台把安全组规则改成只允许你本地IP访问。被黑切断外部连接,解决能阻止攻击者继续写入文件或拖走数据库。网站我那次反应慢了二十分钟,被黑损失了三个月的解决订单记录。
断网之后,别急着恢复备份。先翻日志,Nginx或Apache的access.log和error.log是破案关键。看那段时间谁在疯狂POST请求,哪个IP在扫你的登录接口。我见过最蠢的黑客用自己家宽带IP直连,一查一个准。也见过用肉鸡跳板的,这时候就得看User-Agent和请求频率的异常模式——比如凌晨两点每三秒访问一次wp-login.php,那基本是撞库脚本。
找到漏洞入口后,立刻改所有密码。不是只改网站后台的,FTP、数据库、服务器root密码全换。密码别用生日或公司名加个123,生成十六位随机字符串,存密码管理器里。我有个客户,黑客都把他服务器变成挖矿机了,他还问我“为什么电费涨了”。改了密码,检查系统里有没有新增的SSH密钥——很多攻击者会植入后门,光改密码挡不住。
清理文件是细活。用ls -lat按时间排序,找最近修改过的php文件。重点看那些名字像乱码的,或者藏在上传目录里的。用grep搜一下eval(base64_decode这种加密函数,正规代码不会这么写。删掉可疑文件后,再查一遍计划任务crontab -l,黑客常在那里挂定时脚本,删了主文件不处理计划任务,过一小时又复活。
恢复数据前,确认你的备份是干净的。我吃过亏,恢复了一个早就被植入后门的备份,等于二次中毒。备份至少留三天前和一周前两份,对比文件哈希值,选没被污染的那个。如果都没有干净备份,只能找专业数据恢复公司,价格够你买台新服务器。
网站重新上线前,装个Web应用防火墙,云厂商自带的基本够用。再把后台登录地址改成非默认路径,限制IP白名单。这些基础操作能挡住九成脚本小子。
最后说句实在话——被黑不可怕,可怕的是你连被黑的原因都搞不清。那次之后,我养成了习惯:每周手动检查一次服务器日志,每月做一次全盘扫描。别信所谓的“安全托管服务”,自己亲手摸过一遍的文件,心里才有底。网站这玩意儿,跟房子一样,你不上心,就总有贼惦记。