modSecurity规则学习(五)——DDOS攻击检测
1、IP访问频率
- SecAction phase:1,nolog,pass,setvar:IP.counter=+1
- SecRule IP:UPDATE_RATE "@gt 10" \
- "phase:1,block,msg:'Request rate too high for IP address: %{IP.UPDATE_RATE}'"
优化下,去掉静态资源的
- # Only increment the counter if the
- # request is for a non-static resource
- SecRule REQUEST_FILENAME "!\.(jpg|png|gif|js|css|ico)$" \
- phase:,nolog,pass,setvar:IP.counter=+
2、DURATION variable (2.6以后)
discover how long a transaction has been running. The idea is to keep track of how much
time the web server is spending, per IP address, session, or user.
- # Block the IP addresses that use too
- # much of the web server's time
- SecRule IP.load "@gt 10000" \
- "phase:1,t:none,block,\
- msg:'IP address load too high: %{IP.load}'"
- # Keep track of how much web server
- # time is consumed by each IP address
- SecAction "phase:5,nolog,pass,\
- setvar:IP.load=+%{DURATION},\
- deprecatevar:IP.load=/"
3、根据业务请求,比如有暴力登录的ddos,成功跳转index,php,失败跳回login.php,通过访问login.php的频率判断潜在的ddos
- <Location /login.php>
- # Enforce an existing IP address block
- SecRule IP:bf_block "@eq 1" "phase:2,block,\
- msg:'IP address blocked because of suspected brute-force attack'"
- # Check for authentication failure
- SecRule RESPONSE_HEADERS:Location ^/login.php \
- "phase:5,chain,t:none,nolog,pass, \
- msg:'Multiple authentication failures from IP address',\
- setvar:IP.bf_counter=+"
- SecRule IP:bf_counter "@gt 25" t:none,\
- setvar:IP.bf_block,\
- setvar:!IP.bf_counter,\
- expirevar:IP.block=
- </Location>
4、按IP||用户失败频率统计
- <Location /login.php>
- # Enforce an existing IP address block
- SecRule IP:bf_block "@eq 1" \
- "phase:2,deny,\
- msg:'IP address blocked because of suspected brute-force attack'"
- # Retrieve the per-username record
- SecAction phase:,nolog,pass,initcol:USER=%{ARGS.username}
- # Enforce an existing username block
- SecRule USER:bf_block "@eq 1" \
- "phase:2,deny,\
- msg:'Username blocked because of suspected brute-force attack'"
- # Check for authentication failure and increment counters
- SecRule RESPONSE_HEADERS:Location ^/login.php \
- "phase:5,t:none,nolog,pass,\
- setvar:IP.bf_counter=+,\
- setvar:USER.bf_counter=+"
- # Check for too many failures from a single IP address
- SecRule IP:bf_counter "@gt 25" \
- "phase:5,pass,t:none,\
- setvar:IP.bf_block,\
- setvar:!IP.bf_counter,\
- expirevar:IP.block="
- # Check for too many failures for a single username
- SecRule USER:bf_counter "@gt 25" \
- "phase:5,t:none,pass,\
- setvar:USER.bf_block,\
- setvar:!USER.bf_counter,\
- expirevar:USER.block="
- </Location>
modSecurity规则学习(五)——DDOS攻击检测的更多相关文章
- modSecurity规则学习(六)——检测模式
传统检测模式-自主规则 传统检测模式所有规则都是“闭环”的模式.就像HTTP本身一样,单独的规则是无状态的.这意味着规则之间不共享信息,每个规则都没有关于任何先前规则匹配的信息.它仅使用其当前的单个规 ...
- 大数据DDos检测——DDos攻击本质上是时间序列数据,t+1时刻的数据特点和t时刻强相关,因此用HMM或者CRF来做检测是必然! 和一个句子的分词算法CRF没有区别!
DDos攻击本质上是时间序列数据,t+1时刻的数据特点和t时刻强相关,因此用HMM或者CRF来做检测是必然!——和一个句子的分词算法CRF没有区别!注:传统DDos检测直接基于IP数据发送流量来识别, ...
- DDos攻击的一些领域知识——(流量模型针对稳定业务比较有效)不稳定业务采用流量成本的检测算法,攻击发生的时候网络中各个协议的占比发生了明显的变化
在过去,很多防火墙对于DDoS攻击的检测一般是基于一个预先设定的流量阈值,超过一定的阈值,则会产生告警事件,做的细一些的可能会针对不同的流量特征设置不同的告警曲线,这样当某种攻击突然出现的时候,比如S ...
- [推荐]DDOS攻击与防范知识介绍
[推荐]DDOS攻击与防范知识介绍 DDOS攻防体系建设v0.2(淘宝-林晓曦) http://wenku.baidu.com/view/39549a11a8114431b90dd866.ht ...
- DDOS攻击(流量攻击)防御步骤
DDOS全名是Distributed Denial of service (分布式拒绝服务攻击),很多DOS攻击源一起攻击某台服务器就组成了DDOS攻击,DDOS 最早可追溯到1996年最初,在中国2 ...
- 网站遭遇CC及DDOS攻击紧急处理方案
检测访问是否是CC攻击的命令: 80口为网站的访问端口,可以根据实际情况进行修改 # netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: ' ...
- DDoS攻击流量检测方法
检测分类 1)误用检测 误用检测主要是根据已知的攻击特征直接检测入侵行为.首先对异常信息源建模分析提取特征向量,根据特征设计针对性的特征检测算法,若新数据样本检测出相应的特征值,则发布预警或进行反应. ...
- https ddos攻击——由于有了认证和加解密 后果更严重 看绿盟的产品目前对于https的ddos cc攻击需要基于内容做检测
如果web服务器支持HTTPS,那么进行HTTPS洪水攻击是更为有效的一种攻击方式,一方面,在进行HTTPS通信时,web服务器需要消耗更多的资源用来进行认证和加解密,另一方面,一部分的防护设备无法对 ...
- 工信部公示网络安全示范项目 网易云易盾“自适应DDoS攻击深度检测和防御系统”入选
本文由 网易云发布. 工信部官网 2017年年底,经专家评审和遴选,中华人民共和国工业和信息化部(以下简称“工信部”)公示了2017年电信和互联网行业网络安全试点示范项目,网易云易盾的“自适应DDo ...
随机推荐
- kindeditor 不能编辑 问题
/*显示上传窗体*/ function ShowUplodToDaily() { var _sdata = grid.getSelecteds(); if (_sdata) { /*创建编辑器*/ v ...
- python3.x学习笔记2(基础知识)
1.元组元组其实跟列表差不多,也是存一组数,只是它一旦创建,便不能在修改,所以又叫只读列表语法:names =('shgd','sjdh') 它只有两个方法,一个是count,一个是index 2.字 ...
- Android 自定义viewpager 三张图片在同一屏幕轮播的效果
github:https://github.com/nickeyCode/RoundImageViewPager 说实话不知道怎么描述这个效果,在网页上见得跟多,公司要求做这个效果得时候不知道怎么用文 ...
- PostgreSQL 批量生成数据
create table user_info(userid int,name text,birthday date,crt_time timestamp without time zone,); in ...
- nil / Nil / NULL / NSNull VS objc_msgSend
[NSNull null]是一个对象,其类为NSNULL(isa):里面没有任何变量.函数.和实现. nil的处理展示出消息机制的优越性,相对于函数调用的空指针处理. ENTRY objc_msgSe ...
- js文字的无缝滚动(上下)
使用scrolltop值的递增配合setInterval与setTimeout实现相关效果,左右无缝滚动使用scrollLeft即可 Dom内容 <div id="container& ...
- 在Ubuntu上创建一个可以启动的U盘
1.概观 使用可启动的Ubuntu USB盘,您可以: 安装或升级Ubuntu 在不触及PC配置的情况下测试Ubuntu桌面体验 在借来的机器或网吧上启动到Ubuntu 使用USB盘上默认安装的工具来 ...
- 2017国家集训队作业[agc016b]Color Hats
2017国家集训队作业[agc016b]Color Hats 题意: 有\(N\)个人,每个人有一顶帽子.帽子有不同的颜色.现在,每个人都告诉你,他看到的所有其它人的帽子共有多少种颜色,问有没有符合所 ...
- CMSIS-RTOS功能概述
以下列表简要概述了所有CMSIS-RTOS功能.标有$的函数是可选的.特定的CMSIS-RTOS实现可能无法提供所有功能,但osFeatureXXXX定义明确指出了这一点. 注意 RTX实现不支持的功 ...
- C# 从需要登录的网站上抓取数据
[转] C# 从需要登录的网站上抓取数据 背景:昨天一个学金融的同学让我帮她从一个网站上抓取数据,然后导出到excel,粗略看了下有1000+条记录,人工统计的话确实不可能.虽说不会,但作为一个学计算 ...