コンテンツにスキップ

MuleSoft用Wallarmコネクタ

MuleSoftは、サービス間のシームレスな接続とデータ統合を可能にする統合プラットフォームであり、APIゲートウェイがクライアントアプリケーションのAPIアクセスのエントリポイントとして機能します。Wallarmは、MuleSoft上で稼働するAPIの保護のためのコネクタとして機能します。

MuleSoft用のコネクタとしてWallarmを使用するには、Wallarmノードを外部にデプロイし、Wallarmが提供するポリシーをMuleSoftに適用してトラフィックをWallarmノードに転送し、解析する必要があります。

MuleSoft用Wallarmコネクタはin-lineトラフィック解析のみをサポートします:

Mulesoft with Wallarm policy

ユースケース

サポートされている全Wallarmデプロイメントオプションの中で、このソリューションは、単一のポリシーでMuleSoft Anypointプラットフォーム上にデプロイされたAPIの保護に推奨されます。

制限事項

要件

デプロイを進めるため、下記の要件を満たしていることをご確認ください:

  • MuleSoftプラットフォームの理解。

  • ホストシステムにDockerがインストールされ、稼働していること。

  • Maven(mvn)がインストールされていること。

  • MuleSoft Exchangeのコントリビューターとしての権限が付与され、組織のMuleSoft Anypoint Platformアカウントにアーティファクトをアップロードできること。

  • MuleSoft Exchangeの認証情報(ユーザ名とパスワード)が<MAVEN_DIRECTORY>/conf/settings.xmlファイルに指定されていること。

  • アプリケーションとAPIがMuleSoft上で連携し、稼働していること。

  • US CloudまたはEU CloudのWallarm ConsoleでAdministratorロールのアカウントにアクセスできること。

デプロイ

1. Wallarmノードのデプロイ

WallarmノードはWallarmプラットフォームの中核コンポーネントであり、着信トラフィックを検査し、不正な活動を検知し、脅威を軽減するように構成できます。

必要なコントロールのレベルに応じて、Wallarmにホスティングされたノードまたは自己管理のインフラストラクチャにデプロイすることが可能です。

コネクタ用のWallarmホスティングノードをデプロイするには、指示に従ってください。

自己管理ノードデプロイメント用のアーティファクトを選択し、添付の手順に従ってください:

2. WallarmポリシーのMuleSoft Exchangeへの取得とアップロード

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

  1. Wallarm Console → Security EdgeConnectorsDownload code bundleに進み、プラットフォームに適したコードバンドルをダウンロードしてください。

    自己管理ノードを使用している場合は、sales@wallarm.comに連絡しコードバンドルを入手してください。

  2. ポリシーアーカイブを展開してください。

  3. pom.xmlファイル内で、以下の内容を指定してください:

    1. MuleSoft Anypoint Platformにアクセスし、Access ManagementBusiness Groups → 組織を選択し、そのIDをコピーしてください。
    2. pom.xmlファイルのgroupIdパラメーターにコピーしたグループIDを指定してください:
    <?xml version="1.0" encoding="UTF-8"?>
        <groupId>BUSINESS_GROUP_ID</groupId>
        <artifactId>wallarm</artifactId>
    
    1. MuleSoft Anypoint Platformにアクセスし、Access ManagementBusiness Groups → 組織を選択し、そのIDをコピーしてください。
    2. pom.xmlファイルのgroupIdパラメーターにコピーしたグループIDを指定してください。
    3. 特定地域でホスティングされているMuleSoftインスタンスの場合、pom.xmlファイルを更新し、対応する地域のURLを使用してください。例えば、MuleSoftの欧州インスタンスの場合:
    <?xml version="1.0" encoding="UTF-8"?>
        <groupId>BUSINESS_GROUP_ID</groupId>
        <artifactId>wallarm</artifactId>
    
        <properties>
            <mule.maven.plugin.version>4.1.2</mule.maven.plugin.version>
            <exchange.url>https://maven.eu1.anypoint.mulesoft.com/api/v1/organizations/${project.groupId}/maven</exchange.url>
        </properties>
    
        <distributionManagement>
            <repository>
                <id>anypoint-exchange-v3</id>
                <name>Anypoint Exchange</name>
                <url>https://maven.eu1.anypoint.mulesoft.com/api/v3/organizations/${project.groupId}/maven
                </url>
                <layout>default</layout>
            </repository>
        </distributionManagement>
    
        <repositories>
            <repository>
                <id>anypoint-exchange-v3</id>
                <name>Anypoint Exchange</name>
                <url>https://maven.eu1.anypoint.mulesoft.com/api/v3/maven</url>
                <layout>default</layout>
            </repository>
        </repositories>
    
  4. confディレクトリを作成し、その中に次の内容のsettings.xmlファイルを作成してください:

    usernamepasswordを実際の認証情報に置き換えてください:

    <?xml version="1.0" encoding="UTF-8"?>
    <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <servers>
        <server>
            <id>anypoint-exchange-v3</id>
            <username>myusername</username>
            <password>mypassword</password>
        </server>
    </servers>
    </settings>
    

    passwordパラメーターにトークンを生成し指定してください:

    <?xml version="1.0" encoding="UTF-8"?>
    <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <servers>
        <server>
            <id>anypoint-exchange-v3</id>
        <username>~~~Token~~~</username>
            <password>01234567-89ab-cdef-0123-456789abcdef</password>
        </server>
    </servers>
    </settings>
    
  5. 次のコマンドを使用して、ポリシーをMuleSoftにデプロイしてください:

    mvn clean deploy -s conf/settings.xml
    

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

Mulesoft with Wallarm policy

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

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

個別のAPIにポリシーを適用

個別のAPIにWallarmポリシーを適用して保護するには、以下の手順に従ってください:

  1. Anypoint PlatformでAPI Managerに移動し、対象のAPIを選択してください。

  2. PoliciesAdd policyに移動し、Wallarmポリシーを選択してください。

  3. Wallarmノードインスタンスのアドレスをhttp://またはhttps://を含めて指定してください。

  4. 必要に応じて、他のパラメーターを変更してください。

  5. ポリシーを適用してください。

Wallarm policy

すべてのAPIにポリシーを適用

MuleSoftのAutomated policyオプションを使用してすべてのAPIにWallarmポリシーを適用するには、以下の手順に従ってください:

  1. Anypoint PlatformのAPI ManagerAutomated Policiesに移動してください。

  2. Add automated policyをクリックし、ExchangeからWallarmポリシーを選択してください。

  3. Wallarmノードインスタンスのアドレスをhttp://またはhttps://を含めて指定してください。

  4. 必要に応じて、他のパラメーターを変更してください。

  5. ポリシーを適用してください。

テスト

デプロイされたポリシーの機能をテストするには、以下の手順に従ってください:

  1. テスト用のPath Traversal攻撃を含むリクエストをAPIに送信してください:

    curl http://<YOUR_APP_DOMAIN>/etc/passwd
    
  2. Wallarm ConsoleのUS CloudまたはEU CloudAttacksセクションを開き、攻撃がリストに表示されていることを確認してください。

    Attacks in the interface

    もしWallarmノードモードがblockingに設定され、トラフィック解析がin-lineの場合、リクエストはブロックされます。

トラブルシューティング

ソリューションが期待通りに機能しない場合は、MuleSoft Anypoint PlatformのRuntime Manager → 対象アプリケーション → LogsからAPIのログを参照してください。

また、API Managerで対象APIに移動し、Policiesタブに表示される適用ポリシーを確認することで、APIにポリシーが適用されているかどうかを検証できます。Automated policiesの場合、See covered APIsオプションを使用して、カバーされているAPIと除外理由を確認してください。

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

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

  1. ステップ2で説明されているように、更新されたWallarmポリシーをダウンロードし、MuleSoft Exchangeにアップロードしてください。

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

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

    例えば、2.xから3.xにアップグレードする場合:

    • CLIENT HOST EXPRESSION:特に変更が必要ない限り、デフォルト値#[attributes.headers['x-forwarded-host']]を使用してください。
    • CLIENT IP EXPRESSION:特に変更が必要ない限り、デフォルト値#[attributes.headers['x-forwarded-for']]を使用してください。
  4. 変更を保存してください。

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

ポリシーのアップグレードには、特にメジャーバージョンアップの場合、Wallarmノードのアップグレードが必要となることがあります。リリース更新やアップグレード手順についてはWallarm Native Node changelogを参照してください。将来的なアップグレードの簡便さと非推奨の回避のため、定期的なノードの更新を推奨します。

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

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