很多人理解网络攻击,还停留在攻击者用超大流量把网站冲垮这个印象里。觉得只要扩容带宽、采购高防防护,网站就能安全。但CC攻击和这种传统攻击完全不一样。查看服务器带宽监控,数值正常还有富余,可CPU占用、数据库连接数已经占满。网站打不开,用户投诉不断,却看不到明显异常流量,因为攻击者发出的每一条请求,单独拿出来看,和普通用户访问行为没有区别。
这也是CC攻击最难处理的地方。
CC全称Challenge Collapsar,中文直译是挑战黑洞,名称来源于早年一款专门攻击论坛动态页面的工具。它属于DDoS攻击的其中一类,但攻击思路和传统DDoS完全不同。传统流量型DDoS攻击网络层与传输层,依靠海量垃圾数据包占满入口链路,比拼的是带宽资源。CC攻击瞄准应用层,也就是OSI七层模型的第七层。它不和防守方比拼带宽,而是消耗服务器处理单次请求的计算资源。

可以用一个例子方便理解两者差别。流量型DDoS好比大量人员堵在店铺门口,不消费只是停留,堵住大门,真实顾客无法进店。CC攻击是一群人直接进入店内,每个人都点制作工序最繁琐的菜品,反复询问菜单细节,不停要求后厨加菜。表面上看所有人都是进店顾客,但厨师、服务员资源被耗尽,真正想来消费的客人得不到服务。
攻击者会专门挑选消耗资源多的接口发起攻击。搜索接口每次查询都需要读取数据库,复杂联表查询会大量占用CPU;登录接口要校验密码、生成会话,部分场景还要发送短信邮件;商品列表页面需要读取库存、价格、促销信息。这些接口正常用户同样会访问,单独看请求内容不存在违规特征。攻击者控制大量肉鸡,也就是被恶意程序入侵的电脑、服务器、摄像头、路由器,短时间内向这些接口批量发送请求,服务器资源就会耗尽。
为什么现在比以前更难防
早期CC攻击手法简单,攻击者使用单台电脑运行脚本,每秒发送几百次请求,特征明显,配置限速规则就能拦截。现在情况发生变化,攻击者掌握海量代理IP池和僵尸网络。相关资料显示黑产市场代理IP批发价最低五块钱一千个,入门级CC攻击服务按小时计费,成本可能仅几十元。几十元就可以让没有防护的网站瘫痪数小时。
攻击手段升级带来更大麻烦。慢速攻击也就是Slowloris,攻击者发送HTTP请求,但是刻意放慢发包速度,每隔几秒才传输一个字节,服务器认为连接还未结束,持续保留连接资源,新的正常请求无法建立连接。这种攻击几乎没有流量特征,不存在高频请求的特点。
还有低频分布式攻击,每个IP的请求频率控制在正常区间,依靠单IP限速策略无法拦截。大量不同IP同时发起请求,汇总后的压力依旧压垮服务器。传统防护手段,封禁IP、设置阈值、黑名单,面对这类攻击基本失效。有统计数据显示,传统防护方案对新型CC攻击漏防率超过40%,误伤正常访客的误杀率达到15%。简单来说,配置好的防护规则拦不住攻击流量,还会误拦截真实用户。
防护思路的变化
依靠请求频率、封禁IP的方式效果有限,现代防护策略随之调整,核心思路从检查单次请求,改为分析用户完整行为链路。正常访客浏览网站,一般存在固定路径,先访问首页,点击进入列表页面,再打开详情页,浏览过程存在停顿,页面同时加载图片、CSS静态资源。攻击脚本大多直接请求深层业务接口,跳过全部正常浏览步骤,不会请求图片、JS、CSS这类静态文件。AI行为分析就是依靠访问轨迹区分人机,重点看访客的浏览路径,不单单看请求频率高低。
落地部署时,大部分企业不会自行开发AI模型,直接使用WAF网页应用防火墙自带托管防护规则。配置流程不算复杂,开启CC防护模块,设置频率阈值,例如同一个IP30秒请求超过1000次,触发封禁或者人机验证。静态资源交由CDN承载,动态请求经过WAF清洗,源站IP不对外暴露。完成这几步,能够抵御大部分中低强度攻击。如果遭遇百万QPS规模的攻击,就需要搭配高防IP以及专业流量清洗服务。
有一点很容易被忽略,如果网站本身性能存在缺陷,例如搜索接口缺少索引,单次查询就要三秒响应,CC攻击的实施门槛会大幅降低。攻击者不用发送巨量请求,就能够打满数据库连接池。所以部署防护之前,优先优化慢查询、资源消耗异常的接口,比单纯叠加防护设备更加治本。
CC攻击本质是一场不对等的成本博弈。攻击方成本低至几十元每小时,防守方采购高防、部署WAF、扩容带宽,花费是攻击方的几十倍甚至上百倍。这种成本差距短期内不会消失。能做的是抬高攻击成本,让攻击者觉得攻击收益不足。优化接口降低单次请求资源消耗,借助CDN、WAF拦截自动化脚本,隐藏源站地址避免直接攻击。没办法做到百分之百完全拦截,但至少不会成为攻击者优先挑选的目标。