コンテンツにスキップ

Wallarm Functionsを利用したAzion Edge Firewall

Azion Edge Functionsはネットワークエッジでカスタムコードを実行でき、リクエスト処理のための独自ルールを実装できます。Wallarmのカスタムコードを組み込むことで、受信トラフィックをWallarmノードにプロキシして解析およびフィルタリングできます。この構成はAzion Edge Firewallが既に提供するセキュリティ対策を強化します。本ガイドでは、Azion Edge上で稼働するサービスを保護するために、WallarmノードをAzion Edgeに統合する方法を説明します。

このソリューションでは、外部にWallarmノードをデプロイし、対象プラットフォームにカスタムコードまたはポリシーを組み込みます。これにより、トラフィックを外部のWallarmノードに誘導して解析し、潜在的な脅威から保護できるようになります。これらはWallarmのコネクタと呼ばれ、Azion Edge、Akamai Edge、MuleSoft、Apigee、AWS Lambdaなどのプラットフォームと外部のWallarmノードをつなぐ必須のリンクとして機能します。このアプローチにより、シームレスな統合、安全なトラフィック解析、リスク低減、プラットフォーム全体のセキュリティを実現します。

ユースケース

このソリューションは、以下のユースケースに推奨されます。

  • Azion Edge上で稼働するAPIまたはトラフィックを保護したい場合。

  • 攻撃の包括的な観測・レポートおよび悪意のあるリクエストの即時ブロックを提供するセキュリティソリューションが必要な場合。

制限事項

このソリューションは受信リクエストのみを対象とするため、いくつかの制限があります。

  • パッシブ検出方式による脆弱性発見は正しく機能しません。この方式は、テスト対象の脆弱性に典型的な悪意のあるリクエストに対するサーバーの応答に基づいてAPIが脆弱かどうかを判定します。

  • 本ソリューションでは応答解析を利用できないため、Wallarm API Discoveryはトラフィックに基づいてAPIインベントリを探索できません。

  • 応答コードの解析を必要とするため、強制ブラウジング対策は利用できません。

要件

デプロイを進める前に、以下の要件を満たしていることを確認してください。

  • Azion Edgeのテクノロジーに関する理解

  • Azion Edge上で稼働するAPIまたはトラフィック

デプロイ

WallarmでAzion Edge上のAPIを保護するには、次の手順に従ってください。

  1. 利用可能なデプロイオプションのいずれかを使用してWallarmノードをデプロイします。

  2. Edge Functions用のWallarmコードを入手し、Azionで実行します。

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

Azion EdgeでWallarmを利用する場合、トラフィックフローはインラインになります。

  1. インラインデプロイ用に、サポートされているWallarmノードのデプロイソリューションまたはアーティファクトのいずれかを選択し、案内された手順に従ってデプロイします。

  2. 次のテンプレートを使用して、デプロイしたノードを構成します。

    server {
        listen 80;
    
        server_name _;
    
        access_log off;
        wallarm_mode off;
    
        location / {
            proxy_set_header Host $http_x_forwarded_host;
            proxy_pass http://unix:/tmp/wallarm-nginx.sock;
        }
    }
    
    server {
        listen 443 ssl;
    
        server_name yourdomain-for-wallarm-node.tld;
    
        ### ここにSSLの設定
    
        access_log off;
        wallarm_mode off;
    
        location / {
            proxy_set_header Host $http_x_forwarded_host;
            proxy_pass http://unix:/tmp/wallarm-nginx.sock;
        }
    }
    
    
    server {
        listen unix:/tmp/wallarm-nginx.sock;
    
        server_name _;
    
        wallarm_mode monitoring;
        #wallarm_mode block;
    
        real_ip_header X-EDGEWRK-REAL-IP;
        set_real_ip_from unix:;
    
        location / {
            echo_read_request_body;
        }
    }
    

    以下の構成に注意してください。

    • HTTPSトラフィックのTLS/SSL証明書:WallarmノードでセキュアなHTTPSトラフィックを扱えるように、適切にTLS/SSL証明書を構成してください。具体的な設定内容は選択したデプロイ方法に依存します。たとえばNGINXを使用している場合は、該当記事を参照してください。
    • Wallarmの動作モードの構成。
  3. デプロイが完了したら、後で受信リクエストの転送先アドレスを設定する際に必要になるため、ノードインスタンスのIPを控えておいてください。

2. Edge Functions用のWallarmコードを入手してAzionで実行する

Azion Edge Functions向けのWallarmコードを入手して実行するには、次の手順に従ってください。

  1. support@wallarm.comへ連絡してWallarmコードを入手します。

  2. Azion Edgeで、Billing & Subscriptionsに移動し、Application AccelerationEdge Functionsのサブスクリプションを有効化します。

  3. 新しいEdge Applicationを作成して保存します。

  4. 作成したアプリケーションを開き → Main SettingsApplication AccelerationEdge Functionsを有効化します。

  5. Domainsに移動し、Add Domainをクリックします。

  6. Edge Functionsに移動し、Add FunctionをクリックしてEdge Firewallタイプを選択します。

  7. Wallarmソースコードを貼り付け、wallarm.node.tld前段でデプロイしたWallarmノードのアドレスに置き換えます。

  8. Edge FirewallAdd Rule SetNameを入力 → Domainsを選択し、Edge Functionsをオンにします。

  9. Functionsタブに切り替え、Add Functionをクリックして先ほど作成した関数を選択します。

  10. Rules Engineタブに切り替え → New Ruleを選択し、Wallarmでフィルタリングするトラフィックの条件を設定します。

    • すべてのリクエストを解析・フィルタリングするには、If Request URI starts with /を選択します。
    • BehaviorsThen Run Functionを選択し、先ほど作成した関数を選びます。

テスト

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

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

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

    インターフェイスのAttacks

    Wallarmノードのモードがブロックに設定されている場合、リクエストもブロックされます。

サポートが必要ですか?

Azion Edgeと組み合わせた本ドキュメントのWallarmデプロイで問題が発生した場合や支援が必要な場合は、Wallarm supportチームにお問い合わせください。実装プロセス中に直面する問題の解決に向けたガイダンスを提供します。