Web 应用程序防火墙偏执级别测试工具。
— 来自 alt3kx.github.io
本质上,偏执级别(PL)允许你定义核心规则集的激进程度。
参考:https://coreruleset.org/20211028/working-with-paranoia-levels/
wafparan01d3.py python3 脚本通过使用基于 GET 参数编码的有效载荷,将恶意请求放置在 HTTP 请求的不同部分,评估结果记录在你机器上生成的报告调试文件 wafparan01d3.log 中。mysql_gosecure.txt,基于 gosecure 的研究 "A Scientific Notation Bug in MySQL left AWS WAF Clients Vulnerable to SQL Injection",可从此处获取:https://www.gosecure.net/blog/2021/10/19/a-scientific-notation-bug-in-mysql-left-aws-waf-clients-vulnerable-to-sql-injection/ ,该研究使用 modsecurity 评估我们的 WAF 在不同的偏执级别下的表现,既包括默认配置,也包括以交错、快速的方式禁用不同规则/ID 的情况。
Pentesters:灰盒范围,通过具有特权(可启动/重载并编辑 DEV/STG/TEST 环境中的 WAF Apache 配置文件)的 "shell" 对 WAF Linux 主机进行有限访问,发送不同的载荷。Secutity Officers:为组织中的每个解决方案做出最佳决策,以应用合适的 WAF 偏执级别。Blueteamers:规则执行、最佳告警,减少组织中的误报结果。Integrators:执行更深入的故障排除,并通过快速定制规则或创建虚拟补丁来定义适当的 WAF 偏执级别。参考:https://www.inmotionhosting.com/support/server/apache/install-modsecurity-apache-module/
$ sudo apt update -y && sudo apt dist-upgrade -y
$ sudo apt-get install build-essential -y
$ sudo apt-get install apache2 -y
$ sudo apt install libapache2-mod-security2 -y
$ sudo apt-get install curl vim gridsite-clients net-tools -y
$ sudo systemctl restart apache2
$ sudo apt-cache show libapache2-mod-security2

$ sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
接下来,更改 ModSecurity 检测模式。首先,进入 cd /etc/modsecurity 文件夹
2. 使用 vi、vim、emacs 或 nano 编辑 ModSecurity 配置文件。
$ sudo vim /etc/modsecurity/modsecurity.conf
SecRuleEngine DetectionOnly。将 DetectionOnly 改为 On。 原始值: SecRuleEngine DetectionOnly
新值: SecRuleEngine On

$ sudo systemctl restart apache2
$ cd ~
$ wget https://github.com/coreruleset/coreruleset/archive/refs/tags/v3.3.2.zip
$ sha1sum v3.3.2.zip && echo ProvidedChecksum
88f336ba32a89922cade11a4b8e986f2e46a97cf v3.3.2.zip
ProvidedChecksum

$ unzip v3.3.2.zip
$ sudo mv coreruleset-3.3.2/crs-setup.conf.example /etc/modsecurity/crs/crs-setup.conf
-(可选,但推荐)将新目录中的 rules 目录移动到你的 ModSecurity 目录:
$ sudo mv coreruleset-3.3.2/rules/ /etc/modsecurity/crs/
$ sudo vim /etc/apache2/mods-enabled/security2.conf
<IfModule security2_module>
# Default Debian dir for modsecurity's persistent data
SecDataDir /var/cache/modsecurity
# Include all the *.conf files in /etc/modsecurity.
# Keeping your local configuration in that directory
# will allow for an easy upgrade of THIS file and
# make your life easier
IncludeOptional /etc/modsecurity/crs-setup.conf
IncludeOptional /etc/modsecurity/rules/*.conf
# Include OWASP ModSecurity CRS rules if installed
#IncludeOptional /usr/share/modsecurity-crs/*.load
</IfModule>

$ sudo vim /etc/apache2/apache2.conf
复制并粘贴以下代码,然后保存。
# Include list of ports to listen on
Include ports.conf
Include /etc/modsecurity/modsecurity.conf
Include /etc/modsecurity/crs/crs-setup.conf
Include /etc/modsecurity/crs/rules/*.conf

$ cd /etc/apache2
$ sudo cp mods-available/proxy_http.load mods-enabled
$ sudo cp mods-available/proxy.load mods-enabled/
$ sudo cp mods-available/rewrite.load mods-enabled/
$ sudo systemctl restart apache2
/etc/apache2/ports.conf $ sudo vim /etc/apache2/ports.conf
复制并粘贴以下代码,然后保存。
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf
Listen 8080
Listen 18080
<IfModule ssl_module>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>

/etc/apache2/sites-enabled,创建文件 001-test.conf $ cd /etc/apache2/sites-enabled/
$ sudo touch 001-test.conf
$ sudo vim 001-test.conf
复制并粘贴以下代码,然后保存。
<VirtualHost *:8080>
ServerName test.domain:8080
SecRuleEngine On
ErrorLog ${APACHE_LOG_DIR}/test_error.log
CustomLog ${APACHE_LOG_DIR}/test_access.log combined
SecAuditLog ${APACHE_LOG_DIR}/test_audit.log
ProxyPass / http://127.0.0.1:18080/
ProxyPassReverse / http://127.0.0.1:18080/
</VirtualHost>
/etc/apache2/sites-enabled,创建文件 002-moc.conf $ cd /etc/apache2/sites-enabled/
$ sudo touch 002-moc.conf
$ sudo vim 002-moc.conf
复制并粘贴以下代码,然后保存。
<VirtualHost 127.0.0.1:18080>
ErrorLog ${APACHE_LOG_DIR}/moc_error.log
CustomLog ${APACHE_LOG_DIR}/moc_access.log combined