热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

网站被CC攻击防御解决方案

作为站长或者公司的网站的网管,什么最可怕?显然是网站受到的DDoS攻击。大家都有这样的经历,就是在访问某一公司网站或者论坛时,如果这个网站或者论坛流量比较大,访问的人比较多,打开页

文章目录[隐藏]

  • 一、CC攻击的原理:
  • 二、CC攻击的种类:
  • 三、攻击症状
    • (1).命令行法
    • (3).查看系统日志
  • 四、CC攻击防御策略
    • (1).取消域名绑定
    • (2).域名欺骗解析
    • (3).更改Web端口
    • (4).IIS屏蔽IP
  • 五、CC攻击的防范手段
    • 1、优化代码
    • 2、限制手段
    • 3、完善日志
  • 六、针对CC攻击的商业解决方案

作为站长或者公司的网站的网管,什么最可怕?显然是网站受到的DDoS攻击。大家都有这样的经历,就是在访问某一公司网站或者论坛时,如果这个网站或者论坛流量比较大,访问的人比较多,打开页面的速度会比较慢,对不?!一般来说,访问的人越多,网站或论坛的页面越多,数据库就越大,被访问的频率也越高,占用的系统资源也就相当可观。本篇文章主要带大家了解下CC攻击的原理以及一些防护策略,主机吧觉得写得不错,就转载给大家看下,希望可以帮到大家。

CC攻击是DDoS(分布式拒绝服务)的一种,相比其它的DDoS攻击CC似乎更有技术含量一些。这种攻击你见不到虚假IP,见不到特别大的异常流量,但造成服务器无法进行正常连接,一条ADSL的普通用户足以挂掉一台高性能的Web服务器。由此可见其危害性,称其为”Web杀手”毫不为过。最让站长们忧虑的是这种攻击技术含量不是很高,利用工具和一些IP代理,一个初、中级的电脑水平的用户就能够实施DDoS攻击。

网站被CC攻击防御解决方案插图

那么怎样保证这些网站服务器的安全呢?防护CC攻击大家有必要了解CC攻击的原理及如果发现CC攻击和对CC攻击的防范措施。

一、CC攻击的原理:

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

二、CC攻击的种类:

CC攻击的种类有三种,直接攻击,代理攻击,僵尸网络攻击。

直接攻击主要针对有重要缺陷的WEB应用程序,一般说来是程序写的有问题的时候才会出现这种情况,比较少见。

僵尸网络攻击有点类似于DDOS攻击了,从WEB应用程序层面上已经无法防御。

代理攻击:CC攻击者一般会操作一批代理服务器,比方说100个代理,然后每个代理同时发出10个请求,这样WEB服务器同时收到1000个并发请求的,并且在发出请求后,立刻断掉与代理的连接,避免代理返回的数据将本身的带宽堵死,而不能发动再次请求,这时WEB服务器会将响应这些请求的进程进行队列,数据库服务器也同样如此,这样一来,正常请求将会被排在很后被处理,就象本来你去食堂吃饭时,一般只有不到十个人在排队,今天前面却插了一千个人,那么轮到你的机会就很小很小了,这时就出现页面打开极其缓慢或者白屏。

三、攻击症状

CC攻击有一定的隐蔽性,那如何确定服务器正在遭受或者曾经遭受CC攻击呢?我们可以通过以下三个方法来确定。

(1).命令行法

一般遭受CC攻击时,Web服务器会出现80端口对外关闭的现象,因为这个端口已经被大量的垃圾数据堵塞了正常的连接被中止了。我们可以通过在命令行下输入命令netstat-an来查看,如果看到类似如下有大量显示雷同的连接记录基本就可以被CC攻击了:

……

TCP 192.168.1.3:80 192.168.1.6:2205 SYN_RECEIVED 4

TCP 192.168.1.3:80 192.168.1.6: 2205 SYN_RECEIVED 4

TCP 192.168.1.3:80 192.168.1.6: 2205 SYN_RECEIVED 4

TCP 192.168.1.3:80 192.168.1.6: 2205 SYN_RECEIVED 4

TCP 192.168.1.3:80 192.168.1.6: 2205 SYN_RECEIVED 4

……

其中”192.168.1.6″就是被用来代理攻击的主机的IP,”SYN_RECEIVED”是TCP连接状态标志,意思是”正在处于连接的初始同步状态”,表明无法建立握手应答处于等待状态。这就是攻击的特征,一般情况下这样的记录一般都会有很多条,表示来自不同的代理IP的攻击。

(2).批处理法

上述方法需要手工输入命令且如果Web服务器IP连接太多看起来比较费劲,我们可以建立一个批处理文件,通过该脚本代码确定是否存在CC攻击。打开记事本键入如下代码保存为CC.bat:

@echooff

time /t >>log.log

netstat -n -p tcp |find “:80”>>Log.log

notepad log.log

exit

上面的脚本的含义是筛选出当前所有的到80端口的连接。当我们感觉服务器异常是就可以双击运行该批处理文件,然后在打开的log.log文件中查看所有的连接。如果同一个IP有比较多的到服务器的连接,那就基本可以确定该IP正在对服务器进行CC攻击。

(3).查看系统日志

上面的两种方法有个弊端,只可以查看当前的CC攻击,对于确定Web服务器之前是否遭受CC攻击就无能为力了,此时我们可以通过Web日志来查,因为Web日志忠实地记录了所有IP访问Web资源的情况。通过查看日志我们可以Web服务器之前是否遭受CC攻击,并确定攻击者的IP然后采取进一步的措施。

Web日志一般在C:/WINDOWS/system32/LogFiles/HTTPERR目录下,该目录下用类似httperr1.log的日志文件,这个文件就是记录Web访问错误的记录。管理员可以依据日志时间属性选择相应的日志打开进行分析是否Web被CC攻击了。默认情况下,Web日志记录的项并不是很多,我们可以通过IIS进行设置,让Web日志记录更多的项以便进行安全分析。其操作步骤是:

“开始→管理工具”打开”Internet信息服务器”,展开左侧的项定位到到相应的Web站点,然后右键点击选择”属性”打开站点属性窗口,在”网站”选项卡下点击”属性”按钮,在”日志记录属性”窗口的”高级”选项卡下可以勾选相应的”扩展属性”,以便让Web日志进行记录。比如其中的”发送的字节数”、”接收的字节数”、”所用时间”这三项默认是没有选中的,但在记录判断CC攻击中是非常有用的,可以勾选。另外,如果你对安全的要求比较高,可以在”常规”选项卡下对”新日志计划”进行设置,让其”每小时”或者”每一天”进行记录。为了便于日后进行分析时好确定时间可以勾选”文件命名和创建使用当地时间”。

四、CC攻击防御策略

确定Web服务器正在或者曾经遭受CC攻击,那如何进行有效的防范呢?

(1).取消域名绑定

一般cc攻击都是针对网站的域名进行攻击,比如我们的网站域名是”www.star-net.cn”,那么攻击者就在攻击工具中设定攻击对象为该域名然后实施攻击。

对于这样的攻击我们的措施是在IIS上取消这个域名的绑定,让CC攻击失去目标。具体操作步骤是:打开”IIS管理器”定位到具体站点右键”属性”打开该站点的属性面板,点击IP地址右侧的”高级”按钮,选择该域名项进行编辑,将”主机头值”删除或者改为其它的值(域名)。

经过模拟测试,取消域名绑定后Web服务器的CPU马上恢复正常状态,通过IP进行访问连接一切正常。但是不足之处也很明显,取消或者更改域名对于别人的访问带来了不变,另外,对于针对IP的CC攻击它是无效的,就算更换域名攻击者发现之后,他也会对新域名实施攻击。

(2).域名欺骗解析

如果发现针对域名的CC攻击,我们可以把被攻击的域名解析到127.0.0.1这个地址上。我们知道127.0.0.1是本地回环IP是用来进行网络测试的,如果把被攻击的域名解析到这个IP上,就可以实现攻击者自己攻击自己的目的,这样他再多的肉鸡或者代理也会宕机,让其自作自受。

另外,当我们的Web服务器遭受CC攻击时把被攻击的域名解析到国家有权威的政府网站或者是网警的网站,让其网警来收拾他们。

现在一般的Web站点都是利用类似”新网”这样的服务商提供的动态域名解析服务,大家可以登录进去之后进行设置。

(3).更改Web端口

一般情况下Web服务器通过80端口对外提供服务,因此攻击者实施攻击就以默认的80端口进行攻击,所以,我们可以修改Web端口达到防CC攻击的目的。运行IIS管理器,定位到相应站点,打开站点”属性”面板,在”网站标识”下有个TCP端口默认为80,我们修改为其他的端口就可以了。

(4).IIS屏蔽IP

我们通过命令或在查看日志发现了CC攻击的源IP,就可以在IIS中设置屏蔽该IP对Web站点的访问,从而达到防范IIS攻击的目的。在相应站点的”属性”面板中,点击”目录安全性”选项卡,点击”IP地址和域名现在”下的”编辑”按钮打开设置对话框。在此窗口中我们可以设置”授权访问”也就是”白名单”,也可以设置”拒绝访问”即”黑名单”。比如我们可以将攻击者的IP添加到”拒绝访问”列表中,就屏蔽了该IP对于Web的访问。

五、CC攻击的防范手段

防止CC攻击,不一定非要用高防服务器。比如,用防CC攻击软件就可以有效的防止CC攻击。推荐一些CC的防范手段:

1、优化代码

尽可能使用缓存来存储重复的查询内容,减少重复的数据查询资源开销。减少复杂框架的调用,减少不必要的数据请求和处理逻辑。程序执行中,及时释放资源,比如及时关闭mysql连接,及时关闭memcache连接等,减少空连接消耗。

2、限制手段

对一些负载较高的程序增加前置条件判断,可行的判断方法如下:

必须具有网站签发的session信息才可以使用(可简单阻止程序发起的集中请求);必须具有正确的referer(可有效防止嵌入式代码的攻击);禁止一些客户端类型的请求(比如一些典型的不良蜘蛛特征);同一session多少秒内只能执行一次。

3、完善日志

尽可能完整保留访问日志。日志分析程序,能够尽快判断出异常访问,比如单一ip密集访问;比如特定url同比请求激增。

六、针对CC攻击的商业解决方案

很多的网站管理者是等到网站遭到攻击了,受到损失了,才去寻求解决的方案,在将来的互联网飞速发展的时代,一定要有安全隐患意识,不要等到损失大了,再去想办法来补救,这样为时已晚。然而当网站受到攻击时,大多数人想到的是—–快点找硬防,基本上都步了一个误区,就是认为网站或者服务器被攻击,购买硬件防火墙,什么事都万事大吉了,实际上这样的想法是极端错误的。多年的统计数据表明,想彻底解CC攻击是几乎不可能的,就好比治疗感冒一样,我们可以治疗,也可以预防,但却无法根治,但我们若采取积极有效的防御方法,则可在很大程度上降低或减缓生病的机率,防治DDOS攻击也是如此。

实际上比较理想解决方案应该是”软件+硬件”的解决方案。此方案对于资金较为充足的企业网站来说,这个方案适合他们;硬件在DDOS防护上有优势,软件CC防护上有优势;相对于一些对于ICP内容网站、论坛社区BBS、电子商务eBusiness、音乐网站Music、电影网站File等网站服务器越来越普及,但由于种种原因往往会遭受竞争对手或打击报复者的恶意DDOS攻击,持续的攻击会导致大量用户流失,严重的甚至因人气全失而被迫关闭服务器,为了最大程度的保护运营者的利益,百度旗下百度云加速产品应运而生,百度云加速具备1Tbps的压制能力的抗D中心,拥有自有DDoS/CC清洗算法,可有效帮助网站防御SYN Flood、UDP Flood、ICMP Flood、TCP Flood、Connections Flood、Proxy Flood、CC等常见的洪水攻击。从而彻底解决了中小型网站在面对DDoS攻击时预算不足的尴尬,也为所有防护网站的稳定运行提供保障。

网站被CC攻击防御解决方案插图1

推荐阅读
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了Redis中RDB文件和AOF文件的保存和还原机制。RDB文件用于保存和还原Redis服务器所有数据库中的键值对数据,SAVE命令和BGSAVE命令分别用于阻塞服务器和由子进程执行保存操作。同时执行SAVE命令和BGSAVE命令,以及同时执行两个BGSAVE命令都会产生竞争条件。服务器会保存所有用save选项设置的保存条件,当满足任意一个保存条件时,服务器会自动执行BGSAVE命令。此外,还介绍了RDB文件和AOF文件在操作方面的冲突以及同时执行大量磁盘写入操作的不良影响。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 基于事件驱动的并发编程及其消息通信机制的同步与异步、阻塞与非阻塞、IO模型的分类
    本文介绍了基于事件驱动的并发编程中的消息通信机制,包括同步和异步的概念及其区别,阻塞和非阻塞的状态,以及IO模型的分类。同步阻塞IO、同步非阻塞IO、异步阻塞IO和异步非阻塞IO等不同的IO模型被详细解释。这些概念和模型对于理解并发编程中的消息通信和IO操作具有重要意义。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 网卡工作原理及网络知识分享
    本文介绍了网卡的工作原理,包括CSMA/CD、ARP欺骗等网络知识。网卡是负责整台计算机的网络通信,没有它,计算机将成为信息孤岛。文章通过一个对话的形式,生动形象地讲述了网卡的工作原理,并介绍了集线器Hub时代的网络构成。对于想学习网络知识的读者来说,本文是一篇不错的参考资料。 ... [详细]
author-avatar
西乡塘化民以精神
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有