阿里云web防火墙配置防护CC 攻击的方法

简介:


CC攻击是网络上很常见的一种大规模攻击方案。流量超大,攻击很猛,一般的网站根本无法抵御。


什么是 CC 攻击


CC(Challenge Collapsar)该攻击与我们常见的 DDOS(网络层分布式拒绝服务攻击)不同之处在于,CC 攻击只会导致 WEB服务或者只是 WEB 服务中的某一接口或单一页面无法服务,相比网络层的拒绝服务攻击,其优势在于能够使用相对较少的资源对更为精确的目标进行攻击。


攻击方式


主要的攻击方式分为快速和慢速两种:


快速 CC 攻击是指快速请求服务器处理消耗较大的页面或者接口,这种方式是通过大量占用服务器的 CPU、IO 等资源,致使服务器无法正常响应其它用户的请求。
慢速 CC 攻击是指是通过与服务器建立连接后,以最慢的速度发送请求/读取响应,通过占用服务器的进程、线程、网络套接字等资源,达到导致服务器无法继续服务的目的,这种攻击一般针对 Apache、httpd 这类 thread-base 架构的服务器。
防护手段


点我领取阿里云2000元代金券,(阿里云优惠券的作用:购买阿里云产品,最后支付结算的时候,阿里云优惠券可抵扣一部分费用。

针对两种不同类型的攻击防护方式分别是:


快速攻击: 限制单一源IP的请求速率、限制并发连接数
慢速攻击: 限制单一请求的超时时间
Nginx 和 Apache 都有相应的模块来解决这类问题,只要配置得当能够抵挡住大多数的 CC 攻击,以下我们以 Nginx 为例看看具体的配置。


限制单一源 IP 的请求速率,平均每秒不超过 1 个请求,并且突发不超过 5 个请求:


http {


limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
...
server {
...
location /limit_req/ {
    limit_req zone=one burst=5;
}</code></pre>

}


限制并发连接数,单一源 IP 最大并发数是 100,总的连接数不超过 1000:


http {


limit_conn_zone $binary_remote_addr zone=one:10m;
limit_conn_zone $server_name zone=perserver:10m;
...
server {
...
limit_conn  one  100;                                              
limit_conn perserver 1000;
...</code></pre>

}


限制单个请求的超时时间:


http {


...
server {
...
client_header_timeout 60s; //等待客户端发送请求头的超时时间,将这个值改小可以应对慢速发送请求头的CC攻击;
client_body_timeout   60s; //读取客户端发送请求体的超时时间,将这个值改小可以应对慢速发送请求体的CC攻击;
keepalive_timeout     75s; //与客户端的连接超时时间,如果连接大量被占用,可以将其改小一些,释放被占用的连接,减轻服务器压力;
...</code></pre>

}


阿里云的Web应用防火墙对网站或者APP的业务流量进行恶意特征识别及防护,将正常、安全的流量回源到服务器。避免网站服务器被恶意入侵,保障业务的核心数据安全,解决因恶意攻击导致的服务器性能异常问题。
更多参阅阿里云web防火墙配置文档


点我领取阿里云2000元代金券,(阿里云优惠券的作用:购买阿里云产品,最后支付结算的时候,阿里云优惠券可抵扣一部分费用。

CC防护攻击紧急模式
当网站遇到CC攻击的时候,我们一般想到的是第一时间的恢复网站的业务,但这个时候我们可以直接在web应用防火墙上开启CC防护攻击紧急模式。开启之后,能够有效的对客户端校验。
image


这个模式有一个注意的点就是他这个模式只能对Web应用、网站应用及H5页面有效。对于API以及Native的App会造成大量的误杀,所以这两个应用场景下是不支持攻击紧急模式的。这种情况,我们建议的方案是使用CC自定义防护进行防御。
CC自定义防护
那么随着自定义的一个防御怎么来配置呢?有两个步骤,一是先要从攻击的日志中分析找到攻击的特征。然后使用工具或者对应的功能对我们发现的特征进行封禁,从而达到保护的目的。


特征分析
我们先来看一下CC攻击有哪些特征,一般情况下面最主要最明显的特征是某个URL的请求异常的集中。另外一方面,他请求的源IP异常的集中。第三点,他请求的Refer或者user-agent异常的集中。有了这几个概念之后,我们就可以根据这几个概念去分析日志,获取对应的特征。


我们可以以下面这个网站为例,可以看一下对应的时间段。
image
从这个日志的一个趋势来看,其实是被打得挺厉害的,峰值时间最高的时候有13万的QPS。那我们怎么来对这种攻击进行分析呢?我们采用了SLS的日志服务,快捷的自动化地进行分析分析的过程。


request URL分析
image


我们通过对request URL进行分析,可以看到他99%的请求全都请求了//index.php的路径。这个请求占这么大的量绝对是有问题的,正常情况下面对比相同时间段,其实不会有这么大的量出现。那么我们要做的事情就是把恶意的请求给他分辨出来,然后把它拦截表对他进行自定义的CC防护。


规则配置
image
配置规则的时候,对这个URL进行完全匹配,然后配置我们检测的周期是十秒或者五秒,然后对他进行的检测的次数,在这个时间范围内他访问的次数十次或5次。然后对应的主端动作是可以是封禁,也可以是人机识别。最后是他封禁的时间,可以封禁他三十分钟甚至更长。我的配置是采用封禁的策略,在十秒内访问五次就直接对他进行封禁的一个动作,从而达到对网站业务的一个防护。


这里可以看到还有一个是人机识别的阻断类型,人机识别它是对客户端的请求进行一个脚印的一个过程,它会返回给客户端一串特殊的代码,可以理解为JS的代码,让客户端去执行。


点我领取阿里云2000元代金券,(阿里云优惠券的作用:购买阿里云产品,最后支付结算的时候,阿里云优惠券可抵扣一部分费用。

如果能够正常的执行成功,那么说明这个客户端是一个真实的客户端。校验成功过后,我们对他进行加白,让他能够正常访问。如果不能执行,那么这个客户端我们不认为他是一个正常的客户端,会把他拉黑一段时间。这个时间就是我们配置上配的那个时间。


需要注意,在WAF前面如果有高防或者CDN的场景下,我们不建议使用封禁的策略,建议使用人机识别的策略。


经过这段配置,其实我们的网站业务能够得到一定的缓解,如果不能缓解的话,可以根据我们上面配置的一个策略进行调整。由松到紧配置仅一点达到缓解业务的一个效果。


IP分析
得到一定缓解之后,我们继续分析一只去分析更加精确的攻击特征加以保护,提高我们防护的效果。


先看一下源IP分布没有什么特征,没有在几个段里面,然后去查市里面。其实各个市都有,也没有市和省的维度,那这两个不能作为一个明显的一个特征去做防护。


refer或者user-agent分析
那么第三个去通过refer或者user-agent去看,通过refer去看的时候,这边就不说了,因为没有特别明显的特征,但是再去看user-agent的时候,发现99%的请求都是来自于microsoft和Firefox浏览器的请求。


这个访问比例与我们请求的request,index.php的请求比例是非常接近的,然后我们拿着这个user-agent去对比前一天相同时间段的请求,是否有这个user-agent。


前一天的相同时间段下没有出现过类似这样的一个UA。那么我们认为当前时间段出现这个UA的请求是异常的,是恶意的。那么我们针对这个UA进行防护的时候,我们使用WAF的精准防护,控制精准的对这个UA进行配置阻断。


WAF的精准防护配置
image
配置方式是为了更加准确而使用两个条件,一个是user-agent,让它包含Firefox,另外一个是URL包含上述所说的index.php,同时满足这两个条件的,那我们同时对他进行阻断的操作。


通过这种方式能够有效的将所有恶意的请求排除在外。真正回到原站的请求都是我们判断是可信的一个请求,从而达到防护的效果。
更多参阅阿里云web防火墙配置文档


点我领取阿里云2000元代金券,(阿里云优惠券的作用:购买阿里云产品,最后支付结算的时候,阿里云优惠券可抵扣一部分费用。
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
1月前
|
监控 网络协议 安全
华为配置防火墙直连路由器出口实验
华为配置防火墙直连路由器出口实验
|
2月前
|
网络安全 数据中心
百度搜索:蓝易云【Proxmox软件防火墙的配置教程】
现在,你已经完成了Proxmox软件防火墙的配置。请确保你的防火墙规则设置正确,以保护你的Proxmox VE环境免受未经授权的访问和网络攻击。
128 5
|
3月前
|
前端开发 JavaScript API
阿里云智能媒体服务IMS(Intelligent Media Services)的视频剪辑Web SDK
【1月更文挑战第15天】【1月更文挑战第72篇】阿里云智能媒体服务IMS(Intelligent Media Services)的视频剪辑Web SDK
54 6
|
2天前
|
SQL 存储 前端开发
< 今日份知识点:web常见的攻击方式(网络攻击)有哪些?如何预防?如何防御呢 ? >
网络安全威胁日益严重,2017年的永恒之蓝勒索病毒事件揭示了网络攻击的破坏力。为了防御Web攻击,了解攻击类型至关重要。Web攻击包括XSS、CSRF和SQL注入等,其中XSS分为存储型、反射型和DOM型,允许攻击者通过注入恶意代码窃取用户信息。防止XSS攻击的方法包括输入验证、内容转义和避免浏览器执行恶意代码。CSRF攻击则伪装成用户执行操作,防范措施包括同源策略和CSRF Token验证。SQL注入则通过恶意SQL语句获取数据,预防手段包括输入验证和使用预编译语句。面对网络威胁,加强安全意识和实施防御策略是必要的。
|
21天前
|
网络协议 安全 网络安全
二层交换机与防火墙对接上网配置示例
二层交换机指的是仅能够进行二层转发,不能进行三层转发的交换机。也就是说仅支持二层特性,不支持路由等三层特性的交换机。 二层交换机一般部署在接入层,不能作为用户的网关
|
1月前
|
运维 Linux 应用服务中间件
Centos7如何配置firewalld防火墙规则
Centos7如何配置firewalld防火墙规则
49 0
|
1月前
|
弹性计算 算法 应用服务中间件
倚天使用|Nginx性能高27%,性价比1.5倍,基于阿里云倚天ECS的Web server实践
倚天710构建的ECS产品,基于云原生独立物理核、大cache,结合CIPU新架构,倚天ECS在Nginx场景下,具备强大的性能优势。相对典型x86,Http长连接场景性能收益27%,开启gzip压缩时性能收益达到74%。 同时阿里云G8y实例售价比G7实例低23%,是Web Server最佳选择。
|
5月前
|
网络协议 Linux 网络安全
suse 12 配置ip,dns,网关,hostname,ssh以及关闭防火墙
suse 12 配置ip,dns,网关,hostname,ssh以及关闭防火墙
149 0
|
3月前
|
网络协议 Shell Linux
系统初始化shell,包括:挂载镜像、搭建yum、设置主机名及IP地址和主机名映射、配置动态IP、关闭防火墙和selinux
系统初始化shell,包括:挂载镜像、搭建yum、设置主机名及IP地址和主机名映射、配置动态IP、关闭防火墙和selinux
37 2
|
4月前
|
弹性计算 关系型数据库 数据库
在阿里云上搭建高效Web服务的完整指南
构建高效、稳定的Web服务是每个开发者的必修课。本文将详细介绍如何基于阿里云的相关产品,搭建一个具有高可用性和强大性能的Web服务。我们将使用Elastic Compute Service(ECS)、Server Load Balancer(SLB)、Relational Database Service(RDS)、域名服务等阿里云产品,通过图文并茂的方式为你展示整个流程。
69 0

热门文章

最新文章