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注入.跨站脚本攻击.参数篡改.应用平台漏洞攻击.拒绝服务攻击等越来越多,传统的防 ...
随机推荐
- 【Azure 应用服务】部署Jar到App Service for Linux,因启动命令路径配置错误而引起:( Application Error 问题
问题描述 App Service for Linux 资源创建完成后,通过FTP方式把 .jar包(logdemo.jar)包上传到 /site/wwwroot/ 文件夹后,在App Service的 ...
- Vue2.0源码学习(1) - 数据和模板的渲染(上)
准备 一.首先去GitHub上把vue源码download下来,传送门:https://github.com/vuejs/vue 二.搭建一个vue-cli跑起来,用于代码调试,不看着代码动起来只看源 ...
- HTML5/CSS3/JS笔记
HTML笔记: 前言: HTML无非就是围绕标签.属性.属性值这三个词展开的. (标签也可以叫做元素, 元素的内容是开始标签与结束标签之间的内容) *常规标签 <标签 属性1="属性值 ...
- Eclipse插件开发demo
一.安装 1. 下载安装JDk 2. 下载安装PDE(Plugin-in Development Environment) 访问eclipse官网,点击Download,选择Download Pack ...
- CVE-2017-0213漏洞复现
CVE-2017-0213漏洞形成的原因 类型混淆的漏洞通常可以通过内存损坏的方式来进行利用.然而漏洞发现者在利用时,并未采用内存损坏的方式来进行漏洞利用.按照漏洞发现者的说法,内存损坏的利用方式需要 ...
- [题解]Mail.Ru Cup 2018 Round 1 - C. Candies Distribution
[题目] C. Candies Distribution [描述] n个小朋友排排坐吃糖糖,小朋友从左到右编号1到n.每个小朋友手上有一定数量的糖.对于第i个小朋友来说,编号比他小的小朋友中有li个小 ...
- RENIX操作之XML报文模板说明——网络测试仪实操
我们在网络测试仪的日常使用过程中,经常涉及到编辑和修改报文.利用RENIX软件,可以把当前编辑好的报文模板导出为XML文件,下次使用时可以直接导入使用,从而提升测试工作效率.本文以"添加UD ...
- 每日一算法之two sum
题目如下:首先准备一个数组,[1,2,8,4,9] 然后输入一个6,找出数组两项之和为6的两个下标. 啥也不想,马上上代码,这个太简单了, static int[] twoSum(int[] num ...
- Linux查看进程的4种方法
转至:https://www.cnblogs.com/hml-blog-com/p/11558369.html 进程是在 CPU 及内存中运行的程序代码,而每个进程可以创建一个或多个进程(父子进程). ...
- video视频控件
<!-- 视频播放内容 --> <!-- autoplay准备就绪会自动播放 --> <!-- controls,要自定义得去掉这个 --> <video ...