ModSecurity的规则
一、ModSecurity的规则
基本格式
SecRule VARIABLES OPERATOR ACTIONS
SecRule:ModSecurity主要的指令,用于创建安全规则。
VARIABLES :代表HTTP包中的标识项,规定了安全规则针对的对象。常见的变量包括:ARGS(所有请求参数)、FILES(所有文件名称)等。
OPERATOR:代表操作符,一般用来定义安全规则的匹配条件。常见的操作符包括:@rx(正则表达式)、@streq(字符串相同)、@ipmatch(IP相同)等。
ACTIONS:代表响应动作,一般用来定义数据包被规则命中后的响应动作。常见的动作包括:deny(数据包被拒绝)、pass(允许数据包通过)、id(定义规则的编号)、severity(定义事件严重程度)等。
二、ModeSecurity规则例解
规则1:防XSS攻击
SecRule ARGS|REQUEST_HEADERS "@rx <script>" "id:001,msg: 'XSS
Attack',severity:ERROR,deny,status:404"
VARIABLES ARGS:所有请求参数;
REQUEST_HEADERS:请求数据头部。
OPERATOR @rx <script>:如果正则匹配字符串"<script>"成功,则规则执行。
ACTIONS id:001规定该条规则编号为001;
msg: 'XSS Attack’代表记录信息为:XSS Attack;
severity:ERROR表示严重程度为ERROR;
deny表示拒绝所有请求包;
status:404表示服务器响应状态编号为404。
说明:严重程度分为8级: EMERGENCY (0)、ALERT (1)、CRITICAL (2)、ERROR (3)、WARNING (4)、
NOTICE (5)、INFO (6) 、DEBUG (7)
规则2:设置白名单
SecRule REMOTE_ADDR "@ipmatch 192.168.1.9" "id:002,phase:1,t:none,
nolog,pass,ctl:ruleEngine=off"
VARIABLES REMOTE_ADDR:远程主机IP
OPERATOR @ipmatch 192.168.1.9:如果请求主机IP地址为192.168.1.9,则规则执行。
ACTIONS id:002规定该条规则编号为002;
phase:1表示规则执行的范围为请求头部;
t:none表示VARIABLES的值不需要转换(t代表transform);
nolog代表不记录日志;pass代表继续下一条规则;
ctl:ruleEngine=off代表关闭拦截模式,所有规则失效。
说明:phase编号规定如下:Request Headers (1), Request Body (2), Response Headers (3),
Response Body (4) and Logging (5).
规则3:
SecRule ARGS:username "@streq admin" chain,deny,id:003
SecRule REMOTE_ADDR "!streq 192.168.1.9"
VARIABLES ARGS:username所有表示请求参数中的用户名信息。
OPERATOR @streq admin表示用户名等于字符串"admin",则执行ACTIONS。
ACTIONS id:003规定该条规则编号为003;
chain表示用户名等于admin的情况下,必须完成第二行规则的匹配(远程主机IP不是192.168.1.9),才能执行下一个动作;
deny表示所有请求包被拒绝。
自定义规则
SecRule FILES "!\\.(?i:jpe?g|gif|png|bmp)$" "deny,tag:'WEB_ATTACK/FILEUPLOAD',msg:'upload
no-picture file',id:0000001,phase:2“
SecRule FILES "@contains %00" "deny,tag:'WEB_ATTACK/FILEUPLOAD',msg:'filename
has null character',id:0000002,phase:2"
三、ModSecurity开源规则集
OWASP规则集共包括四类:
第一部分:基础规则集
第二部分:SLR规则集
第三部分:可选规则集
第四部分:实验性规则集
第一部分:基础规则集
modsecurity_crs_20_protocol_violations.confHTTP协议规范相关规则
modsecurity_crs_21_protocol_anomalies.confHTTP协议规范相关规则
modsecurity_crs_23_request_limits.confHTTP协议大小长度限制相关规则
modsecurity_crs_30_http_policy.confHTTP协议白名单相关规则
modsecurity_crs_35_bad_robots.conf恶意扫描器与爬虫规则
modsecurity_crs_40_generic_attacks.conf常见的攻击例如命令执行,代码执行,注入,文件包含、
敏感信息泄露、会话固定、HTTP响应拆分等相关规则
modsecurity_crs_41_sql_injection_attacks.confSQL注入相关规则(竟然有一条MongoDB注入的规则,很全)
modsecurity_crs_41_xss_attacks.confXSS相关规则
modsecurity_crs_42_tight_security.conf目录遍历相关规则
modsecurity_crs_45_trojans.confwebshell相关规则
modsecurity_crs_47_common_exceptions.confApache异常相关规则
modsecurity_crs_49_inbound_blocking.conf协同防御相关规则
modsecurity_crs_50_outbound.conf检测response_body中的错误信息,警告信息,列目录信息
modsecurity_crs_59_outbound_blocking.conf协同防御相关规则
modsecurity_crs_60_correlation.conf协同防御相关规则
第二部分:SLR规则集
modsecurity_crs_46_slr_et_joomla_attacks.confJOOMLA应用的各种漏洞规则
modsecurity_crs_46_slr_et_lfi_attacks.conf各种APP的本地文件包含相关规则
modsecurity_crs_46_slr_et_phpbb_attacks.confPHPBB应用的各种漏洞规则
modsecurity_crs_46_slr_et_rfi_attacks.conf各种APP的远程文件包含相关规则
modsecurity_crs_46_slr_et_sqli_attacks.conf各种APP的SQL注入相关规则
modsecurity_crs_46_slr_et_wordpress_attacks.confWORDPRESS应用的各种漏洞规则
modsecurity_crs_46_slr_et_xss_attacks.conf各种APP的XSS相关规则
第三部分:可选规则集
modsecurity_crs_10_ignore_static.conf静态文件不过WAF检测的相关规则
modsecurity_crs_11_avs_traffic.confAVS(授权的漏洞扫描器)的IP白名单规则
modsecurity_crs_13_xml_enabler.conf请求体启用XML解析处理
modsecurity_crs_16_authentication_tracking.conf记录登陆成功与失败的请求
modsecurity_crs_16_session_hijacking.conf会话劫持检测
modsecurity_crs_16_username_tracking.conf密码复杂度检测
modsecurity_crs_25_cc_known.confCreditCard验证
modsecurity_crs_42_comment_spam.conf垃圾评论检测
modsecurity_crs_43_csrf_protection.conf与modsecurity_crs_16_session_hijacking.conf联合检测,
使用内容注入动作append注入CSRF Token
modsecurity_crs_46_av_scanning.conf使用外部脚本扫描病毒
modsecurity_crs_47_skip_outbound_checks.confmodsecurity_crs_10_ignore_static.conf的补充
modsecurity_crs_49_header_tagging.conf将WAF规则命中情况配合Apache RequestHeader指令注入到请求头中,
以供后续应用进一步处理
modsecurity_crs_55_marketing.conf记录MSN/Google/Yahoorobot情况
第四部分:实验性规则集
modsecurity_crs_11_brute_force.conf防御暴力破解相关规则
modsecurity_crs_11_dos_protection.conf防DoS攻击相关规则
modsecurity_crs_11_proxy_abuse.conf检测X-Forwarded-For是否是恶意代理IP,IP黑名单
modsecurity_crs_11_slow_dos_protection.confSlow HTTP DoS攻击规则
modsecurity_crs_25_cc_track_pan.conf检测响应体credit card信息
modsecurity_crs_40_http_parameter_pollution.conf检测参数污染
modsecurity_crs_42_csp_enforcement.confCSP安全策略设置
modsecurity_crs_48_bayes_analysis.conf使用外部脚本采取贝叶斯分析方法分析HTTP请求,区分正常与恶意请求
modsecurity_crs_55_response_profiling.conf使用外部脚本将响应体中的恶意内容替换为空
modsecurity_crs_56_pvi_checks.conf使用外部脚本检测REQUEST_FILENAME是否在osvdb漏洞库中
modsecurity_crs_61_ip_forensics.conf使用外部脚本收集IP的域名、GEO等信息
modsecurity_crs_40_appsensor_detection_point_2.0_setup.confAPPSENSOR检测设置文
OWASP ModSecurity CRS 3.0 核心规则集详解
ModSecurity的规则的更多相关文章
- ModSecurity CRS笔记[转]
转自:http://danqingdani.blog.163.com/blog/static/186094195201472304841643/ ModSecurity的规则因为奇怪的正则(可读性差? ...
- modsecurity配置指令学习
事务(transactions) Console(控制台) 1 Introduction Modsecurity是保护网络应用安全的工作.不,从零开始.我常称modsecurity为WAF(网络应用防 ...
- 利用ModSecurity防御暴力破解
利用ModSecurity防御暴力破解 from:http://www.freebuf.com/articles/web/8749.html 2013-04-18 共553248人围观 ,发现 12 ...
- ModSecurity防御暴力破解
http://www.modsecurity.org/ ModSecurity防御暴力破解 在阅读本文前,先简单了解下什么是ModSecurity,ModSecurity是一个入侵探测与阻止的引擎.它 ...
- OpenResty + ModSecurity + OWASP CRS
本篇将介绍如何使用OpenResty和ModSecurity 来构建自己的WAF,安装过程整体与Nginx是类似的,但也有些区别,在文中会特别指出,本篇算是用openresty对前面两篇nginx和c ...
- 走进科学 WAF(Web Appllication Firewall)
1. 前言 当WEB应用越来越为丰富的同时,WEB 服务器以其强大的计算能力.处理性能及蕴含的较高价值逐渐成为主要攻击目标.SQL注入.网页篡改.网页挂马等安全事件,频繁发生. 企业等用户一般采用防火 ...
- 走进科学之WAF(Web Appllication Firewall)篇
小编P.S:文章非常详尽对WAF领域进行了一次科普,能有让人快速了解当前WAF领域的相关背景及现状,推荐所有WAF领域的同学阅读本文. 1. 前言 当WEB应用越来越为丰富的同时,WEB 服务器以其强 ...
- Burpsuit分块传输插件绕WAF原理和技巧(转)
0x00 原理 给服务器发送payload数据包,使得waf无法识别出payload,当apache,tomcat等web容器能正常解析其内容.如图一所示 0x02 实验环境 本机win10+x ...
- 2019年十大开源WEB应用防火墙点评
2019年十大开源WEB应用防火墙点评 随着WEB应用的爆炸式成长和HTTPS加密的普及,针对网络应用层的攻击,像SQL注入.跨站脚本攻击.参数篡改.应用平台漏洞攻击.拒绝服务攻击等越来越多,传统的防 ...
随机推荐
- [USACO4.2]工序安排Job Processing
两种想法: (样例是真的良心,卡掉了两种错误做法)洗完一件马上塞一件到最快的空闲烘干机去?X,因为最后一件洗完的衣服决定了第二问的答案,但它并不一定得到最优待遇--最快的烘干机. 给最后一件洗完的 ...
- 基于FMC接口的Kintex-7 XC7K325T PCIeX4 3U VPX接口卡
一.板卡概述 标准VPX 3U板卡, 基于Xilinx公司的FPGAXC7K325T-2FFG900 芯片,pin_to_pin兼容FPGAXC7K410T-2FFG900 ,支持PCIeX8.64b ...
- Spring高级特性之三:@Enable*注解的工作原理
Spring Boot中阐述热插拔技术的时候,简单地提及@Enable*注解.随着多种框架的应用及深入了解,@Enable*这个注解在各种框架中应用相当普及. 那么@Enable*注解工作原理是怎么样 ...
- (Unity)XML文件读写与IO文件操作类使用介绍
using System.Xml; //xml文件操作命名空间 #region 写入操作 void WriteXMLFile(string _fileName) { Xm ...
- [LeetCode]1342. 将数字变成 0 的操作次数
给你一个非负整数 num ,请你返回将它变成 0 所需要的步数. 如果当前数字是偶数,你需要把它除以 2 :否则,减去 1 . 示例 1: 输入:num = 14 输出:6 解释: 步骤 1) 14 ...
- 金融行业BI可视化报表,直观体验数据的价值
现在,数据已成为非常重要的资产.之前,人们只是把它当作一种附属品,由客户来办理业务,在系统中产生了这样的附属品.但如今,发现在客户办理业务这一信息中,蕴藏着一些客户的需求,积聚成千条这种信息,可以洞察 ...
- Smartbi集成性怎么样,是否方便与已有的Web应用集成?
Smartbi产品具有强大的集成能力,它采用纯JAVA开发,支持J2EE系统的嵌入式部署,它对外提 供所有功能的API访问接口,可以实现灵活的控制,能够方便无缝与已有的Web应用进行集成. 支持丰富 ...
- Java的诞生历史
Java帝国的诞生 1.1972年C诞生 贴近硬件,运行极快,效率极高 操作系统,编译器,数据库,网络系统等都采用C语言 但是,它的指针和内存管理给程序员安上了"枷锁".它的指针没 ...
- 案例八:shell自动化管理账本脚本
该脚本目的帮助管理员创建账号.删除账号.锁定账号.解锁账号. #!/bin/bash #filename: #author: #date:2018-6-6 echo "用户管理程序" ...
- 使用 Postman 的 Environments 和 Tests 简化在不同环境中的切换步骤
调试 API 的时候,我们需要经常需要在本地.开发.生产来回切换,还需要面临 Token 失效等的问题,让人头大,看到一些教程有介绍用 Postman 来简化流程,但是实践起来还是遇到一些问题,所以就 ...