Mod Security を使用して Nginx を保護している場合は、次の脅威から保護するために OWASP コア ルール セット (CRS) を有効にする必要があります。
- HTTPプロトコル違反からの保護
- 一般的な Web 攻撃
- ボット、クローラー、悪意のあるアクティビティからの保護
- トロイの木馬からの保護
- 情報漏洩防止
- クロスサイトスクリプティング攻撃
- SQLインジェクション攻撃
同意します か?
前回の投稿では、Nginx と Mod Security をインストールする方法を説明しました。約束どおり、セキュリティを強化するために OWASP CRS を使用してこれらを構成する方法を説明します。
ModSecurity はオープンソースの Web アプリケーション ファイアウォール (WAF) であり、デフォルトでは検出のみを行うように構成されています。つまり、Web サイトの保護を開始するには、必要な構成 ( 次のように ) を有効にする必要があります。

ModSecurity CRSをダウンロード
- 次のリンクから最新の CRS zip ファイルをダウンロードし、サーバーに転送します
https://github.com/SpiderLabs/owasp-modsecurity-crs/zipball/master
- ファイルを解凍します
unzip SpiderLabs-owasp-modsecurity-crs-2.2.9-26-gf16e0b1.zip
- 以下をnginx confフォルダにコピーします
modsecurity_crs_10_setup.conf.example
base_rules

Nginx を構成して OWASP ModSecurity CRS を統合する
OWASP CRS を使用することに決めたので、先ほどコピーした SpiderLabs OWASP CRS に含まれる conf ファイル (modsecurity_crs_10_setup.conf.example ) を nginx フォルダーにマージする必要があります。
Nginx は Apache のような複数の ModSecurityConfig ディレクティブをサポートしていないため、すべてのルール設定を 1 つのファイルにまとめる必要があります。
やりましょう…
- modsecurity.conf ファイルに、base_rules と modsecurity_crs_10_setup.conf.example を追加します。
cat modsecurity_crs_10_setup.conf.example base_rules/*.conf >>/usr/local/nginx/conf/modsecurity.conf
すべての *.data ファイルを nginx conf フォルダーにコピーする必要もあります
cp base_rules/*.data /usr/local/nginx/conf/
簡単な検証:
location の下の nginx.conf ファイルに ModSecurityEnabled および ModSecurityConfig ディレクティブが追加されていることを確認します。そうでない場合は、以下のように追加します。
location / {
ModSecurityEnabled on;
ModSecurityConfig modsecurity.conf;
}
- Nginxを再起動する
上記のすべての手段を実行することで、OWASP CRS を Nginx 上の Mod Security に正常に統合できました。重要な微調整を行う時期が来ました。

保護を開始するための OWASP コア ルール セットの構成
このセクションでは、すべての変更は modsecurity.conf ファイルに含まれるため、忘れずにバックアップを作成してください。
まず最初に
監査ログを有効にする
何がブロックされているかを知るために、ログを生成することが不可欠です。 SecAuditLog ディレクティブが存在しない場合は追加します。
SecAuditLog /usr/local/nginx/logs/modsec_audit.log
Nginx を再起動すると、ログ ファイルが生成されることがわかります。
-rw-r----- 1 root root 0 May 22 07:54 /usr/local/nginx/logs/modsec_audit.log
セキュリティルールエンジンを有効にする
以下のようにルールエンジンを有効にして、Mod Security 保護を開始します
SecRuleEngine On
デフォルトのアクションを拒否として有効にする
ルールに一致するリクエストに対するデフォルトのアクションを「ブロック」として設定します。
SecDefaultAction "phase:1,deny,log"
上記の 3 つの構成は 必須 であり、これで ModSecurity がアクションを実行して保護する準備が整いました。
ここにもう 1 つの構成があります。
サーバーヘッダーバナーの変更
デフォルトの Nginx 構成ではサーバー情報がそのバージョンとともに公開されるため、PCI-DSS 環境で作業している場合はマスクすることを強くお勧めします。
ここで説明されているように、Mod Security を 使用せずに これを行うこともできます。
デフォルトのヘッダー:
行を追加すると、これをすばやく実行できます。
SecServerSignature GeekFlare
そして今は次のようになります:
上記の手順が、OWASP コア ルール セットを Nginx Web サーバーと統合して保護を強化する際に役立つことを願っています。