Cisco DNA Center Platform のログを収集する

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

このドキュメントでは、2 つの異なるアプローチを使用して Cisco DNA Center Platform ログを Google Security Operations に取り込む方法について説明します。環境と要件に最適なオプションを選択します。パーサーは、Cisco DNA Center SYSLOG+JSON ログを統合データモデル(UDM)に変換します。未加工のログメッセージと JSON ペイロードからフィールドを抽出し、対応する UDM 属性にマッピングします。また、重大度や関連するエンティティなどのイベント特性に基づいて、ラベルとセキュリティ コンテキストでデータを拡充します。

始める前に

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

  • Google SecOps インスタンス
  • Cisco DNA Center Platform 管理コンソールへの特権アクセス
  • 統合方法を選択します。
    • オプション 2: Cisco DNA Center と Google SecOps Webhook エンドポイント間のネットワーク接続
    • オプション 1 の場合: Windows 2016 以降、または Bindplane エージェントのインストールに systemd を使用する Linux ホスト

オプション 1: Bindplane エージェントを使用した Syslog 統合

このオプションでは、Cisco DNA Center から Bindplane への syslog 転送を使用し、Bindplane が構造化ログを Google SecOps に転送します。

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

    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: YOUR_CUSTOMER_ID
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: 'CISCO_DNAC'
        raw_log_field: body
    
    service:
      pipelines:
        logs/source0__chronicle_w_labels-0:
          receivers:
            - udplog
          exporters:
            - chronicle/chronicle_w_labels
    
    • 自社のインフラストラクチャでの必要性に応じて、ポートと IP アドレスを置き換えます。
    • <YOUR_CUSTOMER_ID> は、実際の顧客 ID に置き換えます。
    • /path/to/ingestion-authentication-file.json の値を、Google SecOps の取り込み認証ファイルを取得するで認証ファイルを保存したパスに更新します。
    • この構成では、Bindplane エージェントの Syslog(UDP)レシーバを使用して、DNA Center から構造化された Syslog メッセージを収集します。

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

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

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

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Cisco DNA Center Platform で Syslog 転送を構成する

  1. Cisco DNA Center Platform にログインします。
  2. [System] > [Settings] > [External Services] > [Destinations] > [Syslog] に移動します。
  3. [+ 追加] をクリックして、新しい syslog 宛先を作成します。
  4. 次の構成の詳細を入力します。
    • 名前: わかりやすい名前を入力します(例: Google SecOps BindPlane)。
    • ホスト: BindPlane エージェントの IP アドレスを入力します。
    • ポート: 514(または BindPlane で構成されたポート)を入力します。
    • プロトコル: BindPlane の構成に応じて、[UDP] または [TCP] を選択します。
    • ファシリティ: 適切なファシリティ(Local0 など)を選択します。
    • 重大度: すべてのイベントレベルをキャプチャするには、[情報] を選択します。
  5. [保存] をクリックします。

オプション 2: リアルタイムの Webhook 統合

このオプションでは、Cisco DNA Center のネイティブ Webhook 機能を使用して、構造化された JSON イベントをリアルタイムで Google SecOps に直接配信します。

概要

Cisco DNA Center は、リアルタイム イベント配信用の Webhook 通知をネイティブでサポートしています。このオプションでは、豊富なイベント コンテキストを含む構造化された JSON ペイロードが提供され、Bindplane を介さずにイベントが Google SecOps に直接配信されます。

Google SecOps Webhook フィードを構成する

  1. Google SecOps で、[SIEM 設定] > [フィード] に移動します。
  2. [+ 新しいフィードを追加] をクリックします。
  3. [フィード名] フィールドに、フィードの名前を入力します(例: Cisco DNA Center Webhook)。
  4. [Source type] として [Webhook] を選択します。
  5. [ログタイプ] として [Cisco DNA Center Platform] を選択します。
  6. [次へ] をクリックします。
  7. 次の入力パラメータの値を指定します。
    • 分割区切り文字: 省略可能な \n
    • アセットの名前空間: アセットの名前空間
    • Ingestion labels: このフィードのイベントに適用されるラベル。
  8. [次へ] をクリックします。
  9. フィードの設定を確認し、[送信] をクリックします。
  10. [秘密鍵を生成する] をクリックして、このフィードを認証するためのシークレット キーを生成します。
  11. このシークレットは再び表示できないため、秘密鍵をコピーして保存します。
  12. [詳細] タブに移動します。
  13. [エンドポイント情報] フィールドから、フィードのエンドポイント URL をコピーします。
  14. [完了] をクリックします。

Webhook フィード用の API キーを作成する

  1. Google Cloud コンソールの [認証情報] ページに移動します。
  2. [認証情報を作成] をクリックして [API キー] を選択します。
  3. API キーのアクセスGoogle SecOps API に制限します。

Cisco DNA Center で Webhook の宛先を構成する

  1. Cisco DNA Center Platform にログインします。
  2. [System> Settings> External Services> Destinations> Webhook] に移動します。
  3. [+ 追加] をクリックして、新しい Webhook の宛先を作成します。
  4. 次の構成の詳細を入力します。
    • 名前: わかりやすい名前を入力します(例: Google SecOps Webhook)。
    • 説明: ウェブフックの説明を入力します。
    • URL: 前の手順で取得した Google SecOps Webhook エンドポイント URL を入力します。
    • Method: [POST] を選択します。
    • 証明書を信頼する: 自己署名証明書を使用する場合は、[いいえ] を選択します。
    • Headers: 必要なヘッダーを追加します。
      • コンテンツ タイプ: application/json
      • X-goog-api-key: 自分の Google Cloud API キー
      • X-Webhook-Access-Key: Google SecOps フィードの秘密鍵
  5. [Test Connection] をクリックして、接続を確認します。
  6. [保存] をクリックします。

Webhook 通知にイベントを登録する

  1. Cisco DNA Center で、[Platform] > [Developer Toolkit] > [Event Notifications] に移動します。
  2. [+ チャンネル登録] をクリックします。
  3. 次の構成の詳細を入力します。
    • サブスクリプション名: わかりやすい名前を入力します(例: Google SecOps Events)。
    • コネクタのタイプ: [REST エンドポイント] を選択します。
    • 宛先: 前の手順で作成した Webhook の宛先を選択します。
  4. モニタリングするイベントタイプを選択します。
    • ネットワーク イベント: デバイスに到達できない、インターフェースがダウンしている、構成が変更された。
    • セキュリティ イベント: セキュリティ ポリシー違反、認証の失敗。
    • システム イベント: プラットフォーム イベント、ソフトウェア アップデート、メンテナンス。
    • 保証イベント: パフォーマンスの低下、接続の問題。
  5. 必要に応じてイベント フィルタを構成します。
    • 重大度: 最小重大度レベル(P1P2 など)を選択します。
    • ドメイン: 特定のドメイン(接続パフォーマンスなど)でフィルタします。
  6. [登録] をクリックします。

UDM マッピング テーブル

ログフィールド UDM マッピング 論理
category security_result.severity_details 未加工ログの category フィールドから直接マッピングされます。
ciscoDnaEventLink target.url 未加工ログの ciscoDnaEventLink フィールドから直接マッピングされます。
date_time metadata.event_timestamp Grok パターンを使用して未加工のログ メッセージから抽出され、タイムスタンプ形式に変換されます。
details.Assurance_Issue_Category security_result.about.resource.attribute.labels[].value 未加工ログの details.Assurance_Issue_Category フィールドから直接マッピングされます。このラベルのキーは「Assurance_Issue_Category」です。
details.Assurance_Issue_Details security_result.summary 未加工ログの details.Assurance_Issue_Details フィールドから直接マッピングされます。
details.Assurance_Issue_Name security_result.about.resource.attribute.labels[].value 未加工ログの details.Assurance_Issue_Name フィールドから直接マッピングされます。このラベルのキーは「Assurance_Issue_Name」です。
details.Assurance_Issue_Priority security_result.about.resource.attribute.labels[].value 未加工ログの details.Assurance_Issue_Priority フィールドから直接マッピングされます。このラベルのキーは「Assurance_Issue_Priority」です。
details.Assurance_Issue_Status security_result.about.resource.attribute.labels[].value 未加工ログの details.Assurance_Issue_Status フィールドから直接マッピングされます。このラベルのキーは「Assurance_Issue_Status」です。
details.Device target.ip OR target.hostname 未加工ログの details.Device フィールドからマッピングされます。値が IP アドレスの場合は target.ip にマッピングされ、それ以外の場合は target.hostname にマッピングされます。
dnacIp target.ip IP アドレスの場合、未加工ログの dnacIp フィールドから直接マッピングされます。
ドメイン additional.fields[].value.string_value 未加工ログの domain フィールドから直接マッピングされます。このフィールドのキーは「domain」です。
eventId metadata.product_event_type 未加工ログの eventId フィールドから直接マッピングされます。
instanceId target.resource.product_object_id 未加工ログの instanceId フィールドから直接マッピングされます。
name target.resource.attribute.labels[].value 未加工ログの name フィールドから直接マッピングされます。このラベルのキーは「name」です。
namespace target.namespace 未加工ログの namespace フィールドから直接マッピングされます。
network.deviceId target.asset.asset_id 未加工ログの network.deviceId フィールドから直接マッピングされ、「deviceId: 」という接頭辞が付いています。
注意事項 additional.fields[].value.string_value 未加工ログの note フィールドから直接マッピングされます。このフィールドのキーは「note」です。
metadata.event_type has_principalhas_targetuserId フィールドの有無と値に基づいて決定されます。有効な値: NETWORK_CONNECTION、USER_UNCATEGORIZED、STATUS_UPDATE、GENERIC_EVENT。
is_alert 重大度が 0 または 1 の場合は True、それ以外の場合は False。
is_significant 重大度が 0 または 1 の場合は True、それ以外の場合は False。
重要度 security_result.severityis_alertis_significant の値を決定するために使用されます。
ソース target.resource.attribute.labels[].value 未加工ログの source フィールドから直接マッピングされます。このラベルのキーは「source」です。
src_ip principal.ip Grok パターンを使用して未加工のログ メッセージから抽出されます。
subDomain additional.fields[].value.string_value 未加工ログの subDomain フィールドから直接マッピングされます。このフィールドのキーは「subDomain」です。
tntId target.resource.attribute.labels[].value 未加工ログの tntId フィールドから直接マッピングされます。このラベルのキーは「tntId」です。
type target.resource.attribute.labels[].value 未加工ログの type フィールドから直接マッピングされます。このラベルのキーは「type」です。
userId target.user.userid 未加工ログの userId フィールドから直接マッピングされます。
version metadata.product_version 未加工ログの version フィールドから直接マッピングされます。

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