1. What - 什么是CC攻击
CC攻击,即针对应用层HTTP协议的DDos攻击,攻击者在短时间内向目标服务器发送大量的HTTP请求,使得服务器会非常繁忙,资源消耗会增加;同时,如果请求中包含基于数据库的查询,也会对数据库的性能造成影响。
 
2. Why - 为什么要防范CC攻击
降低Qos质量,妨碍正常用户的访问,严重时会使服务不可用。
 
3. how - 如何防范
1) 确认HTTP请求会话唯一性
客户端IP+session,服务端可以做判断,相同时刻下的请求,如果客户端IP出现的次数不是唯一的,这种请求必然不是正常用户,服务端可以调用相关防御机制处理这类请求;在IP唯一的情况下,检测session中的访问动作,如果多次刷新,则是可疑行为,此时应该启用防御机制。
这种防范属于应用层程序的自身的主动防御,也是最可靠的,代价主要在程序架构和开发。
 
2) 基于访问日志数据分析的防御
根据连续访问日志的数据分析,根据IP访问量的变化情况,获得可疑IP,将这类IP放入拒绝访问列表中,以实现防御目的。
这种防范属于网络层面的被动防御,防御机制生效落后于攻击,且很容易误杀同一个出口IP的正常用户,这也是我们当前在做的,思路和模块简述如下:
(1) 获取策略阈值
根据已有的正常访问日志,统计连续几天内如下数据内容,以一天为例:
时间片单位:15min
单位时间内:总的访问量(total_access_p15),总的访问IP数(ips_p15)
时间片内每个IP的平均访问量:ips_per_count=total_access_p15/ips_p15
从00:00:00开始,一天可以获取24*60/15=96个ips_per_count
连续计算正常访问情况下5天的96个ips_per_count,然后对相同起始时刻的单位时间做均值,最后获得96个avg_ips_per_count作为对应的策略阈值
(2) 可疑IP判定
已知时间片内的每个avg_ips_per_count,将其作为过滤条件,去过滤查询出时间片内访问次数大于avg_ips_per_count的单个IP(ip),每个IP在每5min内的访问量(ip_count_p3),对相邻的ip_count_p求商,如果商大于1,则视为可疑行为的IP,将其加入黑名单。
(3) 黑名单更新
在日志中查询黑名单IP出现的非200状态码如403的次数(bl_ip_deny_count),如果bl_ip_deny_count小于上次(ip_count_p1+ip_count_p2+ip_count_p3)/3,则将其移出黑名单。
 
进行上述简要分析处理,可以较为真实的反映IP的请求行为,做到较为可靠的防御效果,并降低误杀的可能。
 

基于日志数据分析以防御CC攻击的想法的更多相关文章

  1. NGINX防御CC攻击教程

    CC攻击即http flood,以攻击成本低(只需数台http代理服务器即可实现攻击).隐蔽性强(中小CC攻击一般不会造成网络瓶颈).难防御(与正常访问的请求很难区分开).威力强大(造成和DDOS流量 ...

  2. Nginx防御CC攻击

    CC攻击可以归为DDoS攻击的一种.他们之间都原理都是一样的,即发送大量的请求数据来导致服务器拒绝服务,是一种连接攻击.CC攻击又可分为代理CC攻击,和肉鸡CC攻击.代理CC攻击是黑客借助代理服务器生 ...

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

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

  4. 使用Discuz!自带参数防御CC攻击以及原理

    CC攻击确实是很蛋疼的一种攻击方式,Discuz!的配置文件中已经有了一个自带的减缓CC攻击的参数,在配置文件config.inc.php中: $attackevasive = 0;  // 论坛防御 ...

  5. cc攻击技术

    攻击者借助代理服务器生成指向受害主机的合法请求,实现DOS,和伪装就叫:cc(ChallengeCollapsar). CC主要是用来攻击页面的.大家都有这样的经历,就是在访问论坛时,如果这个论坛比较 ...

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

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

  7. cc攻击和ddos攻击的区别和攻防 + 调SYN连接参数

    1.一个是WEB网络层拒绝服务攻击(DDoS),一个是WEB应用层拒绝服务攻击(CC),网络层就是利用肉鸡的流量去攻击目标网站的服务器,针对比较本源的东西去攻击,服务器瘫痪了,那么运行在服务器上的网站 ...

  8. 【随笔】Linux主机简单判断CC攻击的命令

    今天看到一个很有意思的命令tcpdump,在这里记录下. 如果想要看tcpdump的详细用法,可以点击这里. 什么是CC攻击? 关于CC攻击,这里引用百度的解释: CC攻击的原理就是攻击者控制某些主机 ...

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

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

随机推荐

  1. JAVA第三周作业(从键盘输入若干数求和)

    JAVA第三周作业(从键盘输入若干数求和) 在新的一周,我学习了JAVA的IO编程.下面的代码实现了从键盘输入若干数求和的目标.import java.util.Scanner; public cla ...

  2. nim也玩一行流,nim版的list comprehension

    nim 是一门风格类似python的静态编译型语言,官方网站:http://nim-lang.org 如果你想折腾nim的编辑环境,可以用sublime text3 +插件nimlime,notepa ...

  3. IOS自定义日历控件的简单实现(附思想及过程)

    因为程序要求要插入一个日历控件,该空间的要求是从当天开始及以后的六个月内的日历,上网查资料基本上都说只要获取两个条件(当月第一天周几和本月一共有多少天)就可以实现一个简单的日历,剩下的靠自己的简单逻辑 ...

  4. php7.0支持调用lua脚本

    需求前瞻: 最近因需求,需要支持php调用现有的Lua代码,可以减少php的代码量,同时在维护上也比较方便,不会照成需求变更,需要同时修改两份代码 第一步:安装php7.0及以上版本,此处安装方法就略 ...

  5. IntelliJ IDEA手工安python装插件方法

    IntelliJ IDEA手工安装插件方法 以IntelliJ IDEA 11.0.1安装python为例: (1)下载python插件地址:http://plugins.intellij.net/p ...

  6. Facebook 帆布接入的总结

    研究接入facebook也有不短的时间, 上线过几款产品,这里把接入所有的点 都记录一下. 1.首先进入facebook的开发者页面,直接入口在右下角更多里面 然后注册开发者账号, 创建APP 选择F ...

  7. spring 包下载地址

    留着,以备不时之需: http://repo.spring.io/libs-release-local/org/springframework/spring/

  8. Integer to Roman -- LeetCode 012

    Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 t ...

  9. C#使用QQ邮箱发送邮件

    首先要开通QQ邮箱的STMP服务.QQ邮箱——设置——账户——开启SMTP服务. 需要引用: using System.Net; using System.Net.Mail; using System ...

  10. iOS UIPickerView 显示全国省市

    效果图 #import "ViewController.h" @interface ViewController () @property(strong,nonatomic)UIP ...