
NGINX App Protect WAF とは?~軽量高性能なソフトウェアWAF~
<目次>
目次[非表示]
- 1.はじめに
- 2.NGINX App Protect WAFの特徴
- 3.v4とv5の違い
- 4.インストールおよび設定方法
- 5.おわりに
はじめに
NGINX(エンジンエックス)でWAFを利用できることはご存じでしょうか?
NGINXは世界で最も利用されているWebサーバのため、「利用している」もしくは「聞いたことはある」という方もいるのではないでしょうか。
NGINXについては、以前のブログ「NGINXとは? ~多様な用途に活用できるソフトウェアWebサーバ~」でも紹介していますので、ぜひご覧ください。
そんなNGINXですが、WAFとしても利用できるのです。それが、「NGINX App Protect WAF」です!
NGINX App Protectには、NGINX App Protect WAFとNGINX App Protect DoSの2種類があります。NGINX App Protect WAFは、一般的な攻撃から高度な攻撃まで、様々な脅威からアプリケーションとAPIを保護するWAF防御機能を提供します。Bot対策を行う事も可能です。NGINX App Protect DoSは、高度なレイヤー7DoS攻撃からアプリケーションを保護するDoS対策機能を提供します。
今回はNGINX App Protect WAFについてご紹介したいと思います。
NGINX App Protect WAFの特徴
ここからはNGINX App Protect WAFの特徴をご紹介します。
-
WAF防御
NGINX App Protect WAFには、全世界で幅広く利用されているBIG-IP AWAFのWAFエンジンとSignatureが搭載されています。多くの実績がある、信頼性の高い、高度なWAFの利用が可能です。
-
HTTP Compliance
HTTPプロトコルがRFCに準拠しているかをチェックし、異常なHTTPリクエストを検知します。例えば、GETまたはHEADリクエストにBodyがある場合などを検出します。
-
Evasion Techniques
攻撃者がWAF検知を回避するために使用する技術を検知します。例えば、URIやパラメータをデコードしてWAF検知を回避する技術が使用されている場合などを検知します。
-
Data Guard
HTTPレスポンス内のクレジットカード番号などの機密データを検出し、マスキング処理やブロックが可能です。また、任意のパターンを設定することも可能です。
-
JWT Protection
認証で使用されるJSON Web Tokens (JWT)の検証と保護を行います。トークンの署名や有効期限をチェックし、不正なトークンをブロックします。また、トークンからユーザ識別情報を抽出し、ログ記録とセッション認識に使用します。
-
Geolocation
リクエストの発信元IPアドレスからの地理的位置を特定し国コードに変換することで、特定の地域からのアクセスを許可または拒否することができます。RFC-1918 アドレスや未割り当てのグローバルアドレスなどの国コードは「N/A」となり、発信国が不明な N/A リクエストを拒否するオプションもあります。
-
Staging
Signatureの更新を実施した際に、新しく追加されたSignatureと既存から変更があったSignatureをStaging状態で運用することが可能です。
Staging状態のSignatureで検知した場合、ログ出力のみ行い、ブロックは行いません。ログにはStaging状態のSignatureで検知したことも出力されます。
Staging状態で追加・変更されたSignatureをテストし、誤検知があればチューニングを実施した後に、Staging状態を解除することで、追加・変更されたSignatureによる誤遮断の発生を防ぐことができます。
-
Threat Campaigns Signature
ハニーポットなどを用いて収集した情報に対してF5セキュリティチームによる脅威分析を行うことで、最新の攻撃パターンに即したSignatureを利用することができます。実際に発生している攻撃を解析して作成されたSignatureのため、誤検知がほとんど発生しない点が特徴です。
-
API保護
Open API Specification (OAS、別名swagger)ファイルを参照することで、REST APIのトラフィックがOASファイルの定義に準拠しているかを検証します。
また、GraphQL APIの保護も可能です。GraphQL APIは、REST APIに代わるより効率的で柔軟な方法として近年注目されています。
-
Bot対策
一般的な攻撃に関するSignatureとは別にBotに関するSignature(Bot Signature)が用意されています。Bot Signatureでは、User-AgentヘッダとURIの情報をもとにBotを検知します。
さらに、トラフィックを偽装してBot検知を回避するトラフィックもAnti Automation機能により検知可能です。Bot Signatureで信頼されるBotと検知されるように偽装するトラフィックを独自の検査方法を用いて検知します。また、HTTPヘッダを検査・スコア付けをすることで、アクセス元がブラウザであると偽装するトラフィックも検知します。
-
セキュリティログの可視化
NGINX App Protect WAFのセキュリティログは、ELKスタック(Elasticsearch, Logstash, Kibana)やNGINX Instance Managerを使用して可視化できます。ELKスタックでは、Nginx App Protect WAFのログをLogstashで収集し、Elasticsearchに格納し、Kibanaで可視化します。
-
柔軟な導入環境
今日、システムを構築する環境はオンプレミス、クラウド、コンテナなど多岐に渡りますが、NGINX App Protect WAFは上記すべての環境に構築することができます。
-
柔軟な設定とチューニング
WAF設定はjson形式のWAF Policyとして指定します。検知内容ごとに許可/ブロック/検知ログのみ出力の設定ができるため、ご利用のアプリケーションに合わせた柔軟な設定および誤検知のチューニングが可能です。
また、提供サービス全体に1つのWAF Policyを適用したり、URLのPathごとに異なるWAF Policyを適用するなど、アプリケーションに合わせたセキュリティ対策も可能です。
v4とv5の違い
2024年3月にNGINX App Protect WAF v5がリリースされました。
NGINX App Protect WAF v5において、大きくアーキテクチャの変更があり、インストール方法や設定方法にv4以前と違いがあります。
ここからNGINX App ProtectをLinux OSにインストールして導入する際のv4以前とv5との違いをご紹介します。
-
導入方法
大きな違いとしては、v4以前はNGINX Plusと一緒にApp Protect WAFをLinuxにインストールしていました。図3-1は、NGINX App Protect WAF v4以前のインストールおよびWAF Policyの設定イメージです。
v5では、NGINX PlusはLinuxにインストールし、NGINX App Protect WAFはコンテナとしてデプロイします。
WAFの設定方法としては、v4までと同様にJSON形式で作成したWAF PolicyやLogging Profileを用意し、WAF Compilerを使って指定の形式に変換する必要があります。
WAF Policyの変換時に最新のSignatureが適用されます。もちろんSignatureのバージョンを指定することも可能です。
事前に変換されたファイルを用いることで、WAFのデプロイ速度が飛躍的に向上します。
WAFコンテナやWAF CompilerをデプロイするためのDocker fileのサンプルもメーカサイト(NGINX App Protect WAF Compiler)に公開されています。図3-2は、NGINX App Protect WAF v5のデプロイおよびWAF Policyの設定イメージです。
図3-1:NGINX App Protect WAF v4以前のインストールおよびWAF Policyの設定イメージ
図3-2:NGINX App Protect WAF v5のデプロイおよびWAF Policyの設定イメージ
-
サポートOSバージョン
NGINX App Protect WAF v4以前でサポートされているOSバージョンは表3-1の通りです。
各バージョンのサポートOSバージョンはReleaseページをご参照ください。NGINX App Protect WAF v5でサポートされているOSバージョンは表3-2の通りです。
各バージョンのサポートOSバージョンはReleaseページをご参照ください。
Distribution |
Version |
Alpine |
3.16*1, 3.17 |
Debian |
10*2, 11, 12 |
Ubuntu |
18.04*3, 20.04, 22.04, 24.04 |
Amazon Linux |
2*4, 2023 |
RHEL |
7.4.x以降*4, 8.1.x以降, 9以降 |
Oracle Linux |
8.1.x以降 |
表3-1:NGINX App Protect WAF v4以前のサポートOSバージョン
*1:NGINX Plus R33 以降では非推奨
*2:NGINX Plus R28 以降では非推奨
*3:NGINX Plus R30 以降では非推奨
*4:NGINX App Protect WAF 4.11 以降では非推奨
Distribution |
Version |
Alpine |
3.17 |
Debian |
11, 12 |
Ubuntu |
20.04, 22.04, 24.04 |
Amazon Linux |
2023 |
RHEL |
8, 9 |
Rocky Linux |
8 |
Oracle Linux |
8.1 |
表3-2:NGINX App Protect WAF v5のサポートOSバージョン
-
NGINX OSSへの対応
NGINX App Protect WAF v4以前は、NGINX Plusの利用が必須でした。
NGINX App Protect WAF v5ではNGINX OSS(無償で利用可能なNGINX)にも導入が可能となりました。
そのため、現在NGINX OSSを利用されている場合でも、NGINX OSSをお使いのまま、WAFを追加し、セキュリティ強化を実現できます。
インストールおよび設定方法
NGINXに関する日本語のインストールガイドやセットアップガイドを、下記サイトにて公開しております。
v4、v5ともにガイドを公開しております。v5のガイドでは、WAF PolicyやLogging Profileのコンパイル方法も記載していますので、ぜひご参照ください。
NGINXダウンロード資料
また、公式ドキュメントも下記にございますので、こちらもご参照ください。
NGINX Docs > Home > F5 NGINX App Protect WAF > Version 4 and Earlier
NGINX Docs > Home > F5 NGINX App Protect WAF > Version 5
おわりに
今回は、NGINX App Protect WAFについてご紹介しました。
NGINX App Protect WAFは、世界中で利用されている信頼性の高いWAFエンジンを実装したWebセキュリティ製品です。
NGINX App Protect WAF v4での機能は、最新バージョンのv5でも同様に使用可能です。お客様の導入環境に合ったバージョン・導入方法でご利用いただけます。
NGINX App Protect WAFにご興味ございましたら、 以下サイトよりお気軽に弊社までお問い合わせください。
テクマトリックス NGINX紹介ページ
また、同ページにて「NGINX」に関する動画も公開しておりますので、ぜひご覧ください。
BIG-IPのリプレースについてはこちらから