Arista スイッチのログを収集する

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

このパーサーは、Arista スイッチログからフィールドを抽出し、JSON 形式と syslog 形式の両方を処理します。Grok パターンを使用してさまざまなログ メッセージ タイプを解析し、抽出されたフィールドを UDM にマッピングし、抽出された詳細情報に基づいてイベントタイプ、重大度、プリンシパル/ターゲット情報などのメタデータでイベントを拡充します。

始める前に

  • Google SecOps インスタンスがあることを確認します。
  • Windows 2016 以降、または systemd を使用する Linux ホストを使用していることを確認します。
  • プロキシの背後で実行している場合は、ファイアウォール ポートが開いていることを確認します。
  • インストールされ、アクセス可能な Arista EOS 4.23.x 以降。
  • Arista EOS Switch への特権アクセス権があることを確認します。

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

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [コレクション エージェント] に移動します。
  3. Ingestion Authentication File をダウンロードします。Bindplane をインストールするシステムにファイルを安全に保存します。

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

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

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 ファイルを次のように編集します。

    receivers:
        udplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            ingestion_labels:
                log_type: ARISTA_SWITCH
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. 自社のインフラストラクチャでの必要性に応じて、ポートと IP アドレスを置き換えます。

  4. <customer_id> は、実際の顧客 ID に置き換えます。

  5. /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
    

Arista スイッチで Syslog を構成する

  1. Arista スイッチにログインします。
  2. 構成モードに移動します。

    Arista# config terminal
    
  3. 次の構成でスイッチを設定し、Bindplane エージェントにログを送信します。

    Arista(config)# logging host <bindplane-server-ip> <port-number> protocol [tcp/udp]
    Arista(config)# logging trap information
    Arista(config)# copy running-config startup-config
    
    * Replace `<bindplane-server-ip>` with Bindplane agent IP address and `<port-number>` with the port configured to listen.
    
  4. コマンド実行ログの追加構成を入力します。

    Arista (config)# aaa accounting commands all console start-stop logging
    Arista (config)# aaa accounting commands all default start-stop logging
    Arista (config)# aaa accounting exec console start-stop logging
    Arista (config)# aaa accounting exec default start-stop logging
    Arista (config)# copy running-config startup-config
    
  5. ログオン ログの追加構成を入力します。

    Arista (config)# aaa authentication policy on-success log
    Arista (config)# aaa authentication policy on-failure log
    Arista (config)# copy running-config startup-config
    

UDM マッピング テーブル

ログフィールド UDM マッピング 論理
appname target.application appname フィールドから直接マッピングされます。
description metadata.description description フィールドから直接マッピングされます。このフィールドは、product_event_type に基づく Grok パターンを使用して message フィールドから抽出されます。
dst_ip target.iptarget.asset.ip dst_ip フィールドから直接マッピングされます。このフィールドは、Grok パターンを使用して message フィールドから抽出されます。
dst_mac target.mac dst_mac フィールドから直接マッピングされます。このフィールドは、Grok パターンを使用して message フィールドから抽出されます。
dst_port target.port dst_port フィールドから直接マッピングされます。このフィールドは、Grok パターンを使用して message フィールドから抽出されます。
facility additional.fields[facility].string_value facility フィールドから直接マッピングされます。
hostname principal.hostnameprincipal.asset.hostname hostname フィールドから直接マッピングされます。
inner_msg metadata.description inner_msg フィールドから直接マッピングされます。このフィールドは、Grok パターンを使用して message フィールドから抽出されます。
ip_protocol network.ip_protocol ip_protocol フィールドから直接マッピングされます。このフィールドは、Grok パターンを使用して message フィールドから抽出されます。値が「tcp」の場合、「TCP」に変換されます。イベントタイプが「NO_IGMP_QUERIER」の場合、「IGMP」に設定されます。
pid principal.process.pid pid フィールドから直接マッピングされます。このフィールドは、Grok パターンを使用して message フィールドから抽出されます。
prin_ip principal.ipprincipal.asset.ip prin_ip フィールドから直接マッピングされます。このフィールドは、Grok パターンを使用して message フィールドから抽出されます。
product_event_type metadata.product_event_type product_event_type フィールドから直接マッピングされます。このフィールドは、Grok パターンを使用して message フィールドから抽出されます。
proto network.application_protocol proto フィールドが「sshd」の場合、UDM フィールドは「SSH」に設定されます。
severity security_result.severitysecurity_result.severity_details security_result.severity は、次のマッピングに基づいて severity フィールドから導出されます。「DEFAULT」、「DEBUG」、「INFO」、「NOTICE」->「INFORMATIONAL」、「WARNING」、「ERROR」、「ERR」、「WARN」->「MEDIUM」、「CRITICAL」、「ALERT」、「EMERGENCY」->「HIGH」。severity の未加工の値は security_result.severity_details にマッピングされます。
session_id network.session_id session_id フィールドから直接マッピングされます。このフィールドは、Grok パターンを使用して message フィールドから抽出されます。
source_ip principal.ipprincipal.asset.ip source_ip フィールドから直接マッピングされます。このフィールドは、Grok パターンを使用して message フィールドから抽出されます。
source_port principal.port source_port フィールドから直接マッピングされます。このフィールドは、Grok パターンを使用して message フィールドから抽出されます。
src_ip principal.ipprincipal.asset.ip src_ip フィールドから直接マッピングされます。このフィールドは、Grok パターンを使用して message フィールドから抽出されます。
table_name target.resource.name table_name フィールドから直接マッピングされます。このフィールドは、Grok パターンを使用して message フィールドから抽出されます。このフィールドに値が入力されている場合、target.resource.resource_type は「TABLE」に設定されます。
target_host target.hostnametarget.asset.hostname target_host フィールドから直接マッピングされます。このフィールドは、Grok パターンを使用して message フィールドから抽出されます。
target_ip target.iptarget.asset.ip target_ip フィールドから直接マッピングされます。このフィールドは、Grok パターンを使用して message フィールドから抽出されます。
target_package target.process.command_line target_package フィールドから直接マッピングされます。このフィールドは、Grok パターンを使用して message フィールドから抽出されます。
target_port target.port target_port フィールドから直接マッピングされます。このフィールドは、Grok パターンを使用して message フィールドから抽出されます。
timestamp metadata.event_timestamp タイムスタンプ オブジェクトに解析された後、timestamp フィールドから直接マッピングされます。
user principal.user.userid user フィールドから直接マッピングされます。このフィールドは、Grok パターンを使用して message フィールドから抽出されます。
user_name target.user.userid user_name フィールドから直接マッピングされます。このフィールドは、Grok パターンを使用して message フィールドから抽出されます。
vrf additional.fields[vrf].string_value vrf フィールドから直接マッピングされます。このフィールドは、Grok パターンを使用して message フィールドから抽出されます。パーサーコードに記載されている複雑な条件ロジックを使用して、has_principalhas_targetusermessageproduct_event_typedescription フィールドの組み合わせから導出されます。デフォルト値は「GENERIC_EVENT」です。「ARISTA_SWITCH」にハードコードされています。「Arista Switch」にハードコードされています。「Arista」にハードコードされます。description フィールドに「connection rejected」が含まれている場合は、「BLOCK」に設定されます。
dpid additional.fields[DPID].string_value dpid フィールドから直接マッピングされます。
intf additional.fields[intf].string_value intf フィールドから直接マッピングされます。

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