周三下午,做电子元器件出口的客户来电,网站打不开,服务器CPU飙到百分之九十九。日志里密密麻麻全是海外IP对一个不存在的产品页发起请求,每秒几百次——典型的CC攻击,目标不是偷数据,就是让你宕机。外贸站被恶意软件或同行盯上并不稀奇,关键看网站安全防护里有没有应对CC的预案。
CC攻击为什么难缠
它不像DDoS那样靠流量洪峰冲垮线路,而是模拟正常用户不停请求耗资源的页面,比如搜索、筛选、数据库查询。防火墙拦吧,请求看起来都是“合法访问”;不拦吧,数据库连接被占满,真客户反而进不来。这种介于真与假之间的攻击,最考验防护策略。
判断是不是CC也有迹可循:真实用户的访问是分散的,访问路径有深有浅;CC请求高度集中在某几个URL,来源IP要么高度集中,要么来自同一批数据中心段。日志看十分钟,规律基本就浮出来了。
我们的应对步骤
- 先看日志找规律:这次攻击集中在单一URL、单一UA特征,规律越好找越容易拦
- CDN层限速:对单IP设置访问频率阈值,超出的直接人机验证
- 临时降低页面开销:把动态查询页加缓存,耗资源的接口做排队
- 针对批量IP段做封禁,但保留主要市场的正常访问
过程中有个取舍要提醒:限速阈值定得太紧,会误伤采购商批量翻页的正常行为,外贸客户常常一逛就是几十个产品页。所以阈值要按业务高峰期的真实访问量倒推,而不是拍脑袋定个数字。这次我们把阈值定在平时峰值的三倍,既拦住了攻击,也没接到客户投诉。
这次从发现到流量恢复用了两个小时,攻击又持续骚扰了两天,靠CDN的自动限速扛了过去。
事后要补的两件事
一是把这次日志里的特征固化成WAF规则,同样的攻击第二次就不用人守着;二是复盘成本——客户站当时没配CDN,裸服务器硬扛,宕机两天询盘全断,把网站安全防护的这块短板补上、加上CDN的钱,远低于这两天的损失。顺带把宕机那两天的访问日志归了档,下次再有人问起,证据都在。
另外把告警接进手机:CPU、连接数这些指标超过阈值就推消息,值班的人不用一直盯着屏幕。攻击挑的时间往往是非工作时段,靠人盯是盯不住的。
建议
外贸站在旺季前务必确认CDN限速和缓存策略是开着的,预留出压测和调参的时间,别等到展会周才补课。想评估自己站点扛不扛得住的,找比格网络做一次压力测试加防护检查,方案按你的业务量定,不做过度配置。