テクノロジー NGINX 非公開: Nginx で ModSecurity OWASP コア ルール セットを実装する方法

Nginx で ModSecurity OWASP コア ルール セットを実装する方法

Mod Security を使用して Nginx を保護している場合は、次の脅威から保護するために OWASP コア ルール セット (CRS) を有効にする必要があります。

  • HTTPプロトコル違反からの保護
  • 一般的な Web 攻撃
  • ボット、クローラー、悪意のあるアクティビティからの保護
  • トロイの木馬からの保護
  • 情報漏洩防止
  • クロスサイトスクリプティング攻撃
  • SQLインジェクション攻撃

同意します か?

前回の投稿では、Nginx と Mod Security をインストールする方法を説明しました。約束どおり、セキュリティを強化するために OWASP CRS を使用してこれらを構成する方法を説明します。

ModSecurity はオープンソースの Web アプリケーション ファイアウォール (WAF) であり、デフォルトでは検出のみを行うように構成されています。つまり、Web サイトの保護を開始するには、必要な構成 ( 次のように ) を有効にする必要があります。

Nginx で ModSecurity OWASP コア ルール セットを実装する方法
Nginx で ModSecurity OWASP コア ルール セットを実装する方法

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 で ModSecurity OWASP コア ルール セットを実装する方法
Nginx で ModSecurity OWASP コア ルール セットを実装する方法

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 に正常に統合できました。重要な微調整を行う時期が来ました。

Nginx で ModSecurity OWASP コア ルール セットを実装する方法
Nginx で ModSecurity OWASP コア ルール セットを実装する方法

保護を開始するための 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 を 使用せずに これを行うこともできます。

デフォルトのヘッダー:

nginx-デフォルトヘッダー
nginx-デフォルトヘッダー
nginx-デフォルトヘッダー

行を追加すると、これをすばやく実行できます。

 SecServerSignature GeekFlare 

そして今は次のようになります:

nginx-modsecurity-header
nginx-modsecurity-header
nginx-modsecurity-header

上記の手順が、OWASP コア ルール セットを Nginx Web サーバーと統合して保護を強化する際に役立つことを願っています。

「 Nginx で ModSecurity OWASP コア ルール セットを実装する方法」についてわかりやすく解説!絶対に観るべきベスト2動画

NGINX と ModSecurity WAF でアプリを保護する
OWASP ModSecurity コア ルール セットの概要 |クリスチャン・フォリーニ |ヌルコンウェビナー

Mod Security を使用して Nginx を保護している場合は、次の脅威から保護するために OWASP コア ルール セット (CRS) を有効にする必要があります。

  • HTTPプロトコル違反からの保護
  • 一般的な Web 攻撃
  • ボット、クローラー、悪意のあるアクティビティからの保護
  • トロイの木馬からの保護
  • 情報漏洩防止
  • クロスサイトスクリプティング攻撃
  • SQLインジェクション攻撃

同意します か?

前回の投稿では、Nginx と Mod Security をインストールする方法を説明しました。約束どおり、セキュリティを強化するために OWASP CRS を使用してこれらを構成する方法を説明します。

ModSecurity はオープンソースの Web アプリケーション ファイアウォール (WAF) であり、デフォルトでは検出のみを行うように構成されています。つまり、Web サイトの保護を開始するには、必要な構成 ( 次のように ) を有効にする必要があります。

Nginx で ModSecurity OWASP コア ルール セットを実装する方法
Nginx で ModSecurity OWASP コア ルール セットを実装する方法

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 で ModSecurity OWASP コア ルール セットを実装する方法
Nginx で ModSecurity OWASP コア ルール セットを実装する方法

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 に正常に統合できました。重要な微調整を行う時期が来ました。

Nginx で ModSecurity OWASP コア ルール セットを実装する方法
Nginx で ModSecurity OWASP コア ルール セットを実装する方法

保護を開始するための 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 を 使用せずに これを行うこともできます。

デフォルトのヘッダー:

nginx-デフォルトヘッダー
nginx-デフォルトヘッダー
nginx-デフォルトヘッダー

行を追加すると、これをすばやく実行できます。

 SecServerSignature GeekFlare 

そして今は次のようになります:

nginx-modsecurity-header
nginx-modsecurity-header
nginx-modsecurity-header

上記の手順が、OWASP コア ルール セットを Nginx Web サーバーと統合して保護を強化する際に役立つことを願っています。

「 Nginx で ModSecurity OWASP コア ルール セットを実装する方法」についてわかりやすく解説!絶対に観るべきベスト2動画

NGINX と ModSecurity WAF でアプリを保護する
OWASP ModSecurity コア ルール セットの概要 |クリスチャン・フォリーニ |ヌルコンウェビナー