コンテンツにスキップ

アプリケーションの設定

会社に複数のアプリケーションがある場合、会社全体のトラフィック統計だけでなく、各アプリケーションごとの統計を個別に閲覧できると便利です。アプリケーションごとにトラフィックを分離するには、Wallarmシステムの「アプリケーション」エンティティを使用できます。

アプリケーションを使用すると、次のことが可能です。

  • 各アプリケーションごとのイベントと統計を閲覧する

  • 特定のアプリケーション向けにトリガー、ルール、その他のWallarm機能を構成する

  • 環境(本番、テストなど)を個別のアプリケーションとして扱う

    環境の分離

    アプリケーションとして管理される環境は、現在のWallarmアカウントのすべてのユーザーがアクセスできます。特定のユーザーのみにアクセスを制限したい場合は、アプリケーションではなくmultitenancy機能を使用してください。

Wallarmがアプリケーションを識別できるようにするには、ノードの設定で適切なディレクティブを使って各アプリケーションに一意の識別子を割り当てる必要があります。識別子はアプリケーションのドメインにもドメインパスにも設定できます。

デフォルトでは、Wallarmは各アプリケーションを識別子(ID)-1defaultアプリケーションとして扱います。

アプリケーションの追加

  1. (任意)Wallarm Console → SettingsApplicationsでアプリケーションを追加します。

    アプリケーションを追加する

    管理者アクセス

    ロールがAdministratorのユーザーのみがSettingsApplicationsセクションにアクセスできます。

  2. ノードの設定で次のいずれかの方法により、アプリケーションに一意のIDを割り当てます。

    • WallarmがNGINXモジュール、クラウドマーケットプレイスイメージ、設定ファイルをマウントしたNGINXベースのDockerコンテナ、サイドカーコンテナとしてインストールされている場合は、ディレクティブwallarm_applicationを使用します。
    • WallarmがNGINXベースのDockerコンテナとしてインストールされている場合は、環境変数WALLARM_APPLICATIONを使用します。
    • WallarmがIngressコントローラーとしてインストールされている場合は、Ingress annotationwallarm-applicationを使用します。
    • Native Nodeのall-in-oneインストーラー、Dockerイメージ、AWS AMIの場合は、route_config.wallarm_applicationパラメータを使用します。
    • Native NodeのHelm chartの場合は、config.connector.route_config.wallarm_applicationパラメータを使用します。
    • Edgeのインラインまたはコネクタのセットアップウィンドウでアプリケーションを設定します。

    値は0を除く正の整数に設定できます。

    指定したIDのアプリケーションがWallarm Console → SettingsApplicationsに追加されていない場合、自動的に一覧に追加されます。アプリケーション名は指定した識別子に基づいて自動生成されます(例: IDが-1のアプリケーションはApplication #1)。名前は後でWallarm Consoleから変更できます。

アプリケーションが正しく構成されている場合、そのアプリケーションを対象とした攻撃の詳細にアプリケーション名が表示されます。アプリケーションの構成をテストするには、アプリケーションのアドレスにテスト攻撃を送信できます。

アプリケーションの自動識別

次の基準に基づいてアプリケーションの自動識別を構成できます。

  • 特定のリクエストヘッダー

  • NGINXのmapディレクティブを使用した特定のリクエストヘッダーまたはURLの一部

NGINXのみ

ここで説明する方法は、NGINXベースのセルフホスト型ノードのデプロイにのみ適用されます。

特定のリクエストヘッダーに基づくアプリケーション識別

この方法は次の2ステップで構成します。

  1. 各リクエストにアプリケーションIDを含むヘッダーが追加されるようにネットワークを構成します。

  2. このヘッダーの値をwallarm_applicationディレクティブの値として使用します。以下の例を参照してください。

NGINX設定ファイルの例:

server {
    listen       80;
    server_name  example.com;
    wallarm_mode block;
    wallarm_application $http_custom_id;

    location / {
        proxy_pass      http://upstream1:8080;
    }
}    

攻撃リクエストの例:

curl -H "Cookie: SESSID='UNION SELECT SLEEP(5)-- -" -H "CUSTOM-ID: 222" http://example.com

このリクエストは次のように処理されます。

  • 攻撃と見なされ、Attacksセクションに追加されます。

  • IDが222のアプリケーションに関連付けられます。

  • 該当するアプリケーションが存在しない場合、SettingsApplicationsに追加され、自動的にApplication #222という名前が付けられます。

ヘッダーに基づくアプリケーションの追加

NGINXのmapディレクティブを使用し、特定のリクエストヘッダーまたはURLの一部に基づくアプリケーション識別

NGINXのmapディレクティブを使用して、特定のリクエストヘッダーやエンドポイントURLの一部に基づきアプリケーションを追加できます。ディレクティブの詳細はNGINXのドキュメントを参照してください。

アプリケーション別のイベントと統計の表示

アプリケーションを設定したら、次の内容をアプリケーションごとに個別に表示できます。

  • 関心のあるアプリケーションだけのAttacksincidents

  • 関心のあるアプリケーションだけに関連するAPI sessions

  • 関心のあるアプリケーションだけに関連するdashboardsの統計

アプリケーション別のWallarm機能の設定

アプリケーションを設定したら、次のWallarm保護機能をアプリケーションごとに個別に構成できます。

Wallarmの機能をアプリケーションに割り当てることは、それらの機能を適用する条件を指定し、インフラストラクチャの各部分に対して設定を差別化する最も簡単な方法です。

アプリケーションの削除

Wallarmシステムからアプリケーションを削除するには、ノードの設定ファイルから該当するディレクティブを削除します。SettingsApplicationsセクションからのみアプリケーションを削除した場合は、一覧に復元されます。