基于日志数据分析以防御CC攻击的想法

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的请求行为,做到较为可靠的防御效果,并降低误杀的可能。

时间: 2024-08-10 15:10:30

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

NGINX防御CC攻击教程

CC攻击即http flood,以攻击成本低(只需数台http代理服务器即可实现攻击).隐蔽性强(中小CC攻击一般不会造成网络瓶颈).难防御(与正常访问的请求很难区分开).威力强大(造成和DDOS流量攻击一样的效果,网站长时间无法打开)等特点著称.常规的http flood防御为JS弹回,二次请求验证加入白名单 和 多层缓存(七层.四层共同缓存)实现防御体.   CC攻击,首先造成的后果往往是被攻击服务器CPU爆满.内存占用高.甚至磁盘IO高占用.通常服务器上有永远处理不完的任务,所以,CC攻击

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

这部份的工作,以前花的时间太少. 希望能产生一定的作用. http://www.nigesb.com/discuz-cc-attacker-defence.html http://bbs.zb7.com/thread-8644-1-1.html CC攻击确实是很蛋疼的一种攻击方式,Discuz!的配置文件中已经有了一个自带的减缓CC攻击的参数,在配置文件config.inc.php中: 1 $attackevasive = 0;             // 论坛防御级别,可防止大量的非正常请求

防御CC攻击

菠菜盾 高防CDN 使用集群防御 隐藏网站真实IP 节点分布 国内 日本 韩国 美国 香港 加拿大 等地方 无视一切CC  流量攻击 集群防御 有效的解决了 CC流量等攻击 游戏客户端多端口定制CDN防御,一键隐藏真实IP,秒开,无需搬站无视CC,被墙域名高防解决 自助购买 自动开通 简洁方便  防御更强.秒速解析.更高防御 无需用户操作.智能防御  智能解析  智能切换,无视CC攻击 无视一切流量 高防 高配 高速 客服QQ:5569669 咨询热线:4000655875 公司网站: http

如何配置Nginx防御CC攻击

前言这次我们来讲讲如何通过简单的配置文件来实现nginx防御攻击的效果.其实很多时候,各种防攻击的思路我们都明白,比如限制IP啊,过滤攻击字符串啊,识别攻击指纹啦.可是要如何去实现它呢?用守护脚本吗?用PHP在外面包一层过滤?还是直接加防火墙吗?这些都是防御手段.不过本文将要介绍的是直接通过nginx的普通模块和配置文件的组合来达到一定的防御效果.验证浏览器行为简易版我们先来做个比喻.社区在搞福利,在广场上给大家派发红包.而坏人派了一批人形的机器人(没有语言模块)来冒领红包,聪明工作人员需要想出

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

CC攻击确实是很蛋疼的一种攻击方式,Discuz!的配置文件中已经有了一个自带的减缓CC攻击的参数,在配置文件config.inc.php中: $attackevasive = 0;  // 论坛防御级别,可防止大量的非正常请求造成的拒绝服务攻击                                  // 防护大量正常请求造成的拒绝服务攻击, 这个参数可以设置的值有: 0表示关闭此功能 1表示cookie刷新限制 2表示限制代理访问 4表示二次请求 8表示回答问题(第一次访问时需要回

Discuz!开源系统如何防御CC攻击?

Discuz!是一套免费的开源建站系统,在国内挺受欢迎的,主要用来搭建社区论坛类的网站.社区论坛类的网站由于流量比较大,很容易遭到DDOS攻击,特别是针对网页的CC攻击.一旦网站遇到类似攻击,不但导致用户流失,还会被搜索引擎降权.那当遇到CC攻击时该怎么办呢?其实Discuz!系统有一个缓解CC攻击的功能,今天墨者安全就教大家如何进行配置. 在Discuz!的配置文件找到config.inc.php,可以看到默认数值是0. $attackevasive = 0; 我们可以修改这个参数来缓解CC攻

H5游戏如何来防御cc攻击又不会误封用户

CC攻击是H5游戏常见的攻击类型,而H5游戏遭受CC攻击的时候,H5游戏访问就会变慢或者无法访问,那么CC攻击是如何攻击H5游戏的呢?CC攻击主要攻击的是页面,H5游戏运营者都知道H5游戏访问量特别大的时候网站访问也会变慢,H5游戏服务器压力大,而CC攻击就是模拟多个用户不停的去访问那些需要大量数据操作的页面,以此让H5游戏服务器CPU占满,从而导致H5游戏无法访问. 第一.高防cdn帮助H5游戏防御攻击需要H5游戏服务器ip地址没有被黑客知道,黑客攻击过H5游戏服务器那么就说明ip已经被黑客记

iptables 实现防御CC攻击

一:前言 防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种.无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘.而我们的任务就是需要去定义到底防火墙如何工作,这就是防火墙的策略,规则,以达到让它对出入网络的IP.数据进行检测. 目前市面上比较常见的有3.4层的防火墙,叫网络层的防火墙,还有7层的防火墙,其实是代理层的网关. 对于TCP/IP的七层模型来讲,我们知道第三层是网络层,三层的防火墙会在这层对源地址和目标地址进行检测.但是对于七层的防火

服务器CC攻击

CC攻击可以归为DDoS攻击的一种.他们之间的原理都是一样的,即发送大量的请求数据来导致服务器拒绝服务,是一种连接攻击.CC攻击又可分为代理CC攻击,和肉鸡CC攻击.代理CC攻击是黑客借助代理服务器生成指向受害主机的合法网页请求,实现DDoS,和伪装就叫:cc(Challenge Collapsar).而肉鸡CC攻击是黑客使用CC攻击软件,控制大量肉鸡,发动攻击,相比来后者比前者更难防御.因为肉鸡可以模拟正常用户访问网站的请求.伪造成合法数据包.一个静态页面不需要服务器多少资源,甚至可以说直接从