先讲个惊魂24小时
去年10月,阳澄湖大闸蟹开捕季。一家做大闸蟹电商的苏州公司凌晨2点被DDoS打了一波,峰值流量达到23Gbps。网站直接瘫了,损失了当天预计的1800多单订单。老板急得凌晨给我打电话。
这种事在苏州不少见。工业园区一家SaaS公司去年被勒索病毒加密了整个数据库,黑客要0.5个比特币。张家港一家钢材贸易商的网站被挂了暗链,百度收录直接掉光。服务器安全不是小事,出了事你慌不慌?慌也没用,按流程来。
第一步:物理隔离,别犹豫
发现攻击,第一件事不是查日志,是断网。把网线拔了或者机房管理口封掉。你可能觉得夸张,但这一步能止损。
苏州那家大闸蟹电商的做法值得参考:发现异常后3分钟内联系机房拔线,虽然网站还是瘫了6小时(因为攻击还在持续),但数据库没被二次入侵,客户数据保住了。如果晚断网30分钟,后果不堪设想——攻击者已经在尝试提权了。
命令层面,能SSH上去的话先封掉异常IP:
iptables -A INPUT -s 攻击IP -j DROP
不确定哪个是攻击IP就先把非必要端口全关了,只留22(换个非标准端口)。
第二步:判断攻击类型
断网之后冷静判断是什么攻击。常见的几种:
DDoS流量攻击:带宽被打满,服务器CPU和内存可能正常。看机房流量监控图,流量突然飙到正常值的几十倍就是了。
CC攻击:带宽正常但CPU100%,大量HTTP请求。看nginx日志,同一IP短时间内请求量异常大。
入侵挂马:网站被篡改,被植入后门。看文件修改时间,找出最近被改的文件。
勒索病毒:文件被加密,弹出勒索信息。这种最麻烦。
工业园区那家SaaS公司被勒索后查日志发现,攻击者是通过一个未修复的Struts2漏洞进来的,潜伏了8天才触发加密。如果他们提前打了补丁,这事根本不会发生。
第三步:止血和取证
判断完攻击类型,针对性的止血。DDoS就联系机房上清洗(苏州本地机房一般都有清洗服务,费用大概2000-5000元/次)。CC攻击就上WAF规则。入侵挂马就清除webshell和修复漏洞。
同时保留证据。内存dump、磁盘镜像、系统日志、Web日志全部打包备份。这些取证数据有两个用途:一是分析入侵路径做针对性修复,二是如果要报案(苏州网安大队),需要这些材料。
别清了马就完事。吴中一家机器人公司被挂马后只清了webshell没修漏洞,第三天又被黑了,同一个漏洞。踩过坑的人都知道,不找到入口在哪,等于白忙活。
第四步:恢复业务
止血之后从最近的干净备份恢复。注意,一定要从离线备份恢复,别用服务器上还存在的备份——那可能已经被污染了。
恢复前先在隔离环境验证备份的完整性。苏州那家大闸蟹电商的恢复方案是:用3天前的异地备份恢复到一台新服务器上,验证数据完整后切换DNS,整个恢复过程花了4小时。因为他们提前做了异地备份,恢复相对顺利。
第五步:加固,别犯同样的错
恢复之后必须做安全加固,否则还会再被打。核心几件事:
更新所有系统和应用补丁。修改所有密码(root、数据库、管理后台)。配置防火墙白名单策略。部署WAF和入侵检测。设置告警机制,CPU异常或流量异常时第一时间收到通知。
苏州机房的安全增值服务可以买,一年3000-8000元不等,包含基础DDoS防护和日常漏洞扫描。对比一次攻击的损失(动辄几万到几十万),这笔钱花得值。
预防永远比应急重要
说到底,最好的应急是不被攻击。定期备份(异地+离线)、定期更新补丁、定期做安全扫描。苏州很多中小企业连备份都没做过,出事了才来找我们,有些数据是真的救不回来了。别等出事才想起来安全,那时候代价是十倍起步。