コンテンツにスキップ

MuleSoft Flex Gateway向けWallarmコネクタ

本ガイドでは、Wallarmコネクタを使用してMuleSoft Flex Gatewayで管理されているMuleおよび非MuleのAPIをどのように保護するかを説明します。

Flex GatewayのコネクタとしてWallarmを使用するには、Wallarmノードを外部にデプロイし、MuleSoftでWallarm提供のポリシーを適用して、トラフィックを解析のためにWallarmノードへルーティングする必要があります。

Flex Gateway向けWallarmコネクタは、同期(インライン)および非同期(アウトオブバンド)のトラフィック解析の両方をサポートします:

Wallarmポリシー適用のMuleSoft

Wallarmポリシー適用のMuleSoft

ユースケース

本ソリューションは、Flex Gatewayで管理されるAPIを保護するための推奨手法です。

制限事項

  • When deploying the Wallarm service with the LoadBalancer type using the Helm chart, a trusted SSL/TLS certificate is required for the domain. Self-signed certificates are not yet supported.

  • Custom blocking page and blocking code configurations are not yet supported.

    All blocked malicious traffic is returned with status code 403 and the default block page.

  • Rate limiting by Wallarm rules is not supported.

    Rate limiting cannot be enforced on the Wallarm side for this connector. If you need rate limiting, use the features built into your API gateway or cloud platform.

  • Multitenancy is not supported.

    All protected APIs are managed under a single Wallarm account; separating protection across multiple accounts for different infrastructures or environments is not yet supported.

要件

デプロイを進めるにあたり、次の要件を満たしていることを確認してください:

  • MuleSoftプラットフォームについての理解があります。

  • お使いのアプリケーションとAPIがFlex Gateway上で連携して稼働しています。

    部分的なリクエストに関する注意

    ブロッキングモードで動作するコネクタの場合、アップストリームが部分的なリクエストを安全に処理できることを確認してください。これはproxy wasmポリシーがストリーミングである性質によるものです。完全な検証が完了する前に、一部のボディデータがアップストリームに到達する場合があります。詳細はこちら

  • ご利用のMuleSoftユーザーに、MuleSoft Anypoint Platformアカウントへアーティファクトをアップロードする権限が付与されています。

  • Wallarm ConsoleのUS CloudまたはEU CloudにあるAdministratorアカウントへアクセスできます。

  • ホストシステムにNode.js 16.0.0+とnpm 7+がインストールされています。

  • ホストシステムにmakeがインストールされています。

  • ホストシステムにAnypoint CLI 4.xがインストールされています。

  • ホストシステムにPDK CLIの前提条件がインストールされています。

  • ホストシステムにDockerがインストールされ稼働しています。

  • Native Nodeはバージョン0.16.0以上です。

デプロイ

1. Wallarmノードをデプロイする

Wallarmノードはデプロイが必要なWallarmプラットフォームの中核コンポーネントです。受信トラフィックを検査し、悪意のあるアクティビティを検出し、脅威の軽減を行うように構成できます。

Flex Gatewayコネクタの場合、ノードはお客様のインフラストラクチャ内にのみデプロイできます。

セルフホスト型ノードのデプロイ方法として適切なアーティファクトを選択し、各手順に従ってください:

必要なNodeのバージョン

MuleSoft Flex Gatewayコネクタは、Native Nodeのバージョン0.16.0以上でのみサポートされます。

2. Wallarmポリシーを取得してMuleSoft Exchangeにアップロードする

MuleSoft ExchangeにWallarmポリシーを取得してアップロードするには、次の手順に従ってください:

  1. sales@wallarm.comに連絡してコードバンドルを入手します。

  2. ポリシーを公開するマシンがすべての必要要件を満たしていることを確認します。

  3. ポリシーのアーカイブを展開します。

  4. MuleSoft Anypoint Platform → Access ManagementBusiness Groups → 組織を選択 → business group IDをコピーします。

  5. 展開したポリシーディレクトリで→ Cargo.toml[package.metadata.anypoint]group_idに、コピーしたグループIDを指定します:

    ...
    [package.metadata.anypoint]
    group_id = "<BUSINESS_GROUP_ID>"
    definition_asset_id = "wallarm-custom-policy"
    implementation_asset_id = "wallarm-custom-policy-flex"
    ...
    
  6. ポリシーの作業を行っているのと同じターミナルセッションで、Anypoint CLIで認証します:

    anypoint-cli-v4 conf username <USERNAME>
    anypoint-cli-v4 conf password '<PASSWORD>'
    
  7. ポリシーをビルドして公開します:

    make setup      # 依存関係とPDK CLIをインストールします
    make build      # ポリシーをビルドします
    make release    # ポリシーの新しい本番版をAnypointに公開します
    # または
    # make publish  # ポリシーの開発版をAnypointに公開します
    

これでカスタムポリシーがMuleSoft Anypoint PlatformのExchangeで利用可能になりました。

Wallarmポリシー適用のMuleSoft

3. WallarmポリシーをAPIに適用する

Wallarmポリシーは、個別のAPIにも、すべてのAPIにも適用できます。

  1. 個別のAPIに適用するには、Anypoint Platform → API Manager → 対象APIを選択 → PoliciesAdd policyに進みます。

  2. すべてのAPIに適用するには、Anypoint Platform → API ManagerAutomated PoliciesAdd automated policyに進みます。

  3. ExchangeからWallarmポリシーを選択します。

  4. パラメーターwallarm_nodeに、http://またはhttps://を含むWallarmノードのURLを指定します。

  5. 必要に応じてその他のパラメーターを変更します。

  6. ポリシーを適用します。

Wallarmポリシー

構成オプション

Flex Gateway向けWallarmポリシーの設定では、次のパラメーターを指定できます:

パラメーター 説明 必須?
wallarm_node ご利用のWallarm Nodeインスタンスのアドレスを設定します。 はい
real_ip_header プロキシやロードバランサー配下にある場合に、元のクライアントIPアドレスを判定するために使用するヘッダーを指定します。デフォルト: X-Forwarded-For はい
wallarm_mode トラフィック処理モードを指定します: syncはトラフィックを直接Wallarm Nodeで処理し、asyncは元のフローに影響を与えずにトラフィックのコピーを解析します。デフォルト: sync はい
fallback_action Wallarmノードがダウンしている場合のリクエストの扱いを定義します。pass(すべてのリクエストを許可)またはblock(403コードで全リクエストをブロック)を指定できます。デフォルト: pass はい
parse_responses レスポンスボディを解析するかどうかを制御します。有効にすると、レスポンススキーマのディスカバリーや、攻撃・脆弱性検出機能が強化されます。デフォルト: true はい
response_body_limit Wallarmノードに送信するレスポンスボディのサイズを制限します。デフォルト: 4096バイト。 いいえ

テスト

デプロイ済みポリシーの動作をテストするには、次の手順に従ってください:

  1. テスト用のパストラバーサル攻撃を含むリクエストをAPIに送信します:

    curl http://<GATEWAY_URL>/etc/passwd
    
  2. Wallarm ConsoleのUS CloudまたはEU Cloudの→ Attacksセクションを開き、攻撃が一覧に表示されていることを確認します。

    インターフェイスのAttacks

    Wallarmノードのモードがブロッキングに設定され、トラフィックがインラインで流れている場合、リクエストもブロックされます。

トラブルシューティング

期待どおりに動作しない場合は、MuleSoft Anypoint Platform → Runtime Manager → 対象アプリケーション → Logsにアクセスして、APIのログを確認してください。

また、API Managerで対象APIを開き、Policiesタブで適用済みのポリシーを確認することで、ポリシーがAPIに適用されているかを検証できます。自動ポリシーについては、See covered APIsオプションを使用して、対象となるAPIと除外理由を確認できます。

ポリシーのアップグレード

デプロイ済みのWallarmポリシーを新しいバージョンへアップグレードするには:

  1. 手順2に従って、更新されたWallarmポリシーをダウンロードし、MuleSoft Exchangeにアップロードします。

  2. 新しいバージョンがExchangeに表示されたら、API Manager → 対象API → Policies → Wallarmポリシー → Edit configurationAdvanced optionsへ進み、ドロップダウンから新しいポリシーバージョンを選択します。

  3. 新しいバージョンで追加のパラメーターが導入されている場合は、必要な値を入力します。

  4. 変更を保存します。

Wallarmポリシーが自動ポリシーとして適用されている場合、直接のアップグレードができないことがあります。その場合は、現在のポリシーを削除し、新しいバージョンを手動で再適用してください。

ポリシーのアップグレードにあたっては、特にメジャーバージョンアップの場合、Wallarmノードのアップグレードが必要になることがあります。セルフホスト型ノードのリリースノートについてはNative Nodeの変更履歴をご参照ください。非推奨化を避け、将来のアップグレードを容易にするため、ノードは定期的に更新することを推奨します。

ポリシーのアンインストール

Wallarmポリシーをアンインストールするには、自動ポリシー一覧または個別APIに適用されたポリシー一覧でRemove policyオプションを使用します。