ADVA Fiber Service Platform のログを収集する

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

このドキュメントでは、Bindplane を使用して ADVA Fiber Service Platform(ADVA FSP)ログを Google Security Operations に取り込む方法について説明します。パーサーは、スイッチとルーターの syslog メッセージからフィールドを抽出し、Key-Value ペアに変換します。次に、抽出されたフィールドとその値を Chronicle UDM スキーマ内の対応するフィールドにマッピングし、セキュリティ分析用のデータを拡充します。

始める前に

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

  • Google SecOps インスタンス
  • systemd を使用する Windows 2012 SP2 以降または Linux ホスト
  • プロキシの背後で実行している場合は、Bindplane エージェントの要件に従ってファイアウォール ポートが開いていることを確認します。
  • ADVA FSP デバイス管理コンソールへの特権アクセス

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

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [コレクション エージェント] に移動します。
  3. Ingestion Authentication File をダウンロードします。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
    

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
    

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

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

  1. 構成ファイルにアクセスします。

    1. config.yaml ファイルを見つけます。通常、Linux では /etc/bindplane-agent/ ディレクトリに、Windows ではインストール ディレクトリにあります。
    2. テキスト エディタ(nanovi、メモ帳など)を使用してファイルを開きます。
  2. config.yaml ファイルを編集します。次の 2 つは動作するレシーバー オプションです。デバイスがログを送信する方法に一致するものを選択してください。

    • オプション A - UDP ログ レシーバ(シンプルな UDP)
    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/chronicle_w_labels:
        compression: gzip
        creds_file_path: '/path/to/ingestion-authentication-file.json'
        customer_id: <CUSTOMER_ID>
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: 'ADVA_FSP'
        raw_log_field: body
        ingestion_labels:
    
    service:
      pipelines:
        logs/adva-fsp:
          receivers:
            - udplog
          exporters:
            - chronicle/chronicle_w_labels
    
    • オプション B - Syslog レシーバ(厳格な syslog フレーム処理に推奨)
    receivers:
      syslog:
        tcp:
          listen_address: "0.0.0.0:514"
        protocol: rfc5424   # or rfc3164 if your device uses BSD syslog
    
    exporters:
      chronicle/chronicle_w_labels:
        compression: gzip
        creds_file_path: '/path/to/ingestion-authentication-file.json'
        customer_id: <CUSTOMER_ID>
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: 'ADVA_FSP'
        raw_log_field: body
        ingestion_labels:
          source: 'adva-fsp'
          env: 'production'
    
    service:
      pipelines:
        logs/adva-fsp:
          receivers:
            - syslog
          exporters:
            - chronicle/chronicle_w_labels
    
    • 自社のインフラストラクチャでの必要性に応じて、ポートと IP アドレスを置き換えます。
    • <CUSTOMER_ID> は、実際の顧客 ID に置き換えます。
    • /path/to/ingestion-authentication-file.json の値を、Google SecOps の取り込み認証ファイルを取得するで認証ファイルを保存したパスに更新します。

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

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

    sudo systemctl restart bindplane-agent
    
  • Windows で Bindplane エージェントを再起動するには、Services コンソールを使用するか、次のコマンドを入力します。

    net stop BindPlaneAgent && net start BindPlaneAgent
    

    ADVA FSP で Syslog 転送を構成する

  1. ADVA FSP Management Console にログインします。
  2. [Node] > [General] > [Controls] に移動します。
  3. [Remote Event Recipients (SysLog)] セクションで、[Add] をクリックします。
  4. 次の構成の詳細を指定します。
    • IPv4/v6 アドレス: Bindplane エージェントの IP アドレスを入力します。
    • ポート: Bindplane エージェントのポート番号(例: 514)を入力します。
    • プロトコル: 実際の Bindplane エージェントの構成に応じて、[UDP] または [TCP] を選択します。
    • メッセージ拡張機能: 省略可: [ユーザーラベルを追加] をクリックして、メッセージに追加の識別子を含めます。
  5. [保存] をクリックして、構成を有効にします。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
ACCESSORDER additional.fields.value.string_value この値は、未加工ログの ACCESSORDER フィールドから取得されます。
住所 principal.ip 値は、未加工ログの ADDRESS フィールドから取得され、IP アドレスとして解析されます。
ADMINSTATE additional.fields.value.string_value この値は、未加工ログの ADMINSTATE フィールドから取得されます。
AISCLIENTMDLEVEL additional.fields.value.string_value この値は、未加工ログの AISCLIENTMDLEVEL フィールドから取得されます。
AISGENENABLED additional.fields.value.string_value この値は、未加工ログの AISGENENABLED フィールドから取得されます。
AISPRIORITY additional.fields.value.string_value この値は、未加工ログの AISPRIORITY フィールドから取得されます。
AISTXPERIOD additional.fields.value.string_value この値は、未加工ログの AISTXPERIOD フィールドから取得されます。
AISTRIGGERTYPES additional.fields.value.string_value この値は、未加工ログの AISTRIGGERTYPES フィールドから取得されます。
BUFFERSIZE additional.fields.value.string_value この値は、未加工ログの BUFFERSIZE フィールドから取得されます。
CCIENABLED additional.fields.value.string_value この値は、未加工ログの CCIENABLED フィールドから取得されます。
CCMINTERFACESTATUSTLVCONTROL additional.fields.value.string_value この値は、未加工ログの CCMINTERFACESTATUSTLVCONTROL フィールドから取得されます。
CCMLTMPRIORITY additional.fields.value.string_value この値は、未加工ログの CCMLTMPRIORITY フィールドから取得されます。
CFMTAGETHERTYPE additional.fields.value.string_value この値は、未加工ログの CFMTAGETHERTYPE フィールドから取得されます。
CIR additional.fields.value.string_value この値は、未加工ログの CIR フィールドから取得されます。
COS additional.fields.value.string_value この値は、未加工ログの COS フィールドから取得されます。
CT metadata.description この値は、未加工ログの CT フィールドから取得されます。
DESTBMAC target.mac 値は、未加工ログの DESTBMAC フィールドから取得され、MAC アドレスとして解析されます。
DHCPCIDENABLED additional.fields.value.string_value この値は、未加工ログの DHCPCIDENABLED フィールドから取得されます。
DHCPENABLED additional.fields.value.string_value この値は、未加工ログの DHCPENABLED フィールドから取得されます。
DHCPHOSTNAME network.dhcp.client_hostname この値は、未加工ログの DHCPHOSTNAME フィールドから取得されます。
DHCPHOSTNAMEENABLED additional.fields.value.string_value この値は、未加工ログの DHCPHOSTNAMEENABLED フィールドから取得されます。
DHCPHOSTNAMETYPE additional.fields.value.string_value この値は、未加工ログの DHCPHOSTNAMETYPE フィールドから取得されます。
DHCPLOGSERVERENABLED additional.fields.value.string_value この値は、未加工ログの DHCPLOGSERVERENABLED フィールドから取得されます。
DHCPNTPSERVERENABLED additional.fields.value.string_value この値は、未加工ログの DHCPNTPSERVERENABLED フィールドから取得されます。
DHCPV6CIDENABLED additional.fields.value.string_value この値は、未加工ログの DHCPV6CIDENABLED フィールドから取得されます。
DHCPV6ENABLED additional.fields.value.string_value この値は、未加工ログの DHCPV6ENABLED フィールドから取得されます。
DHCPV6ROLE additional.fields.value.string_value この値は、未加工ログの DHCPV6ROLE フィールドから取得されます。
DHCPVENDORINFOTYPE additional.fields.value.string_value この値は、未加工ログの DHCPVENDORINFOTYPE フィールドから取得されます。
DIR additional.fields.value.string_value この値は、未加工ログの DIR フィールドから取得されます。
行動促進(DIRECTION) network.direction 未加工ログの DIRECTION フィールドが「UP」(大文字と小文字を区別しない)の場合は「OUTBOUND」、DIRECTION フィールドが「DOWN」の場合は「INBOUND」に設定されます。それ以外の場合は空のままになります。
ENCAPSULATIONTYPE additional.fields.value.string_value この値は、未加工ログの ENCAPSULATIONTYPE フィールドから取得されます。
GUARANTEEDA2NBW additional.fields.value.string_value この値は、未加工ログの GUARANTEEDA2NBW フィールドから取得されます。
HCOSMGMTENABLED additional.fields.value.string_value この値は、未加工ログの HCOSMGMTENABLED フィールドから取得されます。
INT additional.fields.value.string_value この値は、未加工ログの INT フィールドから取得されます。
IPMODE additional.fields.value.string_value この値は、未加工ログの IPMODE フィールドから取得されます。
IPV6ADDR principal.ip 値は、未加工ログの IPV6ADDR フィールドから取得され、IP アドレスとして解析されます。
IPV6ADDRPREFIXLENGTH additional.fields.value.string_value この値は、未加工ログの IPV6ADDRPREFIXLENGTH フィールドから取得されます。
IPV6MTU additional.fields.value.string_value この値は、未加工ログの IPV6MTU フィールドから取得されます。
ITAG additional.fields.value.string_value この値は、未加工ログの ITAG フィールドから取得されます。
ITAGENABLED additional.fields.value.string_value この値は、未加工ログの ITAGENABLED フィールドから取得されます。
LBMTXDESTTYPE additional.fields.value.string_value この値は、未加工ログの LBMTXDESTTYPE フィールドから取得されます。
LBMTXNUMMSGS additional.fields.value.string_value この値は、未加工ログの LBMTXNUMMSGS フィールドから取得されます。
LBMTXVLANDROPENABLE additional.fields.value.string_value この値は、未加工ログの LBMTXVLANDROPENABLE フィールドから取得されます。
LBMTXVLANPRIORITY additional.fields.value.string_value この値は、未加工ログの LBMTXVLANPRIORITY フィールドから取得されます。
LLRESPONDERENABLED additional.fields.value.string_value この値は、未加工ログの LLRESPONDERENABLED フィールドから取得されます。
LLVIDLIST additional.fields.value.string_value この値は、未加工ログの LLVIDLIST フィールドから取得されます。
LMDUALENDEDCOUNTALLPRIOS additional.fields.value.string_value この値は、未加工ログの LMDUALENDEDCOUNTALLPRIOS フィールドから取得されます。
LMINPROFILEONLY additional.fields.value.string_value この値は、未加工ログの LMINPROFILEONLY フィールドから取得されます。
LMRXCOUNTALLPRIOS additional.fields.value.string_value この値は、未加工ログの LMRXCOUNTALLPRIOS フィールドから取得されます。
LMTXCOUNTALLPRIOS additional.fields.value.string_value この値は、未加工ログの LMTXCOUNTALLPRIOS フィールドから取得されます。
場所 additional.fields.value.string_value この値は、未加工ログの LOC フィールドから取得されます。
LOCN additional.fields.value.string_value この値は、未加工ログの LOCN フィールドから取得されます。
LOGINTIMEOUT additional.fields.value.string_value この値は、未加工ログの LOGINTIMEOUT フィールドから取得されます。
LOOPBACKBLOCKINGENABLED additional.fields.value.string_value この値は、未加工ログの LOOPBACKBLOCKINGENABLED フィールドから取得されます。
LOOPBACKCONFIG additional.fields.value.string_value この値は、未加工ログの LOOPBACKCONFIG フィールドから取得されます。
LOOPBACKDESTMAC target.mac 値は、未加工ログの LOOPBACKDESTMAC フィールドから取得され、MAC アドレスとして解析されます。
LOOPBACKDESTMACCONTROL additional.fields.value.string_value この値は、未加工ログの LOOPBACKDESTMACCONTROL フィールドから取得されます。
LOOPBACKINNERVLAN1 additional.fields.value.string_value この値は、未加工ログの LOOPBACKINNERVLAN1 フィールドから取得されます。
LOOPBACKINNERVLAN1ENABLED additional.fields.value.string_value この値は、未加工ログの LOOPBACKINNERVLAN1ENABLED フィールドから取得されます。
LOOPBACKINNERVLAN2 additional.fields.value.string_value この値は、未加工ログの LOOPBACKINNERVLAN2 フィールドから取得されます。
LOOPBACKINNERVLAN2ENABLED additional.fields.value.string_value この値は、未加工ログの LOOPBACKINNERVLAN2ENABLED フィールドから取得されます。
LOOPBACKINNERVLAN3 additional.fields.value.string_value この値は、未加工ログの LOOPBACKINNERVLAN3 フィールドから取得されます。
LOOPBACKINNERVLAN3ENABLED additional.fields.value.string_value この値は、未加工ログの LOOPBACKINNERVLAN3ENABLED フィールドから取得されます。
LOOPBACKOUTERITAG1 additional.fields.value.string_value この値は、未加工ログの LOOPBACKOUTERITAG1 フィールドから取得されます。
LOOPBACKOUTERITAG1ENABLED additional.fields.value.string_value この値は、未加工ログの LOOPBACKOUTERITAG1ENABLED フィールドから取得されます。
LOOPBACKOUTERITAG2 additional.fields.value.string_value この値は、未加工ログの LOOPBACKOUTERITAG2 フィールドから取得されます。
LOOPBACKOUTERITAG2ENABLED additional.fields.value.string_value この値は、未加工ログの LOOPBACKOUTERITAG2ENABLED フィールドから取得されます。
LOOPBACKOUTERITAG3 additional.fields.value.string_value この値は、未加工ログの LOOPBACKOUTERITAG3 フィールドから取得されます。
LOOPBACKOUTERITAG3ENABLED additional.fields.value.string_value この値は、未加工ログの LOOPBACKOUTERITAG3ENABLED フィールドから取得されます。
LOOPBACKOUTERVLAN1 additional.fields.value.string_value この値は、未加工ログの LOOPBACKOUTERVLAN1 フィールドから取得されます。
LOOPBACKOUTERVLAN1ENABLED additional.fields.value.string_value この値は、未加工ログの LOOPBACKOUTERVLAN1ENABLED フィールドから取得されます。
LOOPBACKOUTERVLAN2 additional.fields.value.string_value この値は、未加工ログの LOOPBACKOUTERVLAN2 フィールドから取得されます。
LOOPBACKOUTERVLAN2ENABLED additional.fields.value.string_value この値は、未加工ログの LOOPBACKOUTERVLAN2ENABLED フィールドから取得されます。
LOOPBACKOUTERVLAN3 additional.fields.value.string_value この値は、未加工ログの LOOPBACKOUTERVLAN3 フィールドから取得されます。
LOOPBACKOUTERVLAN3ENABLED additional.fields.value.string_value この値は、未加工ログの LOOPBACKOUTERVLAN3ENABLED フィールドから取得されます。
LOOPBACKSOURCEMAC principal.mac 値は、未加工ログの LOOPBACKSOURCEMAC フィールドから取得され、MAC アドレスとして解析されます。
LOOPBACKSWAPSADA additional.fields.value.string_value この値は、未加工ログの LOOPBACKSWAPSADA フィールドから取得されます。
LOOPBACKTIMER additional.fields.value.string_value この値は、未加工ログの LOOPBACKTIMER フィールドから取得されます。
LOWESTPRIODEFECT additional.fields.value.string_value この値は、未加工ログの LOWESTPRIODEFECT フィールドから取得されます。
LTMTXDESTTYPE additional.fields.value.string_value この値は、未加工ログの LTMTXDESTTYPE フィールドから取得されます。
LTMTXEGRESSID metadata.product_log_id この値は、未加工ログの LTMTXEGRESSID フィールドから取得されます。
LTMTXFLAGS additional.fields.value.string_value この値は、未加工ログの LTMTXFLAGS フィールドから取得されます。
LTMTXTTL additional.fields.value.string_value この値は、未加工ログの LTMTXTTL フィールドから取得されます。
MT additional.fields.value.string_value この値は、未加工ログの MT フィールドから取得されます。
MAXIMUMA2NBW additional.fields.value.string_value この値は、未加工ログの MAXIMUMA2NBW フィールドから取得されます。
MVAL additional.fields.value.string_value この値は、未加工ログの MVAL フィールドから取得されます。
名前 additional.fields.value.string_value この値は、未加工ログの NAME フィールドから取得されます。
NC additional.fields.value.string_value この値は、未加工ログの NC フィールドから取得されます。
PORTEID additional.fields.value.string_value この値は、未加工ログの PORTEID フィールドから取得されます。
PORTLLENABLED additional.fields.value.string_value この値は、未加工ログの PORTLLENABLED フィールドから取得されます。
PRIMARYSERVER target.ip 値は、未加工ログの PRIMARYSERVER フィールドから取得され、IP アドレスとして解析されます。
PRIMARYVID additional.fields.value.string_value この値は、未加工ログの PRIMARYVID フィールドから取得されます。
QUEUEPROFILEID additional.fields.value.string_value この値は、未加工ログの QUEUEPROFILEID フィールドから取得されます。
RXSHAPEREID additional.fields.value.string_value この値は、未加工ログの RXSHAPEREID フィールドから取得されます。
SATRESPONDENABLED additional.fields.value.string_value この値は、未加工ログの SATRESPONDENABLED フィールドから取得されます。
SE additional.fields.value.string_value この値は、未加工ログの SE フィールドから取得されます。
SHAREDVIM additional.fields.value.string_value この値は、未加工ログの SHAREDVIM フィールドから取得されます。
SVLANENABLED additional.fields.value.string_value この値は、未加工ログの SVLANENABLED フィールドから取得されます。
SVLANID additional.fields.value.string_value この値は、未加工ログの SVLANID フィールドから取得されます。
SYSLOCATION principal.location.country_or_region この値は、未加工ログの SYSLOCATION フィールドから取得されます。
THVAL additional.fields.value.string_value この値は、未加工ログの THVAL フィールドから取得されます。
タイプ additional.fields.value.string_value この値は、未加工ログの TYPE フィールドから取得されます。
USERACCESSTYPE additional.fields.value.string_value この値は、未加工ログの USERACCESSTYPE フィールドから取得されます。
USERAUTHKEY additional.fields.value.string_value この値は、未加工ログの USERAUTHKEY フィールドから取得されます。
USERAUTHKEYLOCAL additional.fields.value.string_value この値は、未加工ログの USERAUTHKEYLOCAL フィールドから取得されます。
USERAUTHPROTOCOL additional.fields.value.string_value この値は、未加工ログの USERAUTHPROTOCOL フィールドから取得されます。
USERENGINEID additional.fields.value.string_value この値は、未加工ログの USERENGINEID フィールドから取得されます。
USERKEYSLOCAL additional.fields.value.string_value この値は、未加工ログの USERKEYSLOCAL フィールドから取得されます。
ユーザー名 principal.user.userid この値は、未加工ログの USERNAME フィールドから取得されます。
USERPRIVKEY additional.fields.value.string_value この値は、未加工ログの USERPRIVKEY フィールドから取得されます。
USERPRIVKEYLOCAL additional.fields.value.string_value この値は、未加工ログの USERPRIVKEYLOCAL フィールドから取得されます。
USERPRIVPROTOCOL additional.fields.value.string_value この値は、未加工ログの USERPRIVPROTOCOL フィールドから取得されます。
USERSECURITYLEVEL additional.fields.value.string_value この値は、未加工ログの USERSECURITYLEVEL フィールドから取得されます。
USERSECURITYNAME principal.user.user_display_name この値は、未加工ログの USERSECURITYNAME フィールドから取得されます。
アプリケーション principal.application 値は、grok パーサーによって抽出されたアプリケーション フィールドから取得されます。
説明 security_result.description 値は、grok パーサーによって抽出された説明フィールドから取得されます。
metadata.description 未加工ログの CT フィールドが「Backup NTP Server Failed」の場合、値は「Backup NTP Server Failed」に設定されます。
metadata.event_timestamp.seconds 値は、grok パーサーによって抽出されたタイムスタンプ フィールドから取得され、エポック秒に変換されます。
metadata.event_type 値は次のロジックに基づいて設定されます。
- network_dhcp_present が true で、principal_present または target_present のいずれかが true の場合は NETWORK_DHCP。
- target_present と principal_present の両方が true の場合は NETWORK_CONNECTION。
- user_present が true の場合は USER_RESOURCE_ACCESS。
- principal_present が true の場合は STATUS_UPDATE。
- それ以外の場合は GENERIC_EVENT。
metadata.product_log_id この値は、未加工ログの LTMTXEGRESSID フィールドから取得されます。
metadata.product_name 値は「ADVA_FSP」に設定されます。
metadata.vendor_name 値は「ADVA_FSP」に設定されます。
network.application_protocol network_dhcp_present が true で、principal_present または target_present のいずれかが true の場合、値は「DHCP」に設定されます。
principal.hostname 値は、Grok パーサーによって抽出された principal_hostname フィールドから取得され、アンダースコアが削除されます。
principal.ip 値は、未加工ログの IPADDR フィールドから取得され、IP アドレスとして解析されます。
timestamp.seconds 値は、grok パーサーによって抽出されたタイムスタンプ フィールドから取得され、エポック秒に変換されます。

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