Cisco Prime ログを収集する

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

このドキュメントでは、Bindplane を使用して Cisco Prime ログを Google Security Operations に取り込む方法について説明します。パーサーは Grok パターンを使用して、さまざまな Syslog メッセージ形式からフィールドを抽出し、統合データモデル(UDM)にマッピングします。キーと値のペアなど、さまざまなログ構造を処理し、ログ メッセージ内で見つかった特定のキーワードとパターンに基づいて、ユーザー、プリンシパル、ターゲット、セキュリティ情報でデータを拡充します。

始める前に

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

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

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. 構成ファイルにアクセスします。
    • config.yaml ファイルを見つけます。通常、Linux では /etc/bindplane-agent/ ディレクトリに、Windows ではインストール ディレクトリにあります。
    • テキスト エディタ(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_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_PRIME'
            raw_log_field: body
            ingestion_labels:
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                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
    

変更監査通知を構成し、syslog レシーバを構成する

  1. 次のイベントに関連する変更監査の syslog 通知を送信するようにシステムを構成できます。

    • デバイス一覧の更新
    • 構成の変更
    • 構成テンプレートの変更
    • テンプレート関連のオペレーション
    • ログイン、ログアウト、アカウントの変更などのユーザー アクティビティ
  2. Cisco Prime のウェブ UI にログインします。

  3. [Administration] > [Settings] > [System Settings] に移動します。

  4. [メールと通知] > [監査通知の変更] を選択します。

  5. [Enable Change Audit Notification] チェックボックスをオンにします。

  6. [+] ボタンをクリックして、syslog サーバーを指定します。

  7. 次の構成情報を提供してください。

    • Bindplane エージェントの IP アドレスを入力します。
    • [UDP] プロトコルを選択します。
    • Bindplane エージェントのポート番号を入力します。
  8. [保存] をクリックします。

転送システム監査ログを syslog として構成する

  1. Cisco Prime のウェブ UI にログインします。
  2. [Administration] > [Settings] > [Logging] > [Syslog Logging Options] に移動します。
  3. [Syslog を有効にする] チェックボックスをオンにします。
  4. 次の構成の詳細を入力します。
    • Bindplane エージェントの IP アドレスを入力します。
    • [UDP] プロトコルを選択します。
    • Bindplane エージェントのポート番号を入力します。
    • 8 つの施設または local0 のいずれかを選択します。
  5. [保存] をクリックします。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
client_ip_address principal.ip、principal.asset.ip 値は、kv フィルタを使用して未加工ログから抽出された client_ip_address フィールドから取得されます。
日付 metadata.event_timestamp 値は date フィールドから取得されます。このフィールドは、grok パターンを使用して未加工ログから抽出され、日付フィルタを使用してタイムスタンプに変換されます。
説明 security_result.description 値は、grok パターンを使用して未加工ログから抽出された description フィールドから取得されます。
dest_mac target.mac 値は dest_mac フィールドから取得されます。このフィールドは、Grok パターンを使用して未加工ログから抽出され、小文字に変換されます。
device_id principal.asset_id 値は、grok パターンを使用して未加工ログから抽出された device_id フィールドから取得されます。最終的な値は「Device ID:"」の形式になります。
device_ip principal.ip、principal.asset.ip 値は、kv フィルタを使用して未加工ログから抽出された device_ip フィールドから取得されます。値は JSON 配列として解析され、配列内の各 IP アドレスが UDM フィールドに追加されます。
device_type target.resource.attribute.labels.value 値は、grok パターンを使用して未加工ログから抽出された device_type フィールドから取得されます。
dst_user target.user.userid 値は、grok パターンを使用して未加工ログから抽出された dst_user フィールドから取得されます。
メール src.hostname 値は、grok パターンを使用して未加工ログから抽出された email フィールドから取得されます。
file_path principal.process.file.full_path 値は、grok パターンを使用して未加工ログから抽出された file_path フィールドから取得されます。
hostname target.resource.attribute.labels.value 値は、grok パターンを使用して未加工ログから抽出された hostname フィールドから取得されます。
id principal.asset_id 値は、grok パターンを使用して未加工ログから抽出された id フィールドから取得されます。最終値は「Entity ID:」の形式になります。
ip_address principal.ip、principal.asset.ip 値は、grok パターンを使用して未加工ログから抽出された ip_address フィールドから取得されます。
log_level security_result.severity 値は、grok パターンを使用して未加工ログから抽出された log_level フィールドから取得されます。severity が存在しない場合、重大度レベルを決定するために使用されます。
mac_address principal.mac、source_mac 値は mac_address フィールドから取得されます。このフィールドは、Grok パターンを使用して未加工ログから抽出され、小文字に変換されます。source_mac が空の場合、source_mac の値としても使用されます。
oid principal.asset.product_object_id 値は、grok パターンを使用して未加工ログから抽出された oid フィールドから取得されます。
principal_ip principal.ip、principal.asset.ip 値は、grok パターンを使用して未加工ログから抽出された principal_ip フィールドから取得されます。
principal_port principal.port 値は、Grok パターンを使用して未加工ログから抽出され、整数に変換された principal_port フィールドから取得されます。
process_name principal.resource.name 値は、grok パターンを使用して未加工ログから抽出された process_name フィールドから取得されます。
sec_description security_result.description 値は、grok パターンを使用して未加工ログから抽出された sec_description フィールドから取得されます。
session_id network.session_id 値は、grok パターンを使用して未加工ログから抽出された session_id フィールドから取得されます。
重要度 security_result.severity 値は、grok パターンを使用して未加工ログから抽出された severity フィールドから取得されます。存在する場合、重大度レベルの決定に使用されます。
source_mac principal.mac 値は source_mac フィールドから取得されます。このフィールドは、Grok パターンを使用して未加工ログから抽出され、小文字に変換されます。空の場合、mac_address の値が使用されます。
概要 security_result.summary 値は、grok パターンを使用して未加工ログから抽出された summary フィールドから取得されます。
target_ip target.ip、target.asset.ip 値は、grok パターンを使用して未加工ログから抽出された target_ip フィールドから取得されます。
thread_pool metadata.product_event_type 値は、grok パターンを使用して未加工ログから抽出された thread_pool フィールドから取得されます。
timestamp metadata.event_timestamp 値は timestamp フィールドから取得されます。このフィールドは、grok パターンを使用して未加工ログから抽出され、日付フィルタを使用してタイムスタンプに変換されます。
タイプ metadata.product_event_type 値は、kv フィルタを使用して未加工ログから抽出された Type フィールドから取得されます。
user_name principal.user.userid 値は、grok パターンまたは kv フィルタを使用して未加工ログから抽出された user_name フィールドから取得されます。
metadata.event_type metadata.event_type この値は、未加工ログ内の特定のフィールドとパターンの有無に基づいて決定されます。ロジックには、
- デフォルト値: GENERIC_EVENT
- thread_pool が「EmailAlertHelper」の場合: EMAIL_TRANSACTION
- application_name が「aesSystem」で、desc に「HealthMonitorHelper」が含まれている場合: STATUS_HEARTBEAT
- user_presenttarget_resource_present の両方が true の場合: USER_RESOURCE_ACCESS
- user_present が true の場合: USER_UNCATEGORIZED
- principal_presenttarget_present の両方が true の場合: NETWORK_CONNECTION
- principal_present が true の場合: STATUS_UPDATE
- dst_user が存在し、description に「logout」が含まれている場合: USER_LOGOUT
- dst_user が存在し、description に「logout」が含まれていない場合: USER_LOGIN が含まれます。
metadata.vendor_name metadata.vendor_name 値は「CISCO」に設定されます。
metadata.product_name metadata.product_name 値は「CISCO_PRIME」に設定されます。
metadata.log_type metadata.log_type 値は「CISCO_PRIME」に設定されます。
network.session_id network.session_id 値は、grok パターンを使用して未加工ログから抽出された session_id フィールドから取得されます。
principal.application principal.application 値は、grok パターンを使用して未加工ログから抽出された application_name フィールドから取得されます。
principal.asset.ip principal.asset.ip 値は、client_ip_addressdevice_ipip_addressprincipal_iptarget_ip のフィールドから取得できます。
principal.asset.product_object_id principal.asset.product_object_id 値は、grok パターンを使用して未加工ログから抽出された oid フィールドから取得されます。
principal.asset_id principal.asset_id 値は、device_idid のいずれかのフィールドから取得できます。
principal.ip principal.ip 値は、client_ip_addressdevice_ipip_addressprincipal_ip のフィールドから取得できます。
principal.mac principal.mac 値は、mac_addresssource_mac のいずれかのフィールドから取得できます。
principal.port principal.port 値は、Grok パターンを使用して未加工ログから抽出され、整数に変換された principal_port フィールドから取得されます。
principal.process.file.full_path principal.process.file.full_path 値は、grok パターンを使用して未加工ログから抽出された file_path フィールドから取得されます。
principal.resource.name principal.resource.name 値は、grok パターンを使用して未加工ログから抽出された process_name フィールドから取得されます。
principal.user.userid principal.user.userid 値は、grok パターンまたは kv フィルタを使用して未加工ログから抽出された user_name フィールドから取得されます。
security_result.action security_result.action description に「fail」が含まれている場合、値は「BLOCK」に設定されます。
security_result.description security_result.description 値は、descdescriptionsec_description のフィールドから取得できます。
security_result.severity security_result.severity 値は、log_levelseverity のいずれかのフィールドから取得できます。
security_result.summary security_result.summary 値は、grok パターンを使用して未加工ログから抽出された summary フィールドから取得されます。
src.hostname src.hostname 値は、grok パターンを使用して未加工ログから抽出された email フィールドから取得されます。
target.asset.ip target.asset.ip 値は、grok パターンを使用して未加工ログから抽出された target_ip フィールドから取得されます。
target.ip target.ip 値は、grok パターンを使用して未加工ログから抽出された target_ip フィールドから取得されます。
target.mac target.mac 値は dest_mac フィールドから取得されます。このフィールドは、Grok パターンを使用して未加工ログから抽出され、小文字に変換されます。
target.resource.attribute.labels.key target.resource.attribute.labels.key 値は、コンテキストに応じて「デバイスタイプ」または「デバイス ホスト名」に設定されます。
target.resource.attribute.labels.value target.resource.attribute.labels.value 値は、device_typehostname のいずれかのフィールドから取得できます。
target.user.userid target.user.userid 値は、grok パターンを使用して未加工ログから抽出された dst_user フィールドから取得されます。
extensions.auth.mechanism extensions.auth.mechanism dst_user が存在し、description に「password」が含まれている場合、値は「USERNAME_PASSWORD」に設定されます。
extensions.auth.type extensions.auth.type dst_user が存在する場合は、「MACHINE」に設定されます。

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