VMware Avi ロードバランサ WAF のログを収集する

以下でサポートされています。

このドキュメントでは、Bindplane エージェントを使用して VMware Avi ロードバランサ WAF ログを Google Security Operations に取り込む方法について説明します。

VMware Avi Load Balancer(旧称 Avi Networks)は、WAF イベント、クライアント接続ログ、仮想サービス アクティビティの syslog メッセージを生成するアプリケーション配信コントローラです。パーサーは、Syslog 形式のログからフィールドを抽出し、Unified Data Model(UDM)にマッピングします。

始める前に

次の前提条件を満たしていることを確認してください。

  • Google SecOps インスタンス
  • Windows Server 2016 以降、または systemd を使用する Linux ホスト
  • Bindplane エージェントと AVI コントローラ間のネットワーク接続
  • プロキシの背後で実行している場合は、Bindplane エージェントの要件に従ってファイアウォール ポートが開いていることを確認します。
  • VMware AVI ロードバランサへの特権アクセス

Google SecOps の取り込み認証ファイルを取得する

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [収集エージェント] に移動します。
  3. 取り込み認証ファイル をダウンロードします。
  4. Bindplane をインストールするシステムにファイルを安全に保存します。

Google SecOps のお客様 ID を取得する

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [プロファイル] に移動します。
  3. [組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。

Bindplane エージェントをインストールする

次の手順に沿って、Windows または Linux オペレーティング システムに Bindplane エージェントをインストールします。

Windows へのインストール

  1. 管理者として コマンド プロンプトまたは PowerShell を開きます。
  2. 次のコマンドを実行します。

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. インストールが完了するまで待ちます。

  4. 次のコマンドを実行して、インストールの内容を確認します。

    sc query observiq-otel-collector
    

    サービスが RUNNING と表示されます。

Linux のインストール

  1. root 権限または sudo 権限でターミナルを開きます。
  2. 次のコマンドを実行します。

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. インストールが完了するまで待ちます。

  4. 次のコマンドを実行して、インストールの内容を確認します。

    sudo systemctl status observiq-otel-collector
    

    サービスは active (running) と表示されます。

その他のインストール リソース

その他のインストール オプションとトラブルシューティングについては、Bindplane エージェントのインストール ガイドをご覧ください。

syslog を取り込んで Google SecOps に送信するように Bindplane エージェントを構成する

構成ファイルを探します。

  • Linux:

    sudo nano /opt/observiq-otel-collector/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

構成ファイルを編集します。

  • config.yaml の内容全体を次の構成に置き換えます。

    receivers:
        udplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/vmware_avinetworks_iwaf:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: VMWARE_AVINETWORKS_IWAF
            raw_log_field: body
    
    service:
        pipelines:
            logs/vmware_avinetworks_iwaf_to_chronicle:
                receivers:
                    - udplog
                exporters:
                    - chronicle/vmware_avinetworks_iwaf
    

構成パラメータ

各プレースホルダを次のように置き換えます。

  • レシーバーの構成:

    • listen_address: リッスンする IP アドレスとポート:
      • 0.0.0.0: すべてのインターフェースでリッスンします(推奨)。
      • ポート 514 は標準の syslog ポートです(Linux で root が必要です。root 以外のユーザーは 1514 を使用します)。
  • エクスポータの構成:

    • creds_file_path: 取り込み認証ファイルのフルパス。
      • Linux: /etc/bindplane-agent/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • customer_id: Google SecOps コンソールからコピーしたお客様 ID
    • endpoint: リージョン エンドポイント URL:
      • 米国: malachiteingestion-pa.googleapis.com
      • ヨーロッパ: europe-malachiteingestion-pa.googleapis.com
      • アジア: asia-southeast1-malachiteingestion-pa.googleapis.com
      • 完全なリストについては、リージョン エンドポイントをご覧ください。

構成ファイルを保存する

  • 編集後、ファイルを保存します。
    • Linux: Ctrl+O、Enter、Ctrl+X の順に押します。
    • Windows の場合: [ファイル] > [保存] をクリックします。

Bindplane エージェントを再起動して変更を適用する

  • Linux で Bindplane エージェントを再起動するには、次のコマンドを実行します。

    sudo systemctl restart observiq-otel-collector
    
    1. サービスが実行されていることを確認します。

      sudo systemctl status observiq-otel-collector
      
    2. ログでエラーを確認します。

      sudo journalctl -u observiq-otel-collector -f
      
  • Windows で Bindplane エージェントを再起動するには、次のいずれかのオプションを選択します。

    • 管理者としてコマンド プロンプトまたは PowerShell を開きます。

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • サービス コンソール:

      1. Win+R キーを押し、「services.msc」と入力して Enter キーを押します。
      2. observIQ OpenTelemetry Collector を見つけます。
      3. 右クリックして [再起動] を選択します。
      4. サービスが実行されていることを確認します。

        sc query observiq-otel-collector
        
      5. ログでエラーを確認します。

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

VMware AVI WAF の外部ロギングを構成する

  1. AVI Controller ウェブ UI にログインします。
  2. [テンプレート> プロファイル> アナリティクス] に移動します。
  3. 新しい分析プロファイルを作成するか、既存の分析プロファイルを選択して編集します。
  4. [Edit Analytics Profile] 画面で、[Client Log] タブを選択します。
  5. [外部ロギング] セクションまでスクロールし、[ログを外部サーバーにストリーミングする] チェックボックスをオンにします。
  6. 次の構成情報を指定します。
    • ログ ストリーミング プロトコル: [UDP] を選択します。
    • デフォルト ポート: 「514」と入力します。
    • ストリーミングするログの種類: [すべてのログ] を選択します。
    • [サーバー] の下にある [追加] ボタンをクリックします。
    • IP アドレス: Bindplane エージェントの IP アドレスを入力します。
    • ポート: Bindplane エージェントのポート番号(例: 514)を入力します。
  7. [保存] をクリックします。
  8. ログデータをストリーミングする仮想サービスに設定を適用します。

UDM マッピング テーブル

ログフィールド UDM マッピング 論理
server_name about.hostname 直接マッピングされます。
_field additional.fields 統合済み
additional_field_label additional.fields 統合済み
cacheable_label additional.fields 統合済み
compression_label additional.fields 統合済み
host_label additional.fields 統合済み
http_version_label additional.fields 統合済み
is_internal_label additional.fields 統合済み
key additional.fields マッピング: `"all_request_headers_pragma", "all_request_headers_accept", "all_request_headers_co...
match_element_label additional.fields 統合済み
match_value_label additional.fields 統合済み
persistent_session_id_label additional.fields 統合済み
request_headers_label additional.fields 統合済み
request_id_label additional.fields 統合済み
response_content_type_label additional.fields 統合済み
response_headers_label additional.fields 統合済み
response_time_first_byte_label additional.fields 統合済み
response_time_last_byte_label additional.fields 統合済み
rule_log_msg_label additional.fields 統合済み
rule_log_phase_label additional.fields 統合済み
rule_log_rule_group_label additional.fields 統合済み
rule_log_rule_id_label additional.fields 統合済み
rule_log_rule_name_label additional.fields 統合済み
server_connection_reused_label additional.fields 統合済み
server_response_code_label additional.fields 統合済み
server_response_length_label additional.fields 統合済み
server_response_time_first_byte_label additional.fields 統合済み
server_response_time_last_byte_label additional.fields 統合済み
server_rtt_label additional.fields 統合済み
server_side_redirect_uri_label additional.fields 統合済み
server_ssl_session_id_label additional.fields 統合済み
servers_tried_label additional.fields 統合済み
ssl_cipher_label additional.fields 統合済み
ssl_session_id_label additional.fields 統合済み
ssl_version_label additional.fields 統合済み
tag_label additional.fields 統合済み
value_label additional.fields 統合済み
waf_log.latency_request_header_phase_label additional.fields 統合済み
waf_log_latency_request_body_phase_label additional.fields 統合済み
waf_log_latency_response_body_phase_label additional.fields 統合済み
waf_log_latency_response_header_phase_label additional.fields 統合済み
waf_log_rules_configured_label additional.fields 統合済み
waf_log_rules_executed_label additional.fields 統合済み
service_engine intermediary.hostname 直接マッピングされます。
intermediary_ip intermediary.ip 統合済み
server_src_port intermediary.port 直接マッピングされます。
report_timestamp metadata.event_timestamp ISO8601 として解析済み
timestamp metadata.event_timestamp ISO8601 として解析済み
has_principal metadata.event_type マッピング: true → NETWORK_HTTP、true → NETWORK_CONNECTION、true → STATUS_UPDATE
log_id metadata.product_log_id 直接マッピングされます。
log_id_syslog metadata.product_log_id 直接マッピングされます。
http_method network.http.method 直接マッピングされます。
method network.http.method 直接マッピングされます。
http_user_agent network.http.parsed_user_agent 直接マッピングされます。
http_referer network.http.referral_url 直接マッピングされます。
referer network.http.referral_url 直接マッピングされます。
http_status network.http.response_code 直接マッピングされます。
response_code network.http.response_code 直接マッピングされます。
http_user_agent network.http.user_agent 直接マッピングされます。
user_agent network.http.user_agent 直接マッピングされます。
http_bytes_received network.received_bytes 直接マッピングされます。
response_length network.received_bytes 直接マッピングされます。
http_bytes_sent network.sent_bytes 直接マッピングされます。
request_length network.sent_bytes 直接マッピングされます。
client_rtt network.session_duration.seconds 直接マッピングされます。
duration network.session_duration.seconds 直接マッピングされます。
server_conn_src_ip observer.ip 統合済み
client_ip principal.asset.ip 統合済み
source_ip principal.asset.ip マッピング済み: client_ip → source_ip
src_ip principal.asset.ip 統合済み
client_ip principal.ip 統合済み
source_ip principal.ip マッピング済み: client_ip → source_ip
src_ip principal.ip 統合済み
client_src_port principal.port 直接マッピングされます。
user principal.user.userid 直接マッピングされます。
request_state security_result.description 直接マッピングされます。
_field security_result.detection_fields 統合済み
waf_status_label security_result.detection_fields 統合済み
dest_ip target.asset.ip 統合済み
server_ip target.asset.ip 統合済み
vs_ip target.asset.ip 統合済み
vs_name_syslog target.hostname 直接マッピングされます。
dest_ip target.ip 統合済み
server_ip target.ip 統合済み
vs_ip target.ip 統合済み
client_dest_port target.port 名前変更済み/マッピング済み
port target.port 直接マッピングされます。
server_dest_port target.port 名前変更済み/マッピング済み
pool_label target.resource.attribute.labels 統合済み
pool_name_label target.resource.attribute.labels 統合済み
virtualservice_label target.resource.attribute.labels 統合済み
redirected_uri target.url 直接マッピングされます。
uri_query target.url 直接マッピングされます。
url target.url 直接マッピングされます。
なし metadata.event_type 定数: NETWORK_HTTP
なし metadata.product_name 定数: AVI Load Balancer
なし metadata.vendor_name 定数: Vmware
なし network.direction 定数: INBOUND
なし network.http.parsed_user_agent 定数: parseduseragent

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。