Nginx+Modsecurity实现WAF

一.软件介绍

ModSecurity是一个免费、开源的Web(apache、nginx、IIS)模块,可以充当Web应用防火墙(WAF)。ModSecurity是一个入侵探测与阻止的引擎.它主要是用于Web应用程序所以也可以叫做Web应用程序防火墙.ModSecurity的目的是为增强Web应用程序的安全性和保护Web应用程序避免遭受来自已知与未知的攻击

OWASP是一个安全社区,开发和维护着一套免费的应用程序保护规则,这就是所谓OWASP的ModSecurity的核心规则集(即CRS)。ModSecurity之所以强大就在于OWASP提供的规则,可以根据自己的需求选择不同的规则,当然ModSecurity还有商用的规则

目前ModSecurity正在测试环境测试使用,以下操作是在nginx下添加modsecurity模块来实现WAF的安装配置步骤,

二.准备工作

系统版本:Centos6

Nginx/1.10.0 最新稳定版本::http://nginx.org/download/nginx-1.10.0.tar.gz

ModSecurity/2.9.1最新稳定版本:https://www.modsecurity.org/tarball/2.9.1/modsecurity-2.9.1.tar.gz

OWASP规则集: https://github.com/SpiderLabs/owasp-modsecurity-crs

三.安装配置

3.1安装依赖包

# yum installgcc make libxml2 libxml2-devel httpd-devel pcre-devel curl-devel libtool –y

3.2编译modsecurity

# tar xfmodsecurity-2.9.1.tar.gz
# cd modsecurity-2.9.1
# ./autogen.sh
# ./configure--enable-standalone-module --disable-mlogc
# make

3.3 编译nginx并添加modsecurity模块

# tar xf nginx-1.10.0.tar.gz
# cd nginx-1.10.0
# ./configure --add-module=/root/modsecurity-2.9.1/nginx/modsecurity/  --prefix=/home/data/nginx
# make
# make install

3.4配置规则

3.4.1下载OWASP规则

# git clone https://github.com/SpiderLabs/owasp-modsecurity-crs
# cp -aowasp-modsecurity-crs /home/data/nginx/conf/
# cd/home/data/nginx/conf/owasp-modsecurity-crs/
# mv modsecurity_crs_10_setup.conf.examplemodsecurity_crs_10_setup.conf

3.3.2 启动owasp规则

复制modsecurity源码目录下的modsecurity.conf-recommended和unicode.mapping到nginx的conf目录下

#cpmodsecurity.conf-recommended unicode.mapping  /home/data/nginx/conf/
#cd/home/data/nginx/conf  &&  mv modsecurity.conf-recommended  modsecurity.conf

编辑modsecurity.conf 文件,将SecRuleEngine设置为 on,并添加规则

# vimmodsecurity.conf
SecRuleEngine On
# personal  rules
Includeowasp-modsecurity-crs/modsecurity_crs_10_setup.conf
Includeowasp-modsecurity-crs/base_rules/modsecurity_crs_41_xss_attacks.conf
Includeowasp-modsecurity-crs/base_rules/modsecurity_crs_40_generic_attacks.conf

:规则根据自己的需求添加,base_rules中的sql攻击过滤规则在测试中有问题暂时没有启用

3.5 配置nginx

在nginx配置文件中 需要启用的server配置下添加以下两行,然后重启nginx服务

ModSecurityEnabledon;  
ModSecurityConfigmodsecurity.conf;

四.测试

4.1 Modsecurity模块启用前

4.2 Modsecurity模块启用后访问出现403错误

:xss跨站攻击漏洞测试(此漏洞是阿里云发现)

五.规则集说明

5.1基础规则集

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协同防御相关规则

5.2 SLR规则集

来自确定APP的PoC,不会误报,检测方法是先检查当前请求的文件路径是否出现在data文件中,若出现再进行下一步测试,否则跳过该规则集的检测

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相关规则

5.3可选规则集

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情况

5.4实验性规则集

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检测设置文件

时间: 2024-10-11 03:28:44

Nginx+Modsecurity实现WAF的相关文章

nginx配合modsecurity实现WAF功能

一.准备工作 系统:centos 7.2 64位.nginx1.10.2, modsecurity2.9.1 owasp3.0 1.nginx:http://nginx.org/download/nginx-1.10.2.tar.gz 2.modsecurity for Nginx: https://www.modsecurity.org/tarball/2.9.1/modsecurity-2.9.1.tar.gz 3.OWASP规则集:https://github.com/SpiderLabs

nginx+ngx_lua支持WAF防护功能

安装nginx+ngx_lua支持WAF防护功能 nginx lua模块淘宝开发的nginx第三方模块,它能将lua语言嵌入到nginx配置中,从而使用lua就极大增强了nginx的能力.nginx以高并发而知名,lua脚本轻便,两者的搭配堪称完美. 用途:防止sql注入,本地包含,部分溢出,fuzzing测试,xss,SSRF等web攻击 防止svn/备份之类文件泄漏 防止ApacheBench之类压力测试工具的攻击 屏蔽常见的扫描黑客工具,扫描器 屏蔽异常的网络请求 屏蔽图片附件类目录php

使用Nginx+Lua实现waf

使用Nginx+Lua实现waf 软件包需求: 1 .Nginx兼容性[最后测试到1.13.6] wget http://nginx.org/download/nginx-1.13.6.tar.gz 2 .PCRE为Nginx编译安装关系的依赖 wget https://jaist.dl.sourceforge.net/project/pcre/pcre/8.42/pcre-8.42.tar.gz 3 .下载luajit解释器和ngx_devel_kit以及lua-nginx-module模块

使用NGINX+Openresty实现WAF功能

一.了解WAF1.1 什么是WAF Web应用防护系统(也称:网站应用级入侵防御系统 .英文:Web Application Firewall,简称: WAF).利用国际上公认的一种说法:Web应用 防火墙 是通过执行一系列针对HTTP/HTTPS的 安全策略 来专门为Web应用提供保护的一款产品. 1.2 WAF的功能 支持IP白名单和黑名单功能,直接将黑名单的IP访问拒绝.支持URL白名单,将不需要过滤的URL进行定义.支持User-Agent的过滤,匹配自定义规则中的条目,然后进行处理(返

nginx中使用waf防火墙

1.安装依赖 yum install -y readline-devel ncurses-devel 2.安装Lua # tar xf lua-5.1.5.tar.gz # cd lua-5.1.5 # make linux # make install 3.安装LuaJIT # wget http://luajit.org/download/LuaJIT-2.0.4.tar.gz # tar xf LuaJIT-2.0.4.tar.gz # cd LuaJIT-2.0.4 # make &&am

安装nginx+ngx_lua支持WAF防护功能

nginx lua模块淘宝开发的nginx第三方模块,它能将lua语言嵌入到nginx配置中,从而使用lua就极大增强了nginx的能力.nginx以高并发而知名,lua脚本轻便,两者的搭配堪称完美. 用途:防止sql注入,本地包含,部分溢出,fuzzing测试,xss,SSRF等web攻击 防止svn/备份之类文件泄漏 防止ApacheBench之类压力测试工具的攻击 屏蔽常见的扫描黑客工具,扫描器 屏蔽异常的网络请求 屏蔽图片附件类目录php执行权限 防止webshell上传 系统:cent

Nginx 配置支持 WAF

WAF(Web Application Firewall),中文名叫做"Web应用防火墙" WAF的定义是这样的:Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品,通过从上面对WAF的定义中, 我们可以很清晰地了解到:WAF是一种工作在应用层的.通过特定的安全策略来专门为Web应用提供安全防护的产品. ngx_lua_waf是一个基于ngx_lua的web应用防火墙. # ngx_lua_waf用途: 防止sql注入,本地包含,部分

ModSecurity web application firewall (WAF) Research

catalog 0. 引言 1. OWASP ModSecurity Core Rule Set (CRS) Project 2. Installation mod_security for Apache 3. Installation mod_security for nginx 4. Installation mod_security for IIS 5. mod_security Configuration Directives 6. Processing Phases 7. Variab

nginx添加WAF模块

WAF全称叫Web Application Firewall,web应用防火墙 最近公司网页发现有人天天在刷单,ELk真心不错,能多维度的发现这些问题.所以现在考虑给nginx增加个WAF模块,找了个老外的ModSecurity,下面讲下如何安装 1.安装依赖rpm包 yum -y install gcc gcc-c++ ncurses-devel libxml2-devel openssl-devel curl-devel libjpeg-devel libpng-devel autoconf