当前位置:网站首页>什么是CC攻击?如何判断网站是否被CC攻击? CC攻击怎么防御?
什么是CC攻击?如何判断网站是否被CC攻击? CC攻击怎么防御?
2022-06-24 06:43:00 【IDC02_FEIYA】
什么是CC攻击?如何判断网站是否被CC攻击?
一、什么是CC攻击?
CC主要是用来攻击页面的。大家都有这样的经历,就是在访问论坛时,如果这个论坛比较大,访问的人比较多,打开页面的速度会比较慢,对不?!一般来说,访问的人越多,论坛的页面越多,数据库就越大,被访问的频率也越高,占用的系统资源也就相当可观。
一个静态页面不会占用服务器多少资源,甚至可以说直接从内存中读出来发给你就可以了。但是论坛就不一样了,我看一个帖子,系统需要到数据库中判断我是否有读帖子的权限,如果有,就读出帖子里面的内容,显示出来。
这里至少访问了2次数据库,如果数据库的体积有200MB大小,系统很可能就要在这200MB大小的数据空间搜索一遍,这需要多少的CPU资源和时间?如果我是查找一个关键字,那么时间更加可观,因为前面的搜索可以限定在一个很小的范围内,比如用户权限只查用户表,帖子内容只查帖子表,而且查到就可以马上停止查询,而搜索肯定会对所有的数据进行一次判断,消耗的时间是相当的大。
CC就是充分利用了这个特点,模拟多个用户(多少线程就是多少用户)不停的进行访问(访问那些需要大量数据操作,就是需要大量CPU时间的页面)。很多朋友问到,为什么要使用代理呢?因为代理可以有效地隐藏自己的身份,也可以绕开所有的防火墙,因为基本上所有的防火墙都会检测并发的TCP/IP连接数目,超过一定数目一定频率就会被认为是Connection-Flood。
使用代理攻击还能很好的保持连接,我们这里发送了数据,代理帮我们转发给对方服务器,我们就可以马上断开,代理还会继续保持着和对方连接(我知道的记录是有人利用2000个代理产生了35万并发连接)。
可能很多朋友还不能很好的理解,我来描述一下吧。我们假设服务器A对Search.asp的处理时间需要0.01S(多线程只是时间分割,对结论没有影响),也就是说他一秒可以保证100个用户的Search请求,服务器允许的最大连接时间为60s,那么我们使用CC模拟120个用户并发连接,那么经过1分钟,服务器的被请求了7200次,处理了6000次,于是剩下了1200个并发连接没有被处理。
有的朋友会说:丢连接!丢连接!问题是服务器是按先来后到的顺序丢的,这1200个是在最后10秒的时候发起的,想丢?!经过计算,服务器满负开始丢连接的时候,应该是有7200个并发连接存在队列,然后服务器开始120个/秒的丢连接,我们发动的连接也是120个/秒,服务器永远有处理不完的连接,服务器的CPU 100%并长时间保持,然后丢连接的60秒服务器也判断处理不过来了,新的连接也处理不了,这样服务器达到了超级繁忙状态。
当然,CC也可以利用这里方法对FTP进行攻击,也可以实现TCP-FLOOD,这些都是经过测试有效的。
二、如何判断网站是否被CC攻击?
1、如果网站是动态网站,比如asp/asp.net/php等,在被CC攻击的情况下,IIS站点会出错提示SERVER IS TOO BUSY,如果不是使用IIS来提供网站服务,会发现提供网站服务的程序无缘无故自动崩溃,出错。如果排除了网站程序的问题,而出现这类型的情况,基本上可以断定是网站被CC攻击了。
2、如果网站是静态站点,比如html页面,在被CC攻击的情况下,打开任务管理器,看网络流量,会发现网络应用里数据的发送出现严重偏高的现象,在大量的CC攻击下,甚至会达到99%的网络占用,当然,在被CC攻击的情况下网站是没办法正常访问的,但是通过3389连接服务器还是可以正常连接。
3、如果是被小量CC攻击,则站点还是可以间歇性访问到,但是一些比较大的文件,比如图片会出现显示不出来的现象。如果是动态网站被小量CC攻击,还会发现服务器的CPU占用率出现飙升的现象。这是最基本的CC攻击症状。
三、CC攻击怎么防御?
对于CC攻击,其防御必须采用多种方法,而这些方法本质上也是在提高服务器的并发能力
1、服务器垂直扩展和水平扩容
资金允许的情况下,这是最简单的一种方法,本质上讲,这个方法并不是针对CC攻击的,而是提升服务本身处理并发的能力,但确实提升了对CC攻击的承载能力。垂直扩展:是指增加每台服务器的硬件能力,如升级CPU、增加内存、升级SSD固态硬盘等。水平扩容:是指通过增加提供服务的服务器来提升承载力。上述扩展和扩容可以在服务的各个层级进行,包括:应用服务器、数据库服务器和缓存服务器等等。
2、数据缓存(内存级别,不要用文件)
对于服务中具备高度共性,多用户可重用,或单用户多次可重用的数据,一旦从数据库中检索出,或通过计算得出后,最好将其放在缓存中,后续请求均可直接从缓存中取得数据,减轻数据库的检索压力和应用服务器的计算压力,并且能够快速返回结果并释放进程,从而也能缓解服务器的内存压力。要注意的是,缓存不要使用文件形式,可以使用redis、mem—cached等基于内存的nosql缓存服务,并且与应用服务器分离,单独部署在局域网内。局域网内的网络IO肯定比起磁盘IO要高。为了不使局域网成为瓶颈,千兆网络也是有必要的。
3、页面静态化
与数据缓存一样,页面数据本质上也属于数据,常见的手段是生成静态化的html页面文件,利用客户端浏览器的缓存功能或者服务端的缓存服务,以及CDN节点的缓冲服务,均可以降低服务器端的数据检索和计算压力,快速响应结果并释放连接进程。
4、用户级别的调用频率限制
不管服务是有登陆态还是没登陆态,基于session等方式都可以为客户端分配唯一的识别ID(后称作SID),服务端可以将SID存到缓存中。当客户端请求服务时,如果没有带SID(cookie中或请求参数中等),则由服务端快速分配一个并返回。可以的话,本次请求可以不返回数据,或者将分配SID独立出业务服务。当客户端请求时带了合法SID(即SID能在服务端缓存中匹配到),便可以依据SID对客户端进行频率限制。而对于SID非法的请求,则直接拒绝服务。相比根据IP进行的频率限制,根据SID的频率限制更加精准可控,可最大程度地避免误杀情况。
5、IP限制
最后,IP限制依然可以结合上述规则一起使用,但是可以将其前置至)JCb层的防火墙或负载均衡器上去做,并且可以调大限制的阈值,防止恶意访问穿透到应用服务器上,造成应用服务器压力。
感谢您的阅读,加个关注不迷路~
边栏推荐
- Vmware tools still exist after normal uninstallation for many times. How to solve it
- The latest crawler tutorial in 2021: video demonstration of web crawling
- [OGeek2019]babyrop
- [cnpm] tutorial
- PCL 计算多边形的面积
- Precipitation of architecture design methodology
- Multi sensor fusion track fusion
- [WUSTCTF2020]alison_likes_jojo
- Smart space 𞓜 visualization of operation of digital twin cargo spacecraft
- 【小技巧】使用matlab的深度学习工具箱deepNetworkDesigner快速设计
猜你喜欢

【图像融合】基于NSST结合PCNN实现图像融合附matlab代码

Arduino raised $32million to enter the enterprise market

两个链表的第一个公共节点_链表中环的入口(剑指offer)

树莓派4B开发板入门

二分专题训练

Win11怎么设置让CPU性能全开?Win11CPU怎么设置高性能模式?

How can genetic testing help patients fight disease?

bjdctf_2020_babystack

20 not to be missed ES6 tips

Functions in setinterval cannot have parentheses
随机推荐
In JS, the regular expression verifies the hour and minute, and converts the input string to the corresponding hour and minute
Development of IOT device end - establishment of development environment
JVM debugging tool -jvisualvm
【图像特征提取】基于脉冲耦合神经网络(PCNN)实现图像特征提取含Matlab源码
利用微搭低代码实现级联选择
【图像融合】基于NSST结合PCNN实现图像融合附matlab代码
Spark project Packaging Optimization Practice
2、 What is the principle of layer 3 and 4 switching technology? Recommended collection!
High energy ahead: Figure 18 shows you how to use the waterfall chart to visually reflect data changes
Clickhouse source code note 6: exploring the sorting of columnar storage systems
0 foundation a literature club low code development member management applet (4)
get_started_3dsctf_2016
JVM debugging tool -jstack
JVM debugging tool -jmap
How can genetic testing help patients fight disease?
树莓派4B开发板入门
Huawei experimental topology set, learning methods are attached at the end of the article!
在js中正则表达式验证小时分钟,将输入的字符串转换为对应的小时和分钟
PCL 点云按比率随机采样
What is the mentality of spot gold worth learning from