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 の取り込み認証ファイルを取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [コレクション エージェント] に移動します。
- Ingestion Authentication File をダウンロードします。Bindplane をインストールするシステムにファイルを安全に保存します。
Google SecOps のお客様 ID を取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [プロファイル] に移動します。
- [組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。
Bindplane エージェントをインストールする
次の手順に沿って、Windows または Linux オペレーティング システムに Bindplane エージェントをインストールします。
Windows のインストール
- 管理者として コマンド プロンプトまたは PowerShell を開きます。
次のコマンドを実行します。
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Linux のインストール
- root 権限または sudo 権限でターミナルを開きます。
次のコマンドを実行します。
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
その他のインストール リソース
- その他のインストール オプションについては、こちらのインストール ガイドをご覧ください。
Syslog を取り込んで Google SecOps に送信するように Bindplane エージェントを構成する
構成ファイルにアクセスします。
config.yaml
ファイルを見つけます。通常、Linux では/etc/bindplane-agent/
ディレクトリに、Windows ではインストール ディレクトリにあります。- テキスト エディタ(
nano
、vi
、メモ帳など)を使用してファイルを開きます。
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 転送を構成する
- Cisco DNA Center Platform にログインします。
- [System] > [Settings] > [External Services] > [Destinations] > [Syslog] に移動します。
- [+ 追加] をクリックして、新しい syslog 宛先を作成します。
- 次の構成の詳細を入力します。
- 名前: わかりやすい名前を入力します(例:
Google SecOps BindPlane
)。 - ホスト: BindPlane エージェントの IP アドレスを入力します。
- ポート:
514
(または BindPlane で構成されたポート)を入力します。 - プロトコル: BindPlane の構成に応じて、[UDP] または [TCP] を選択します。
- ファシリティ: 適切なファシリティ(Local0 など)を選択します。
- 重大度: すべてのイベントレベルをキャプチャするには、[情報] を選択します。
- 名前: わかりやすい名前を入力します(例:
- [保存] をクリックします。
オプション 2: リアルタイムの Webhook 統合
このオプションでは、Cisco DNA Center のネイティブ Webhook 機能を使用して、構造化された JSON イベントをリアルタイムで Google SecOps に直接配信します。
概要
Cisco DNA Center は、リアルタイム イベント配信用の Webhook 通知をネイティブでサポートしています。このオプションでは、豊富なイベント コンテキストを含む構造化された JSON ペイロードが提供され、Bindplane を介さずにイベントが Google SecOps に直接配信されます。
Google SecOps Webhook フィードを構成する
- Google SecOps で、[SIEM 設定] > [フィード] に移動します。
- [+ 新しいフィードを追加] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例:
Cisco DNA Center Webhook
)。 - [Source type] として [Webhook] を選択します。
- [ログタイプ] として [Cisco DNA Center Platform] を選択します。
- [次へ] をクリックします。
- 次の入力パラメータの値を指定します。
- 分割区切り文字: 省略可能な
\n
。 - アセットの名前空間: アセットの名前空間。
- Ingestion labels: このフィードのイベントに適用されるラベル。
- 分割区切り文字: 省略可能な
- [次へ] をクリックします。
- フィードの設定を確認し、[送信] をクリックします。
- [秘密鍵を生成する] をクリックして、このフィードを認証するためのシークレット キーを生成します。
- このシークレットは再び表示できないため、秘密鍵をコピーして保存します。
- [詳細] タブに移動します。
- [エンドポイント情報] フィールドから、フィードのエンドポイント URL をコピーします。
- [完了] をクリックします。
Webhook フィード用の API キーを作成する
- Google Cloud コンソールの [認証情報] ページに移動します。
- [認証情報を作成] をクリックして [API キー] を選択します。
- API キーのアクセスを Google SecOps API に制限します。
Cisco DNA Center で Webhook の宛先を構成する
- Cisco DNA Center Platform にログインします。
- [System> Settings> External Services> Destinations> Webhook] に移動します。
- [+ 追加] をクリックして、新しい Webhook の宛先を作成します。
- 次の構成の詳細を入力します。
- 名前: わかりやすい名前を入力します(例:
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 フィードの秘密鍵
- コンテンツ タイプ:
- 名前: わかりやすい名前を入力します(例:
- [Test Connection] をクリックして、接続を確認します。
- [保存] をクリックします。
Webhook 通知にイベントを登録する
- Cisco DNA Center で、[Platform] > [Developer Toolkit] > [Event Notifications] に移動します。
- [+ チャンネル登録] をクリックします。
- 次の構成の詳細を入力します。
- サブスクリプション名: わかりやすい名前を入力します(例:
Google SecOps Events
)。 - コネクタのタイプ: [REST エンドポイント] を選択します。
- 宛先: 前の手順で作成した Webhook の宛先を選択します。
- サブスクリプション名: わかりやすい名前を入力します(例:
- モニタリングするイベントタイプを選択します。
- ネットワーク イベント: デバイスに到達できない、インターフェースがダウンしている、構成が変更された。
- セキュリティ イベント: セキュリティ ポリシー違反、認証の失敗。
- システム イベント: プラットフォーム イベント、ソフトウェア アップデート、メンテナンス。
- 保証イベント: パフォーマンスの低下、接続の問題。
- 必要に応じてイベント フィルタを構成します。
- 重大度: 最小重大度レベル(P1、P2 など)を選択します。
- ドメイン: 特定のドメイン(接続、パフォーマンスなど)でフィルタします。
- [登録] をクリックします。
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_principal 、has_target 、userId フィールドの有無と値に基づいて決定されます。有効な値: NETWORK_CONNECTION、USER_UNCATEGORIZED、STATUS_UPDATE、GENERIC_EVENT。 |
|
is_alert | 重大度が 0 または 1 の場合は True、それ以外の場合は False。 | |
is_significant | 重大度が 0 または 1 の場合は True、それ以外の場合は False。 | |
重要度 | security_result.severity 、is_alert 、is_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 のプロフェッショナルから回答を得ることができます。