1、IP访问频率

  1. SecAction phase:1,nolog,pass,setvar:IP.counter=+1
  2. SecRule IP:UPDATE_RATE "@gt 10" \
  3. "phase:1,block,msg:'Request rate too high for IP address: %{IP.UPDATE_RATE}'"

  优化下,去掉静态资源的

  1. # Only increment the counter if the
  2. # request is for a non-static resource
  3. SecRule REQUEST_FILENAME "!\.(jpg|png|gif|js|css|ico)$" \
  4. 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.

  1. # Block the IP addresses that use too
  2. # much of the web server's time
  3. SecRule IP.load "@gt 10000" \
  4. "phase:1,t:none,block,\
  5. msg:'IP address load too high: %{IP.load}'"
  6. # Keep track of how much web server
  7. # time is consumed by each IP address
  8. SecAction "phase:5,nolog,pass,\
  9. setvar:IP.load=+%{DURATION},\
  10. deprecatevar:IP.load=/"

3、根据业务请求,比如有暴力登录的ddos,成功跳转index,php,失败跳回login.php,通过访问login.php的频率判断潜在的ddos

  1. <Location /login.php>
  2. # Enforce an existing IP address block
  3. SecRule IP:bf_block "@eq 1" "phase:2,block,\
  4. msg:'IP address blocked because of suspected brute-force attack'"
  5. # Check for authentication failure
  6. SecRule RESPONSE_HEADERS:Location ^/login.php \
  7. "phase:5,chain,t:none,nolog,pass, \
  8. msg:'Multiple authentication failures from IP address',\
  9. setvar:IP.bf_counter=+"
  10. SecRule IP:bf_counter "@gt 25" t:none,\
  11. setvar:IP.bf_block,\
  12. setvar:!IP.bf_counter,\
  13. expirevar:IP.block=
  14. </Location>

4、按IP||用户失败频率统计

  1. <Location /login.php>
  2. # Enforce an existing IP address block
  3. SecRule IP:bf_block "@eq 1" \
  4. "phase:2,deny,\
  5. msg:'IP address blocked because of suspected brute-force attack'"
  6. # Retrieve the per-username record
  7. SecAction phase:,nolog,pass,initcol:USER=%{ARGS.username}
  8. # Enforce an existing username block
  9. SecRule USER:bf_block "@eq 1" \
  10. "phase:2,deny,\
  11. msg:'Username blocked because of suspected brute-force attack'"
  12. # Check for authentication failure and increment counters
  13. SecRule RESPONSE_HEADERS:Location ^/login.php \
  14. "phase:5,t:none,nolog,pass,\
  15. setvar:IP.bf_counter=+,\
  16. setvar:USER.bf_counter=+"
  17. # Check for too many failures from a single IP address
  18. SecRule IP:bf_counter "@gt 25" \
  19. "phase:5,pass,t:none,\
  20. setvar:IP.bf_block,\
  21. setvar:!IP.bf_counter,\
  22. expirevar:IP.block="
  23. # Check for too many failures for a single username
  24. SecRule USER:bf_counter "@gt 25" \
  25. "phase:5,t:none,pass,\
  26. setvar:USER.bf_block,\
  27. setvar:!USER.bf_counter,\
  28. expirevar:USER.block="
  29. </Location>
  1.  

modSecurity规则学习(五)——DDOS攻击检测的更多相关文章

  1. modSecurity规则学习(六)——检测模式

    传统检测模式-自主规则 传统检测模式所有规则都是“闭环”的模式.就像HTTP本身一样,单独的规则是无状态的.这意味着规则之间不共享信息,每个规则都没有关于任何先前规则匹配的信息.它仅使用其当前的单个规 ...

  2. 大数据DDos检测——DDos攻击本质上是时间序列数据,t+1时刻的数据特点和t时刻强相关,因此用HMM或者CRF来做检测是必然! 和一个句子的分词算法CRF没有区别!

    DDos攻击本质上是时间序列数据,t+1时刻的数据特点和t时刻强相关,因此用HMM或者CRF来做检测是必然!——和一个句子的分词算法CRF没有区别!注:传统DDos检测直接基于IP数据发送流量来识别, ...

  3. DDos攻击的一些领域知识——(流量模型针对稳定业务比较有效)不稳定业务采用流量成本的检测算法,攻击发生的时候网络中各个协议的占比发生了明显的变化

    在过去,很多防火墙对于DDoS攻击的检测一般是基于一个预先设定的流量阈值,超过一定的阈值,则会产生告警事件,做的细一些的可能会针对不同的流量特征设置不同的告警曲线,这样当某种攻击突然出现的时候,比如S ...

  4. [推荐]DDOS攻击与防范知识介绍

    [推荐]DDOS攻击与防范知识介绍 DDOS攻防体系建设v0.2(淘宝-林晓曦)     http://wenku.baidu.com/view/39549a11a8114431b90dd866.ht ...

  5. DDOS攻击(流量攻击)防御步骤

    DDOS全名是Distributed Denial of service (分布式拒绝服务攻击),很多DOS攻击源一起攻击某台服务器就组成了DDOS攻击,DDOS 最早可追溯到1996年最初,在中国2 ...

  6. 网站遭遇CC及DDOS攻击紧急处理方案

    检测访问是否是CC攻击的命令: 80口为网站的访问端口,可以根据实际情况进行修改 # netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: ' ...

  7. DDoS攻击流量检测方法

    检测分类 1)误用检测 误用检测主要是根据已知的攻击特征直接检测入侵行为.首先对异常信息源建模分析提取特征向量,根据特征设计针对性的特征检测算法,若新数据样本检测出相应的特征值,则发布预警或进行反应. ...

  8. https ddos攻击——由于有了认证和加解密 后果更严重 看绿盟的产品目前对于https的ddos cc攻击需要基于内容做检测

    如果web服务器支持HTTPS,那么进行HTTPS洪水攻击是更为有效的一种攻击方式,一方面,在进行HTTPS通信时,web服务器需要消耗更多的资源用来进行认证和加解密,另一方面,一部分的防护设备无法对 ...

  9. 工信部公示网络安全示范项目 网易云易盾“自适应DDoS攻击深度检测和防御系统”入选

    本文由  网易云发布. 工信部官网 2017年年底,经专家评审和遴选,中华人民共和国工业和信息化部(以下简称“工信部”)公示了2017年电信和互联网行业网络安全试点示范项目,网易云易盾的“自适应DDo ...

随机推荐

  1. kindeditor 不能编辑 问题

    /*显示上传窗体*/ function ShowUplodToDaily() { var _sdata = grid.getSelecteds(); if (_sdata) { /*创建编辑器*/ v ...

  2. python3.x学习笔记2(基础知识)

    1.元组元组其实跟列表差不多,也是存一组数,只是它一旦创建,便不能在修改,所以又叫只读列表语法:names =('shgd','sjdh') 它只有两个方法,一个是count,一个是index 2.字 ...

  3. Android 自定义viewpager 三张图片在同一屏幕轮播的效果

    github:https://github.com/nickeyCode/RoundImageViewPager 说实话不知道怎么描述这个效果,在网页上见得跟多,公司要求做这个效果得时候不知道怎么用文 ...

  4. PostgreSQL 批量生成数据

    create table user_info(userid int,name text,birthday date,crt_time timestamp without time zone,); in ...

  5. nil / Nil / NULL / NSNull VS objc_msgSend

    [NSNull null]是一个对象,其类为NSNULL(isa):里面没有任何变量.函数.和实现. nil的处理展示出消息机制的优越性,相对于函数调用的空指针处理. ENTRY objc_msgSe ...

  6. js文字的无缝滚动(上下)

    使用scrolltop值的递增配合setInterval与setTimeout实现相关效果,左右无缝滚动使用scrollLeft即可 Dom内容 <div id="container& ...

  7. 在Ubuntu上创建一个可以启动的U盘

    1.概观 使用可启动的Ubuntu USB盘,您可以: 安装或升级Ubuntu 在不触及PC配置的情况下测试Ubuntu桌面体验 在借来的机器或网吧上启动到Ubuntu 使用USB盘上默认安装的工具来 ...

  8. 2017国家集训队作业[agc016b]Color Hats

    2017国家集训队作业[agc016b]Color Hats 题意: 有\(N\)个人,每个人有一顶帽子.帽子有不同的颜色.现在,每个人都告诉你,他看到的所有其它人的帽子共有多少种颜色,问有没有符合所 ...

  9. CMSIS-RTOS功能概述

    以下列表简要概述了所有CMSIS-RTOS功能.标有$的函数是可选的.特定的CMSIS-RTOS实现可能无法提供所有功能,但osFeatureXXXX定义明确指出了这一点. 注意 RTX实现不支持的功 ...

  10. C# 从需要登录的网站上抓取数据

    [转] C# 从需要登录的网站上抓取数据 背景:昨天一个学金融的同学让我帮她从一个网站上抓取数据,然后导出到excel,粗略看了下有1000+条记录,人工统计的话确实不可能.虽说不会,但作为一个学计算 ...