还在担心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. Solution -「APIO 2018」「洛谷 P4630」铁人两项

    \(\mathcal{Description}\)   Link.   给定一个 \(n\) 个点 \(m\) 条边的无向图(不保证联通),求有序三元点对 \((s,c,f)\) 的个数,满足 \(s ...

  2. Netty高级应用及聊天室实战

    Netty 高级应用 1. 编解码器 概念:在网络应用中,需要实现某种编解码器.将原始字节数据与自定义消息数据进行相互转换.网络中都是以字节码的形式传输的. 对Netty而言,编解码器由两部分组成:编 ...

  3. SpringCloud微服务实战——搭建企业级开发框架(三十七):微服务日志系统设计与实现

      针对业务开发人员通常面对的业务需求,我们将日志分为操作(请求)日志和系统运行日志,操作(请求)日志可以让管理员或者运营人员方便简单的在系统界面中查询追踪用户具体做了哪些操作,便于分析统计用户行为: ...

  4. Thread.currentThread().getName() 和 this.getName()区别详解

    currentThread的详解 currentThread方法是Thread类的一个静态方法,用来获取当前运行的代码段,正在被哪个线程调用.我们先来看一眼源码. 是一个native方法.直接与系统层 ...

  5. 技术管理进阶——谁能成为Leader,大Leader该做什么

    原创不易,求分享.求一键三连 两个故事 谁能成为Leader 之前接手了一块产品业务线,于是与原Leader说了下分工,大概意思是: 我是过来学习的,也能给团队带来更多的资源,团队内的工作你继续管理, ...

  6. [Java]Java入门笔记(二):数据类型、程序结构、数组、控制台输入

    二.基本语法 2.1 标识符 定义:给类.方法.变量等起的名字 规则: 可以使用字母(26个英文字母的大小写.各国的一些语言.-).数字.下划线.美元符号: 不能以数字开始(可以$开始): 不能是Ja ...

  7. 带你玩转CompletableFuture异步编程

    前言 最近在忙生活的第一个OKR,这个等等后面具体聊聊,今天开始恢复每周一篇原创,感谢小伙伴的不离不弃.这篇文章也是最近在Code Review的时候,看到的大家代码,想整体推下大家异步编程的思想,由 ...

  8. 【Windows 操作系统】 内核对象|句柄

    内核对象简介 内核对象就是 一些数据结构该结构用来描述存储内核中的一个内存块中的数据信息.   内存块是一种数据结构,其中的数据成员负责维护该对象的相应信息,这个数据结构以及其中的数据成员只能由内核访 ...

  9. 【C#表达式树 七】 反射在表达式树中的应用 ListInitExpression

    以下都是反射在表达式树中的应用 对象初始化 Expression.MemberInit 反射获取成员(字段 或者属性),绑定数据,然后生成 成员表达式节点 class Animal { public ...

  10. Map<String, String> map按key值排序

    private static String buildMd5Params(Map<String, String> map) { StringBuilder result = new Str ...