如何让千万级业务服务免于CC攻击危害

一、CC攻击的原理

CC攻击的原理就是攻击者控制某些主机不停地发大量数据包给对方服务器造成服务器资源耗尽,一直到宕机崩溃。CC主要是用来消耗服务器资源的,每个人都有这样的体验:当一个网页访问的人数特别多的时候,打开网页就慢了,CC就是模拟多个用户(多少线程就是多少用户)不停地进行访问那些需要大量数据操作(就是需要大量CPU时间)的页面,造成服务器资源的浪费,CPU长时间处于100%,永远都有处理不完的连接直至就网络拥塞,正常的访问被中止。

二、CC攻击的种类

CC攻击的种类一般分为三种,直接攻击,代理攻击,僵尸网络攻击,直接攻击主要针对有重要缺陷的 WEB 应用程序,一般说来是程序写的有问题的时候才会出现这种情况,比较少见。僵尸网络攻击有点类似于 DDOS 攻击了,从 WEB 应用程序层面上已经无法防御,所以代理攻击是CC 攻击者一般会操作一批代理服务器,比方说 100 个代理,然后每个代理同时发出 10 个请求,这样 WEB 服务器同时收到 1000 个并发请求的,并且在发出请求后,立刻断掉与代理的连接,避免代理返回的数据将本身的带宽堵死,而不能发动再次请求,这时 WEB 服务器会将响应这些请求的进程进行队列,数据库服务器也同样如此,这样一来,正常请求将会被排在很后被处理,就象本来你去食堂吃饭时,一般只有不到十个人在排队,今天前面却插了一千个人,那么轮到你的机会就很小很小了,这时就出现页面打开极其缓慢或者白屏。

三、阿里云CC攻击防护解决方案

产品名称 简介 应用场景
Web应用防火墙 云盾Web应用防火墙(Web Application Firewall,简称 WAF)基于云安全大数据能力,用于防御SQL注入、XSS跨站脚本、常见Web服务器插件漏洞、木马上传、非授权核心资源访问等OWASP常见攻击,并过滤海量恶意CC攻击,避免您的网站资产数据泄露,保障网站的安全与可用性。 既有CC防护需求,由于web应用攻击防护要求;Web应用攻击防护:通用Web攻击防护、0day漏洞虚拟补丁、网站隐身;缓解恶意CC攻击:过滤恶意的Bot流量,保障服务器性能正常;业务安全保障:提供业务风控方案,解决接口防刷、防爬等业务安全风险;
DDoS高防IP 阿里云提供的解决互联网服务器(包括非阿里云主机)遭受大流量DDoS/CC攻击的安全方案。通过配置DDoS高防,将攻击流量牵引至高防IP,拦截恶意流量,确保源站服务器稳定可靠。 既有防DDoS攻击需求,存在被CC攻击的情况;如:重大线上直播、活动推广促销场景的DDoS攻击防护。业务遭竞争对手恶意攻击、勒索场景的安全防护。移动业务(APP)遭恶意注册、刷单、刷流量场景的安全防护;
SCDN SCDN即拥有安全防护能力的CDN服务,提供稳定加速的同时,智能预判攻击行为,通过智能的调度系统将DDoS攻击请求切换至高防IP完成清洗,而真正用户的请求则正常从加速节点获取资源。加速节点的分布式架构还同时具备防CC攻击的能力,真正达到 加速 和 安全 兼顾。 即有CDN加速需求;由于安全CC防护和DDoS防护需求的;阿里云SCDN 基于 阿里云CDN 的优质边缘加速资源,深度集成阿里云盾的专业攻防策略,可一站式提供安全和加速的整体解决方案。

四、CC攻击防护

当网站受到CC攻击时,第一优先级为想办法恢复业务;可以尝试直接在Web应用防火墙开启CC安全防护 攻击紧急,需要注意的是,攻击紧急模式适用于网页/H5页面,但不适用于API/Native App业务(会造成大量误杀),针对后面这个情况,我们建议使用CC自定义防护;根据攻击者所攻击的特征配置防护规则。如何让千万级业务服务免于CC攻击危害

1.CC防护思路

 分析请求日志找出攻击者的特征;
 针对攻击者的特征,使用工具将恶意的请求进行封堵;

2.CC攻击一般特征

 攻击的目标URL异常集中;
 攻击的源IP异常集中;
 攻击的源IP在某几个IP段或者某几个省;
 使用相同的Referer或者User-Agent等;

3. CC防护案例

有了这些概念,那么我们根据这几个特征去通过分析日志。 我们以这个网站为例:www.xxxx.cn 在如图的这个时间段内,峰值最高打了13W左右的QPS。
如何让千万级业务服务免于CC攻击危害

碰到这个情况,我们根据之前的CC攻击特征;先分析被攻击的URL是哪个?我们这里使用的是自动化的分析工具sls日志服务;

3.1. 分析日志

使用sls日志服务查询得到结果绝大部分的请求都在访问 //xxx/index.php这个URL,而正常情况下这个URL,不太可能有那么高的访问.
如何让千万级业务服务免于CC攻击危害

发现了这个攻击特征之后,那么在WAF的控制台上查到CC自定义防护中配置这个路径进行防护。

3.2. 配置防护

配置如下:URI使用我们通过日志分析出来的路径完全匹配;检测10S,单一源IP访问5次,执行封禁,封禁30分钟;
如何让千万级业务服务免于CC攻击危害

可以理解为,一个源IP在10S内访问超过5次,就触发封禁;這是一个比较严格的策略;这个频率可以根据自己业务的经验进行调整;
当然如果发现防护效果不好,可以初步的设置更加严格的策略。同时也可以选“人机识别”进行防护,人机识别是WAF返回一段特殊的代码给客户端(WAF返回200状态码),判断客户端是否可能正常执行这个代码;如果能够执行则通过验证,然后放行;如果无法执行,这个客户端IP就会加黑对应的时间。 如果在网站架构中,WAF前端有高防或者CDN之类的产品,推荐使用人机识别进行防护。

3.3. 深挖攻击特征

在这个时候网站业务正在慢慢恢复;我们继续分析日志,找到更加精确的攻击特征加以防护,
分析客户端IP分布
我们通过分析客户端真实IP地址时,TOP10的IP地址以及地域分布情况如下,看不出明显的异常。
如何让千万级业务服务免于CC攻击危害

分析user_agent特征

有大量的请求使用到的UA是“"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9b5) Gecko/2008032619 Firefox/3.0b5”这个UA,看着是一个MAC OS系统下FireFox的浏览器,由于业务是APP类型的;很少会有MAC OS系统下的访问,同时我们对比正常时间段访问记录的user_agent 没有发现 Firefox 字样的user_agent记录;可以判断该user_agent 是异常的;
如何让千万级业务服务免于CC攻击危害

根据这个攻击特征,我们使用WAF的精准访问控制策略对该user_agent进行控制,配置如下,对于包含Firefox进行封禁;阻断的策略
如何让千万级业务服务免于CC攻击危害

通过这种组合策略的防护策略能够更好保护业务正常对外提供服务。

上一篇:突破Java面试(15)-分布式搜索引擎Elastic Search的工作流程


下一篇:Linux系统漏洞修复失败解析