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注入.跨站脚本攻击.参数篡改.应用平台漏洞攻击.拒绝服务攻击等越来越多,传统的防 ...
随机推荐
- 【论文总结】Zero-Shot Semantic Segmentation
论文地址:https://arxiv.org/abs/1906.00817 代码:https://github.com/valeoai/ZS3 一.内容 Step 0:首先使用数据集(完全不包含 Un ...
- 【流行前沿】联邦学习 Federated Learning with Only Positive Labels
核心问题:如果每个用户只有一类数据,如何进行联邦学习? Felix X. Yu, , Ankit Singh Rawat, Aditya Krishna Menon, and Sanjiv Kumar ...
- HashMap(1.7)源码学习
一. 1.7 和1.8区别 数据结构: 1.7: 数组 + 链表 1.8 : 数组 + 链表 + 红黑树 put: 1.7: 头插法 1.8: 尾插法 hash计算: 1.7 : Objects.ha ...
- JS 逻辑运算符的特点
致谢 首先说一下,其他数据类型转换为布尔类型的规则: null.undefined.0.NaN.空字符串转换为false,其他转化为 true. 1. 取反 ! 首先把数据转化为布尔值,然后取反,结果 ...
- ensp上防火墙的实现
使用ensp模拟器中的防火墙(USG6000V)配置NAT(网页版)一.NAT介绍NAT(Network Address Translation,网络地址转换):简单来说就是将内部私有地址转换成公网地 ...
- TensorFlow 关闭日志打印
ubuntu 中打开命令行,执行如下指令 vim ~/.bashrc 进入配置文件后在文件末尾加上: export TF_CPP_MIN_LOG_LEVEL=2 保存退出,再使用下面命令使刚才修改的配 ...
- [题解]RQNOJ PID85 三个袋子
链接:http://www.rqnoj.cn/problem/85 思路:一个排列问题,递推式很简单,f(n+1)=3*f(n)-1 ,由此可以推出通项公式,f(n)=0.5*3^(n-1)+0.5 ...
- Java课程设计---WindowBuilder插件安装
1 .获取插件地址 WindowBuilder 地址http://www.eclipse.org/windowbuilder/download.php 打开网址后会看到如下 2.在线方式安装插件 根据 ...
- iframe和伪造ajax
iframe和伪造ajax 1.iframe标签 <iframe>标签是一个内联框架,即用来在当前HTML页面中嵌入另一个文档的,且所有主流浏览器都支持iframe标签. 1.1基本用法 ...
- python hex转flaot
在使用树莓派 modbus-tk 读取寄存器值后,得到的4byte值存为了元组,想将该数据转化为float,习惯了c的用法,转到python时,数据转换这一块一头雾水,经过多次尝试最终实现.记录一下: ...