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

还在担心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注入
  • 对指定时间, 或者指定星期进行限制, 防止高峰期流量过载

应用截图

主页

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

配置

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

负载均衡

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

SSL证书

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

相关链接

节点服务器 luojiawaf_lua(nginx+lua)
中控服务器前端 luajiawaf_web(ant.design)
中控服务器后端 luajiawaf_server(django)

你可能感兴趣的:(还在担心CC攻击? 让我们来了解它, 并尽可能将其拒之服务之外.)