NGINX.COM
Web Server Load Balancing with NGINX Plus

NGINXが2年前にF5の傘下に入ったことによる、我々の顧客に対する最も大きなメリットの一つは、F5の業界をリードするセキュリティの専門知識がNGINX製品に統合されたことです。「NGINX App Protect WAF」と「NGINX Controller App Security」は、「F5 Advanced WAF」や「F5 Silverline WAF」など、F5のセキュリティソリューションと同じWebアプリケーション ファイアウォール(WAF)技術を活用しています。各製品は異なる提供形態により、特定の環境、展開シナリオ、管理ユースケースをサポートしますが、外部からの多くの高度な攻撃に対して同じ信頼されたセキュリティを提供できる仕組みが、お客様にとって必要な要素となります。

Products built on the shared F5 WAF engine: F5 NGINX App Protect, F5 NGINX Controller App Security, F5 Advanced WAF, F5 Silverline WAF
NGINXとF5のセキュリティソリューションは、F5の業界をリードするWAFテクノロジーを活用しています。

また、F5とNGINXがWAF技術を共有することで、従来のF5のお客様は、F5 Advanced WAFのような製品を使用する従来の環境から、NGINX App Protect WAFがより適しているコンテナ化された環境やクラウド環境に移行しても、セキュリティチームが承認した標準化されたポリシーを維持することができます。製品間でのWAFポリシーのポータビリティにより、F5とNGINXのお客様は、強固で一貫性のある、準拠したセキュリティ体制を迅速かつ容易に確保することができます。

アプリケーションデリバリーモジュールで提供するNGINX Controller App Securityでは、OWASPトップ10やその他の脅威からの保護に焦点を当て、誤検知を最小限に抑えるデフォルトのポリシーをご利用いただけます。バージョン3.20のアプリケーションデリバリーモジュールでは、カスタムのNGINX App Protect WAFポリシーをインポートして、管理しているすべてのデプロイメントに配布することができます。これをBring Your Own NGINX App Protect WAF Policy(BYO App Protect Policy)と呼んでいます。

詳細については、こちらのビデオをご覧ください。

アプリケーション モダナイゼーションの過程で一貫したWAFポリシーを維持

従来のアプリケーションデリバリー環境をお持ちのお客様の多くは、F5 Advanced WAFやBIG-IP ASMの使用を開始しています。アプリケーションのモダナイゼーションを進める中で、WAFサービスの展開でDevOpsに沿ったアプローチを必要となる新しいアプリケーションのためにNGINX App ProtectとNGINX Controller App Securityを活用することができます。

NGINX App Protect WAFは単体で、OWASP Top 10やその他の高度な脅威に対する防御から、シンプルな宣言型のポリシー定義まで、さまざまな機能を備えており、最新アプリケーションの保護を提供します。Controller App Securityを採用してNGINX App Protect WAFインスタンスを管理することには、さらなるメリットがあります。

  • セキュリティチームは、簡単に手間なく優れたビジビリティが得られ、さらに開発チームやDevOpsチームにセキュリティチーム承認済みのWAFポリシーやNGINX App Protect WAFインスタンスのセルフサービス プロビジョニング・管理を提供することができます。さらに、1つのControllerインスタンスで複数のチームをサポートすることができます。
  • 開発チームやDevOpsチームは、すでに慣れ親しんだController APIとGUIを使って、セキュリティチームに承認されたWAFポリシーをアプリに適用することができ、ポリシーやデータプレーン上でポリシーを適用するNGINX App Protect WAFインスタンスの設定を深く理解する必要はありません。
Topology diagram showing NGINX Controller App Security Add-On operating on the management plane and NGINX App Protect WAF operating on the data plane
Controller App SecurityはNGINX App Protect WAFを使用してデータプレーンにポリシーを適用します。

Controller App Security用に最適化されたF5 WAFポリシー

アプリのモダナイゼーションを進めていく上で、すべてのF5およびNGINX WAFの実装で一貫したポリシーを維持するために、NGINX App Protect Policy Converterを提供します。F5 Advanced WAFのポリシー(XML形式)をNGINX App Protect WAFのポリシー(JSON形式)に変換します。変換されたポリシーは、次のセクションで説明するようにController App Securityに渡すことができます。

ここでは、F5 Advanced WAFポリシーをNGINX App Protect WAFポリシーに変換する手順とリンクをご紹介します。

Diagram showing the steps for converting an F5 Advanced WAF policy to an NGINX App Protect policy
F5 Advanced WAFポリシーのNGINX App Protect WAFポリシーへの変換
  1. NGINX App Protect Policy ConverterのDockerイメージをダウンロードしてインストールします。
  2. F5 Advanced WAFポリシーをエクスポートします(説明では「BIG IP ASMセキュリティポリシー」を参照していますが、F5 Advanced WAFポリシーにも適用されます)。
  3. ポリシーをJSON形式のNGINX App Protect WAFポリシーに変換します。

任意のNGINX App Protect WAFポリシーをController App Securityに導入

Controller App SecurityのApplication Delivery Module バージョン3.20では、BYO App Protect Policyプロセスを使用してNGINX App Protect WAFポリシーを持ち込み、管理しているすべてのNGINX App Protectインスタンスに配布することができます。NGINX App Protect WAFポリシーは、ネイティブのものでも、前のセクションで説明したようにF5 Advanced WAFから変換したものでも可能です。

BYO App Protect Policyでは、カスタムNGINX App Protect WAFポリシーを含むセキュリティに関連するポリシーのために、Security Strategiesと呼ばれるControllerオブジェクトを採用しました。これにより、Security Strategyを参照し、関連するWAFポリシーをアプリに適用いただけます。

BYO App Protect Policyプロセスの追加情報については、製品ドキュメントを参照してください。

選択したインターフェイスについては、以下のセクションの説明を参照してください。

手順を完了すると、BYO App Protect Policyプロセスを使用してController App Securityに持ち込まれたWAFポリシーのアップデートは、関連するSecurity Strategyを参照するすべてのApp Componentsに自動的に伝播します。

Controller App SecurityのApplication Delivery Module バージョン3.20では、1つのファイルで定義されたWAFポリシーのみがサポートされます。外部参照を使用したWAFポリシー(複数のファイルで表現されたWAFポリシー)のサポートは、将来的にリリースを予定しています。

APIの利用

以下の手順で、Controller APIを使用してWAFポリシーをController App Securityに導入します。

  1. PUTリクエストでNGINX App Protect WAFポリシーをSecurity Policyエンドポイントに渡します。

    https://{{CONTROLLER_FQDN}}/api/v1/security/policies/{{policy}}

    以下のようなJSONオブジェクトを渡します。

    {
        "metadata": {
            "name": "lowriskapppolicy",
            "displayName": "Low-Risk App Protect Policy",
            "description": "Corporate WAF policy for internal low-risk apps",
        },
        "desiredState": {
            "content": {
                "policy": {
                    "name": "lowriskapppolicy",
                    "template": {
                        "name": "POLICY_TEMPLATE_NGINX_BASE"
                    },
                    "applicationLanguage": "utf-8",
                    "enforcementMode": "blocking",
                    "signatures": [
                        {
                            "signatureId": 123458888,
                            "enabled": false
                        },
                        {
                            "signatureId": 304500123,
                            "enabled": false
                        }
                    ],
                }
            }
        }
    }
  2. Security StrategiesエンドポイントへのPUTリクエストでWAFポリシーを参照するSecurity Strategyを作成します。

    https://{{CONTROLLER_FQDN}}/api/v1/security/strategies/{{strategy}}

    以下のようなJSONオブジェクトを渡します。

    {
        "metadata": {
            "name": "lowriskstrategy",
            "displayName": "Low-Risk App Strategy",
            "description": "Corporate strategy for internal low-risk apps",
        },
        "desiredState": {
            "content": {
                "securityPolicyRef": "/security/policies/lowriskapppolicy"
            }
        }
    }
  3. App ComponentのエンドポイントへのPUTまたはPOSTリクエストを用いて、Security Strategyを参照するApp Component(AppのURIなど)にWAFポリシーを適用します。

    https://{{Controller_FQDN}}/api/v1/services/environments/{{env}}/apps/{{app}}/components/{{component}}

    以下のようなJSONオブジェクトを渡します。

    {
        "metadata": {
            "name": "main"
        },
        "desiredState": {
            "ingress": {
                "uris": {
                    "/": {
                    }
                },
    . . .
    
            "security": {
                "strategyRef": {
                    "ref": "/security/strategies/lowriskstrategy"
                },
                "waf": {
                    "isEnabled": true
                }
            },
    . . .
    }

GUIの利用

以下の手順で、Controller GUIを使用して、Controller App SecurityにWAFポリシーを導入・適用します。

  1. Create Security Strategy」ページで Security Strategyを作成します。

  2. NGINX App Protect WAF PolicyがControllerですでに利用可能な場合は、Policyフィールドのドロップダウンメニューから選択します。

    まだ表示されていない場合は、「+ CREATE NEW」をクリックします。表示される「Create Security Policy」のポップアップウィンドウで、JSON形式のNGINX App Protect WAFポリシーを含むファイルをアップロードします。

  3. WAFポリシーを適用するアプリの「Edit App Component」ページで、関連する「Security Strategy」を選択します。

NGINX Controller内でのポリシーの共有

BYO App Protect Policyプロセスを使用してController App Securityにポリシーを導入すると、異なるチームで管理されている場合でも、Controllerで定義されたすべてのアプリでポリシーを共有できます。複数のController App Components(またはURIなどのアプリのサブコンポーネント)が同じポリシーを参照することで、多くのアプリやAPIでセキュリティ体制を標準化することができます。

Diagram showing how multiple apps can refer to the same BYO App Protect WAF policy
複数のアプリが同じポリシーを参照可能

Controllerは、WAFポリシーの管理とバージョン管理を一元化します。ポリシーの新しいバージョンを公開すると、それを参照しているすべてのController Appコンポーネントが更新され、運用が大幅に簡素化されます。

まとめ

F5のWAFテクノロジープラットフォームは、アプリ全体のセキュリティ態勢を標準化するために、同じWAF保護ポリシーの移植と再利用を可能にします。また、この設計思想はF5とNGINXのWAFソリューションで保護されている全てのユースケースをサポートし、アプリケーションセキュリティの管理と展開をより速く簡単に、再現性の高いものにします。

Controller App SecurityのBYO App Protect Policy機能(Controller ADM 3.20で利用可能)により、カスタムのNGINX App Protect WAFポリシーを使用できるようになり、NGINX App Protect WAFやF5 Advanced WAFを使用して構築された堅牢で一貫性のある実証済みのポリシーで新しいアプリケーションを簡単に保護できるようになりました。さらに、BYO App Protect PolicyとController App Securityを使えば、吟味された1つのポリシーを多くのアプリに適用することができ、ポリシー変更プロセスを大幅に簡素化と効率化することができます。

NGINX Controllerは、セキュリティチームがアプリケーションチームにセルフサービス モデルでセキュリティを提供することを可能にし、生産性とセキュリティの両方で組織を活性化します。

NGINX Controller App Securityを是非お試しいただければと思います。30日間のNGINX Controller無料トライアルをご用意しております。また、ユースケース等のさらなる詳細を聞きたい方は弊社までお問い合わせください。

Hero image
モダン・アプリケーションやAPIを保護するセキュリティ

今日のアプリケーションを取り巻く状況は劇的に変化し、最新のアプリケーションはコンテナの中で実行され、API を通じて通信し、自動化されたCI/CD パイプラインでデプロイされるマイクロサービスが主流となりつつあります。そんなモダンアプリケーションやAPIを保護するためのアプリケーションセキュリティについて解説します。



著者について

Daphne Won

Director, Product Management - NGINX App Security

About F5 NGINX

F5 NGINXについて
F5, Inc.は、人気のオープンソースプロジェクト「NGINX」を支援しています。NGINXはモダンアプリケーションを開発・構築するためのテクノロジースイートを提供しています。NGINXとF5製品との併用で、コードからユーザーまでの広範なアプリケーション領域をサポートし、マルチクラウドアプリケーションサービスとしてNetOpsとDevOps間の課題を解決します。

詳しくはnginx.co.jpをご覧ください。Twitterで@nginxをフォローして会話に参加することもできます。