
Web アプリケーションファイアウォールのパラノイアレベルテストツールです。
— alt3kx.github.io より
つまり、パラノイアレベル(PL)は、Core Rule Set がどの程度攻撃的であるかを定義できるようにするためのものです。
参照: 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: GreyBox スコープで、DEV/STG/TEST 環境で WAF Apache 設定ファイルを起動/再ロードおよび編集する特権を持つ「シェル」を使用して、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
$ 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>

/rules ディレクトリを移動した場所にする必要があります。 $ 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