还在担心CC攻击? 让我们来了解它, 并尽可能将其拒之服务之外.

CC攻击是什么?

基本原理

CC原名为ChallengeCollapsar, 这种攻击通常是攻击者通过大量的代理机或者肉鸡给目标服务器发送大量貌似合法的请求, 使目标服务器耗尽计算力(也就是cpu飙升100%), 从而达到拒绝服务的目的.

危害在哪

由于系统待处理的数据队列被无限的加长, 而客户端在有效的请求的时间内又得不到响应, 从而以为是网络波动进行相应的重试, 就比如系统每秒能处理1,000QPS, 而现在待处理的队列已经达到了30,000QPS, 也就是系统现在有空闲运转30秒才能处理完队列中的所有请求, 而客户也是至少需要30秒才能得到响应, 原来(1秒内)就可以, 他在等待了10秒后就会重试, 从而进一步加重了系统的负担, 从而使系统瘫痪. 而目标的服务器, 当队列越来越大, 目标计算机的内存耗尽, 会进一步引发程序的崩溃.

举个栗子

一家餐厅, 对外进行服务, 有一百张位置, 如果正常情况下, 每个人平均的点餐加用餐时间15分钟, 这家餐厅15分钟内可以服务100个人(类似QPS), 现在对你搞破坏的人雇佣了100个人来排在你正常的队伍后面, 他们进入餐厅后, 用磨磨蹭蹭的速度找座位(慢速攻击), 然后又叫服务员擦桌子, 然后又假装向服务员点餐, 然后点完餐后又假装有事不吃了(刷空单, 现实中可能只来一次, 而服务器中这过程可能重复N次, 从而占用了大量的资源), 这过程耗时10分钟, 也就是正常吃饭的人, 至少要10分钟后才能进入到餐厅, 可能还会叫不到服务员, 即正常的客户也无法完成用餐服务, 至此这家餐厅在有效期内成功服务个位数的实际客户, 搞破坏的人达成了目标.

如何防御

因为CC是攻击者模拟正常的用户请求来达到攻击的目标, 从单个url的角度来看的话, 他们都是合法的请求, 而从全局的角度来看, 这些攻击者耗废了大量的服务器带宽, CPU且不会产生任何收益. 而攻击者通常用一定的规格来重复流量的攻击, 也就是我们看的到的特征.

由于国内的云不能禁用udp, 无法有效的防御DDOS的攻击, 基本上而目前小企业的比较通用的防御结构高防机(也就是机房, 成本在2000-5000左右, 能防100G, 能禁UDP, 能禁海外), 而且通常会选择多机房来做备份防止机房网络波动, 所有直接面向用户的机子通常是多台的, 也需要把用户的请求汇总分析才有意义, 单一机子分析无法得出准确的特征码

比如攻击者使用单一的攻击请求http://example.com/api/user, 一直重复的发送, 而正常的用户请求完user数据之后就会转入其它的请求, 这攻击者仅仅请求了/api/user, 且次数在短时间达到了几百次, 我们就基本上可以断定这IP为非法的用户, 我们可以对该IP进行封禁处理

洛甲WAF, 它能做什么

洛甲WAF是基于openresty的web防火墙,它由多个或者单个节点服务器和中控服务器组成, 它将节点的数据请求汇总到中控服务器做统一的分析, 从而可以自动的识别出哪些用户是非法IP, 从而实行自动封禁, 基本上能保证90%以上的CC攻击自动拦截, 保证服务器的有效正常的运转.

除了防CC, 他还能做什么

  • 可在后台配置限制访问频率,URI访问频率
  • 可后台封禁IP,记录IP访问列表
  • 对指定HOST限制流入流出流量或者对全局限制
  • 可统计服务端错误内容500错误等
  • 可查看请求耗时列表, 服务器内部负载情况
  • 可在后台配置负载均衡, 添加域名转发, 无需重启服务器
  • 可在后台配置SSL证书, 无需重启服务器
  • 对黑名单的用户,如果频繁访问,则防火墙对IP封禁
  • 对GET或者POST参数进行检查, 防止SQL注入
  • 对指定时间, 或者指定星期进行限制, 防止高峰期流量过载

应用截图

主页

配置

负载均衡

SSL证书

相关链接

节点服务器 luojiawaf_lua(nginx+lua)

中控服务器前端 luajiawaf_web(ant.design)

中控服务器后端 luajiawaf_server(django)

还在担心CC攻击? 让我们来了解它, 并尽可能将其拒之服务之外.的更多相关文章

  1. 网站防止CC攻击的方法

    CC攻击(Challenge Collapsar)是DDOS(分布式拒绝服务)的一种,也是一种常见的网站攻击方法,攻击者通过代理服务器或者肉鸡向向受害主机不停地发大量数据包,造成对方服务器资源耗尽,一 ...

  2. linux中防CC攻击两种实现方法(转)

    CC攻击就是说攻击者利用服务器或代理服务器指向被攻击的主机,然后模仿DDOS,和伪装方法网站,这种CC主要是用来攻击页面的,导致系统性能用完而主机挂掉了,下面我们来看linux中防CC攻击方法. 什么 ...

  3. DDoS攻防战(二):CC攻击工具实现与防御理论

    我们将要实现一个进行应用层DDoS攻击的工具,综合考虑,CC攻击方式是最佳选择,并用bash shell脚本来快速实现并验证这一工具,并在最后,讨论如何防御来自应用层的DDoS攻击. 第一步:获取大量 ...

  4. nginx利用limit模块设置IP并发防CC攻击

    nginx利用limit模块设置IP并发防CC攻击 分类: 系统2013-01-21 09:02 759人阅读 评论(0) 收藏 举报 来源:http://blog.xencdn.net/nginx- ...

  5. 部署在腾讯云的公益网站遭受了一次CC攻击

    版权声明:本文由黄希彤  原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/651089001483090830 来源:腾云阁 ...

  6. 使用Discuz!自带参数防御CC攻击以及原理,修改Discuz X 开启防CC攻击后,不影响搜索引擎收录的方法

    这部份的工作,以前花的时间太少. 希望能产生一定的作用. http://www.nigesb.com/discuz-cc-attacker-defence.html http://bbs.zb7.co ...

  7. 如何防范CC攻击

    服务器如何防范CC攻击CC攻击是DDOS(分布式拒绝服务)的一种,相比其它的DDOS攻击CC似乎更有技术含量一些.这种攻击你见不到虚假IP,见不到特别大的异常流量,但造成服务器无法进行正常连接,听说一 ...

  8. CC攻击网站和游戏如何针对性预防?

    1:CC攻击原理 CC = Challenge Collapsar,其前身名为Fatboy攻击,是利用不断对网站发送连接请求致 使形成拒绝服务的目的, CC攻击是DDOS(分布式拒绝服务)的一种,相比 ...

  9. Nginx配置抵御DDOS或CC攻击

    防攻击的思路我们都明白,比如限制IP啊,过滤攻击字符串啊,识别攻击指纹啦.可是要如何去实现它呢?用守护脚本吗?用PHP在外面包一层过滤?还是直接加防火墙吗?这些都是防御手段.不过本文将要介绍的是直接通 ...

随机推荐

  1. Redis 源码简洁剖析 13 - RDB 文件

    RDB 是什么 RDB 文件格式 Header Body DB Selector AUX Fields Key-Value Footer 编码算法说明 Length 编码 String 编码 Scor ...

  2. Vue2.0源码学习(1) - 数据和模板的渲染(上)

    准备 一.首先去GitHub上把vue源码download下来,传送门:https://github.com/vuejs/vue 二.搭建一个vue-cli跑起来,用于代码调试,不看着代码动起来只看源 ...

  3. c# 编程学习(二)

    标识符是对程序中的各个元素进行标识的名称.     只能使用字母(大写和小写).数字和下划线     标识符必须以字母或下划线开头   变量是容纳值的存储位置.可将变量想象成容纳临时信息的容器   ...

  4. Linux命令(ping-telnet-netstat-curl-ps)

    转至:https://www.jianshu.com/p/577bbd15a6f8 1.ping命令 ping命令用来测试主机之间网络的连通性.执行ping指令会使用ICMP传输协议,发出要求回应的信 ...

  5. Python:pandas(一)——常用、读写函数read_csv、read_excel、to_csv、to_excel

    学习自:pandas1.2.1documentation 0.常用 1)读写 ①从不同文本文件中读取数据的函数,都是read_xxx的形式:写函数则是to_xxx: ②对前n行感兴趣,或者用于检查读进 ...

  6. 快速构建 React 开发环境

    使用 create-react-app 快速构建 React 开发环境 create-react-app 是来自于 Facebook,通过该命令我们无需配置就能快速构建 React 开发环境. cre ...

  7. MongoDB聚合查询及Python连接MongoDB操作

    今日内容概要 聚合查询 Python操作MongoDB 第三方可视化视图工具 今日内容详细 聚合查询 Python操作MongoDB 数据准备 from pymongo import MongoCli ...

  8. tensorflow_keras_预训练模型_Applications接口的使用

    在很多复杂的计算机视觉问题上,我们需要使用层次相对较深的卷积神经网络才能得到好结果,但是自己从头去构建卷积神经网络是一个耗时耗力的事情,而且还不一定能训练好.大家通常用到最多的技巧是,使用" ...

  9. (第二章第四部分)TensorFlow框架之TFRecords数据的存储与读取

    系列博客链接: (第二章第一部分)TensorFlow框架之文件读取流程:https://www.cnblogs.com/kongweisi/p/11050302.html (第二章第二部分)Tens ...

  10. C#-使用Newtonsoft.Json实现json字符串与object对象互转

    json字符串转object对象: IF004Response processResponse = JsonConvert.DeserializeObject<IF004Response> ...