Cisco VCS のログを収集する

パーサーのバージョン: 2.0

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

このドキュメントでは、Bindplane を使用して Cisco VCS(Video Communication Service)(ExpressWay で制御)のログを Google Security Operations に取り込む方法について説明します。 パーサーは、Syslog メッセージからフィールドを抽出し、統合データモデル(UDM)に正規化して、IP アドレス、ポート、アクションなどの抽出された詳細に基づいてイベントタイプを分類します。さまざまなログ形式を処理し、Key-Value ペアを抽出し、セキュリティ分析のために重大度レベルを標準化された値にマッピングします。

始める前に

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

  • Google SecOps インスタンス
  • Windows 2016 以降、または systemd を使用する Linux ホスト
  • プロキシの背後で実行している場合は、ファイアウォール ポート が開いている
  • Cisco ExpressWay への特権アクセス

Bindplane エージェントの Google SecOps 認証情報を取得する

Bindplane エージェントを Google SecOps に対して認証するには、次のいずれかの方法を選択します。

  • 新しいデプロイ: Chronicle API を使用します(オプション 1)。
  • 従来のデプロイ: Ingestion API が 2027 年 7 月 20 日に廃止されるまで、取り込み認証ファイル(オプション 2)の使用を続けます。
  1. Google Cloud コンソールにログインし、Google SecOps インスタンスにリンクされている Google Cloud プロジェクトを選択します。
  2. [IAM と管理]> [サービス アカウント] に移動します。
  3. [サービス アカウントを作成] をクリックします。
  4. 次の構成情報を指定します。
    • サービス アカウント名: アカウントの名前を入力します(例: bindplane-ingest)。
    • サービス アカウントの説明: 説明を入力します(例: Bindplane agent log ingestion)。
  5. [作成して続行] をクリックします。
  6. [このサービス アカウントにプロジェクトへのアクセスを許可する] セクションで、[ロールを選択] をクリックし、[Chronicle 編集者] を選択します。
  7. [**続行**] をクリックして [**完了**] をクリックします。
  8. 作成したサービス アカウントをクリックし、[キー] タブに移動します。
  9. [鍵を追加] > [新しい鍵を作成] の順にクリックします。
  10. [JSON] を選択し、[作成] をクリックします。キーファイルがパソコンにダウンロードされます。
  11. キーファイルを Bindplane コレクタ ディレクトリ(Linux の場合は /opt/observiq-otel-collector/ingestion-auth.json、Windows の場合は C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json)に ingestion-auth.json として保存するか、保存したパスに合わせて config.yaml の creds_file_path を更新します。
  12. [IAM と管理][>][設定] に移動し、[プロジェクト番号] をコピーします。エクスポート構成に必要になります。

オプション 2: 取り込み認証ファイルをダウンロードする(レガシー)

  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
    

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. 構成ファイルにアクセスします。
    • config.yaml ファイルを見つけます。通常、Linux では /opt/observiq-otel-collector/ ディレクトリに、Windows ではインストール ディレクトリにあります。
    • テキスト エディタ(nano、vi、メモ帳など)を使用してファイルを開きます。
  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:
            protocol: https
            # Region of your instance, for example us, europe, asia-southeast1
            location: <LOCATION>
            # Project number of the Google Cloud project linked to the instance
            project: '<PROJECT_NUMBER>'
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds_file_path: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: chronicle.googleapis.com
            # Add optional ingestion labels for better organization
            log_type: 'CISCO_VCS'
            raw_log_field: body
            ingestion_labels:
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
    • 自社のインフラストラクチャでの必要性に応じて、ポートと IP アドレスを置き換えます。
    • <LOCATION> は、Google SecOps インスタンスのリージョン(us、europe、asia-southeast1 など)に置き換えます。エクスポーターは、この値で chronicle.googleapis.com に接頭辞を付けます。
    • <PROJECT_NUMBER> は、[IAM と管理] > [設定] のプロジェクト番号に置き換えます。
    • <customer_id> は、実際のお客様 ID に置き換えます。
    • /path/to/ingestion-authentication-file.json は、Bindplane エージェントの Google SecOps 認証情報を取得するでサービス アカウント キーファイル(オプション 1)を保存したパスに更新します。

従来の Ingestion API エクスポーター

  • オプション 2 の取り込み認証ファイルを使用する場合は、exporters ブロックを次のように置き換えます。creds_file_path を取り込み認証ファイルのパスに設定し、インスタンスが米国以外にある場合は、malachiteingestion-pa.googleapis.com を リージョン エンドポイント(europe-malachiteingestion-pa.googleapis.com など)に置き換えます。

    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds_file_path: '/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
            log_type: 'CISCO_VCS'
            raw_log_field: body
            ingestion_labels:
    

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

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

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

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Cisco ExpressWay の Syslog を構成する

  1. Cisco ExpressWay ウェブ UI にログインします。
  2. [Maintenance] > [Logging] に移動します。
  3. Bindplane エージェントの IP アドレスをリモート Syslog サーバー として入力します。
  4. [Options] をクリックします。
  5. 次の構成情報を指定します。
    • Transport: [UDP] を選択します。
    • ポート: Bindplane エージェントのポート番号を入力します。
    • [Message Format]: [BSD] を選択します。もう 1 つのオプションは [IETF] です。
    • Filter by Severity: [Informational] を選択します。
  6. [Save] をクリックします。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
アクション read_only_udm.security_result.action_details 未加工ログの Action フィールドの値。
コード read_only_udm.network.http.response_code 未加工ログの Code フィールドの値(整数に変換)。Response-code が存在しない場合に使用されます。
詳細 read_only_udm.security_result.description 未加工ログの Detail フィールドの値。
宛先 IP read_only_udm.target.ip 未加工ログの Dst-ip フィールドの値。Action が Received でない場合に使用されます。
宛先ポート read_only_udm.target.port 未加工ログの Dst-port フィールドの値(整数に変換)。Action が Received でない場合に使用されます。
イベント read_only_udm.metadata.product_event_type 未加工ログの Event フィールドの値。
レベル read_only_udm.security_result.severity_details 未加工ログの Level フィールドの値。
レベル read_only_udm.security_result.severity 未加工ログの Level フィールドの値に基づいてマッピングされます。
- 9、10、VERY-HIGH: CRITICAL
- error、warning、7、8、HIGH: HIGH
- notice、4、5、6、MEDIUM: MEDIUM
- information、info、0、1、2、3、LOW: LOW
ローカル IP read_only_udm.principal.ip 未加工ログの Local-ip フィールドの値。Action が Received でない場合に使用されます。
ローカル IP read_only_udm.target.ip 未加工ログの Local-ip フィールドの値。Action が Received の場合に使用されます。
ローカルポート read_only_udm.principal.port 未加工ログの Local-port フィールドの値(整数に変換)。Action が Received でない場合に使用されます。
ローカルポート read_only_udm.target.port 未加工ログの Local-port フィールドの値(整数に変換)。Action が Received の場合に使用されます。
メソッド read_only_udm.network.http.method 未加工ログの Method フィールドの値。
モジュール read_only_udm.additional.fields.value.string_value 未加工ログの Module フィールドの値。
ノード read_only_udm.additional.fields.value.string_value 未加工ログの Node フィールドの値。
プロトコル read_only_udm.network.ip_protocol 未加工ログの Protocol フィールドの値。parse_ip_protocol.include ロジックを使用して解析され、対応する IP プロトコル名にマッピングされます。
レスポンス コード read_only_udm.network.http.response_code 未加工ログの Response-code フィールドの値(整数に変換)。
送信元 IP read_only_udm.principal.ip 未加工ログの Src-ip フィールドの値。Action が Received の場合に使用されます。
送信元 IP read_only_udm.principal.ip 未加工ログの Src-ip フィールドの値。Action が Received でなく、Local-ip が存在しない場合に使用されます。
送信元ポート read_only_udm.principal.port 未加工ログの Src-port フィールドの値(整数に変換)。Action が Received の場合に使用されます。
送信元ポート read_only_udm.principal.port 未加工ログの Src-port フィールドの値(整数に変換)。Action が Received でなく、Local-port が存在しない場合に使用されます。
アプリケーション read_only_udm.target.application 未加工ログの application フィールドの値。
説明 read_only_udm.security_result.description 未加工ログの description フィールドの値。
inner_msg read_only_udm.security_result.description 未加工ログの inner_msg フィールドの値。inner_msg_grok_failure が発生した場合に使用されます。
principal_hostname read_only_udm.principal.hostname 未加工ログの principal_hostname フィールドの値。
timestamp read_only_udm.metadata.event_timestamp.seconds 未加工ログの timestamp フィールドから抽出されたエポック タイムスタンプ。
timestamp read_only_udm.events.timestamp.seconds 未加工ログの timestamp フィールドから抽出されたエポック タイムスタンプ。
read_only_udm.additional.fields.key ハードコードされた値: Module、Node
read_only_udm.metadata.log_type ハードコードされた値: CISCO_VCS
read_only_udm.metadata.product_name ハードコードされた値: CISCO VCS
read_only_udm.metadata.vendor_name ハードコードされた値: CISCO VCS
read_only_udm.metadata.event_type Action、Src-ip、principal_hostname、Local-ip、Dst-ip フィールドの値に基づいて決定されます。
- NETWORK_CONNECTION: (Action が Received で Local-ip が存在する場合)または(Action が Received でなく Dst-ip が存在する場合)
- STATUS_UPDATE: 上記以外の場合

変更ログ

このパーサーの変更ログを表示する

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