Mengumpulkan log Cisco Catalyst Center (sebelumnya DNA Center)
Versi Parser: 2.0
Dokumen ini menjelaskan cara menyerap log Cisco Catalyst Center (sebelumnya dikenal sebagai DNA Center) ke Google Security Operations menggunakan dua pendekatan yang berbeda. Pilih opsi yang paling sesuai dengan lingkungan dan persyaratan Anda.
Cisco Catalyst Center adalah platform otomatisasi dan pengelolaan jaringan terpusat untuk jaringan IoT, cabang, dan kampus perusahaan. Solusi ini menyediakan jaringan berbasis intent, pengelolaan kebijakan, penyediaan perangkat, analisis jaminan, dan deteksi masalah berbasis AI di seluruh infrastruktur berkabel dan nirkabel. Catalyst Center menghasilkan peristiwa yang terkait dengan kesehatan jaringan, perubahan status perangkat, pelanggaran kebijakan keamanan, dan masalah jaminan.
Sebelum memulai
Pastikan Anda memiliki prasyarat berikut:
- Instance Google SecOps.
- Akses istimewa ke konsol pengelolaan Cisco Catalyst Center.
- Untuk Opsi 1: Windows Server 2016 atau yang lebih baru, atau host Linux dengan
systemduntuk agen Bindplane. - Untuk Opsi 2: Konektivitas jaringan antara Cisco Catalyst Center dan endpoint webhook Google SecOps.
Opsi 1 - Integrasi Syslog menggunakan agen Bindplane
Opsi ini menggunakan penerusan syslog dari Cisco Catalyst Center ke agen BindPlane, yang kemudian meneruskan log terstruktur ke Google SecOps.
Mendapatkan kredensial Google SecOps untuk agen Bindplane
Untuk mengautentikasi agen Bindplane ke Google SecOps, pilih salah satu metode berikut:
- Deployment baru: Gunakan Chronicle API (Opsi 1).
- Deployment lama: Terus menggunakan file autentikasi penyerapan (Opsi 2) hingga Ingestion API dihentikan pada 20 Juli 2027.
Opsi 1: Buat akun layanan untuk Chronicle API (direkomendasikan)
- Login ke Google Cloud konsol dan pilih project Google Cloud yang ditautkan ke instance Google SecOps Anda.
- Buka IAM & Admin > Service Accounts.
- Klik Create service account.
- Berikan detail konfigurasi berikut:
- Nama akun layanan: Masukkan nama untuk akun (misalnya,
bindplane-ingest). - Deskripsi akun layanan: Masukkan deskripsi (misalnya,
Bindplane agent log ingestion).
- Nama akun layanan: Masukkan nama untuk akun (misalnya,
- Klik Create and continue.
- Di bagian Grant this service account access to project, klik Select a role, lalu pilih Chronicle Editor.
- Klik Continue lalu klik Done.
- Klik akun layanan yang Anda buat, lalu buka tab Keys.
- Klik Add key > Create new key.
- Pilih JSON, lalu klik Create. File kunci akan didownload ke komputer Anda.
- Simpan file kunci sebagai
ingestion-auth.jsondi direktori Bindplane collector (/opt/observiq-otel-collector/ingestion-auth.jsondi Linux atauC:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.jsondi Windows), atau perbaruicreds_file_pathdiconfig.yamlagar sesuai dengan jalur tempat Anda menyimpannya. - Buka IAM & Admin > Settings dan salin Project number. Anda akan memerlukannya untuk konfigurasi pengekspor.
Opsi 2: Mendownload file autentikasi penyerapan (lama)
- Login ke konsol Google SecOps.
- Buka SIEM Settings > Collection Agents.
- Download file autentikasi penyerapan.
- Simpan file dengan aman di sistem tempat agen Bindplane akan diinstal.
Mendapatkan ID pelanggan Google SecOps
- Login ke konsol Google SecOps.
- Buka Setelan SIEM > Profil.
Salin dan simpan ID Pelanggan dari bagian Detail Organisasi.
Menginstal agen Bindplane
Instal agen Bindplane di sistem operasi Windows atau Linux Anda sesuai dengan petunjuk berikut.
Penginstalan Windows
- Buka Command Prompt atau PowerShell sebagai administrator.
Jalankan perintah berikut:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietTunggu hingga penginstalan selesai.
Verifikasi penginstalan dengan menjalankan:
sc query observiq-otel-collector
Layanan akan ditampilkan sebagai RUNNING.
Penginstalan Linux
- Buka terminal dengan hak istimewa root atau sudo.
Jalankan perintah berikut:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.shTunggu hingga penginstalan selesai.
Verifikasi penginstalan dengan menjalankan:
sudo systemctl status observiq-otel-collector
Layanan akan ditampilkan sebagai active (running).
Referensi penginstalan tambahan
Untuk opsi pemasangan dan pemecahan masalah tambahan, lihat Panduan pemasangan agen Bindplane.
Mengonfigurasi agen Bindplane untuk menyerap syslog dan mengirimkannya ke Google SecOps
Menemukan file konfigurasi
Temukan file konfigurasi di sistem operasi Anda sebagai berikut:
- Linux:
sudo nano /opt/observiq-otel-collector/config.yaml- Windows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
Edit file konfigurasi
Ganti seluruh konten
config.yamldengan konfigurasi berikut:receivers: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/cisco_catalyst_center: 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 creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json' customer_id: 'YOUR_CUSTOMER_ID' endpoint: chronicle.googleapis.com log_type: CISCO_DNAC raw_log_field: body service: pipelines: logs/cisco_catalyst_center_to_chronicle: receivers: - udplog exporters: - chronicle/cisco_catalyst_center
Parameter konfigurasi
Ganti placeholder berikut:
Konfigurasi penerima:
listen_address: Alamat IP dan port yang akan diproses. Gunakan0.0.0.0untuk memproses semua antarmuka. Ganti port jika diperlukan (misalnya,1514untuk Linux non-root).
Konfigurasi pengekspor:
creds_file_path: Jalur lengkap ke file kunci JSON akun layanan (Opsi 1):- Linux:
/opt/observiq-otel-collector/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
YOUR_CUSTOMER_ID: ID pelanggan Google SecOps Anda.location: Ganti<LOCATION>dengan region instance Google SecOps Anda (misalnya,us,europe, atauasia-southeast1). Pengekspor akan menambahkan awalanchronicle.googleapis.comdengan nilai ini. Lihat Endpoint Regional untuk mengetahui daftar lengkapnya.project: Ganti<PROJECT_NUMBER>dengan nomor project dari IAM & Admin > Settings.endpoint: Tetap disetel kechronicle.googleapis.com.
Pengekspor API penyerapan lama
Jika Anda menggunakan file autentikasi penyerapan dari Opsi 2, ganti blok
exportersdengan kode berikut. Tetapkancreds_file_pathke jalur ke file autentikasi penyerapan, dan jika instance Anda berada di luar AS, gantimalachiteingestion-pa.googleapis.comdengan endpoint regional Anda (misalnya,europe-malachiteingestion-pa.googleapis.com).exporters: chronicle/cisco_catalyst_center: compression: gzip creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json' customer_id: 'YOUR_CUSTOMER_ID' endpoint: malachiteingestion-pa.googleapis.com log_type: CISCO_DNAC raw_log_field: body
Menyimpan file konfigurasi
- Setelah mengedit, simpan file:
- Linux: Tekan
Ctrl+O, laluEnter, laluCtrl+X - Windows: Klik File > Simpan
- Linux: Tekan
Mulai ulang agen Bindplane untuk menerapkan perubahan
Untuk memulai ulang agen Bindplane di Linux:
Jalankan perintah berikut:
sudo systemctl restart observiq-otel-collectorPastikan layanan sedang berjalan:
sudo systemctl status observiq-otel-collectorPeriksa log untuk mengetahui error:
sudo journalctl -u observiq-otel-collector -f
Untuk memulai ulang agen Bindplane di Windows:
Pilih salah satu opsi berikut:
- Command Prompt atau PowerShell sebagai administrator:
net stop observiq-otel-collector && net start observiq-otel-collector- Konsol layanan:
- Tekan
Win+R, ketikservices.msc, lalu tekan Enter. - Cari observIQ OpenTelemetry Collector.
- Klik kanan, lalu pilih Restart.
- Tekan
Pastikan layanan sedang berjalan:
sc query observiq-otel-collectorPeriksa log untuk mengetahui error:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
Mengonfigurasi penerusan syslog di Cisco Catalyst Center
- Login ke Cisco Catalyst Center.
- Buka System > Settings > External Services > Destinations > Syslog.
- Klik ikon Add (+) untuk membuat tujuan syslog baru.
- Berikan detail konfigurasi berikut:
- Name: Masukkan nama deskriptif (misalnya,
Google SecOps-Bindplane). - Deskripsi: Masukkan deskripsi singkat (misalnya,
Syslog forwarding to Google SecOps via Bindplane). - Hostname/IP Address: Masukkan alamat IP host agen Bindplane.
- Port: Masukkan
514(atau port yang dikonfigurasi di agen Bindplane). - Protocol: Pilih UDP atau TCP, bergantung pada konfigurasi Bindplane Anda.
- Name: Masukkan nama deskriptif (misalnya,
Klik Simpan.
Opsi 2 - Integrasi webhook
Opsi ini menggunakan kemampuan webhook native Cisco Catalyst Center untuk mengirimkan peristiwa JSON terstruktur langsung ke Google SecOps secara real time.
Membuat feed webhook di Google SecOps
Membuat feed
- Buka SIEM Settings > Feeds.
- Klik Tambahkan Feed Berita Baru.
- Di halaman berikutnya, klik Konfigurasi satu feed.
- Di kolom Nama feed, masukkan nama untuk feed (misalnya,
Cisco Catalyst Center Webhook). - Pilih Webhook sebagai Source type.
- Pilih Cisco Catalyst Center sebagai Log type.
- Klik Berikutnya.
- Tentukan nilai untuk parameter input berikut:
- Pemisah (opsional): Masukkan
\nuntuk peristiwa yang dipisahkan baris baru. - Namespace aset: Namespace aset.
- Label penyerapan: Label yang akan diterapkan ke peristiwa dari feed ini.
- Pemisah (opsional): Masukkan
- Klik Berikutnya.
- Tinjau konfigurasi feed berita baru Anda di layar Selesaikan, lalu klik Kirim.
Buat dan simpan kunci rahasia
Setelah membuat feed, Anda harus membuat kunci rahasia untuk autentikasi:
- Di halaman detail feed, klik Buat Kunci Rahasia.
- Dialog akan menampilkan kunci rahasia.
Salin dan simpan kunci rahasia dengan aman.
Mendapatkan URL endpoint feed
- Buka tab Detail untuk feed tersebut.
- Di bagian Endpoint Information, salin Feed endpoint URL.
- Simpan URL ini untuk langkah berikutnya.
- Klik Done.
Buat kunci Google Cloud API
Google SecOps memerlukan kunci API untuk autentikasi. Buat kunci API yang dibatasi di Konsol Google Cloud.
Buat kunci API
- Buka halaman Credentials Konsol Google Cloud.
- Pilih project Anda (project yang terkait dengan instance Google SecOps Anda).
- Klik Create credentials > kunci API.
- Kunci API akan dibuat dan ditampilkan dalam dialog.
- Klik Edit kunci API untuk membatasi kunci.
Membatasi kunci API
- Di halaman setelan kunci API:
- Name: Masukkan nama deskriptif (misalnya,
Chronicle Webhook API Key).
- Name: Masukkan nama deskriptif (misalnya,
- Di bagian API restrictions:
- Pilih Restrict key.
- Di dropdown Select APIs, telusuri dan pilih Chronicle API.
- Klik Simpan.
- Salin nilai kunci API dari kolom API key di bagian atas halaman.
Simpan kunci API dengan aman.
Mengonfigurasi tujuan webhook di Cisco Catalyst Center
- Login ke Cisco Catalyst Center.
- Buka System > Settings > External Services > Destinations > Webhook.
- Klik ikon Tambahkan (+) untuk membuat tujuan webhook baru.
- Berikan detail konfigurasi berikut:
- Name: Masukkan nama deskriptif (misalnya,
Google SecOps-Webhook). - Description: Masukkan deskripsi singkat (misalnya,
Webhook to Google SecOps). - URL: Tempelkan URL endpoint webhook Google SecOps.
- Metode: Pilih POST.
- Authentication: Pilih No Authentication.
- Percayai Sertifikat: Pilih Ya.
- Headers: Klik Add Header dan tambahkan header berikut:
- Nama:
Content-Type, Nilai:application/json - Name:
X-goog-api-key, Value: Kunci Google Cloud API Anda - Name:
X-Webhook-Access-Key, Value: Kunci rahasia feed Google SecOps Anda
- Nama:
- Name: Masukkan nama deskriptif (misalnya,
- Klik Simpan.
Berlangganan peristiwa ke notifikasi webhook
- Di Cisco Catalyst Center, buka Platform > Developer Toolkit > Event Notifications.
- Di tab Notifikasi, klik Buat Notifikasi Baru.
- Di Langkah 1 (Pilih Situs dan Peristiwa), pilih situs dan peristiwa yang ingin Anda pantau:
- Peristiwa Jaringan: Perangkat tidak dapat dijangkau, antarmuka tidak berfungsi, perubahan konfigurasi.
- Peristiwa Keamanan: Pelanggaran kebijakan keamanan, kegagalan autentikasi.
- Peristiwa Sistem: Peristiwa platform, update software, pemeliharaan.
- Peristiwa Jaminan: Penurunan performa, masalah konektivitas.
- Klik Berikutnya.
- Di Langkah 2 (Pilih Saluran), pilih REST sebagai saluran notifikasi.
- Di dropdown Endpoint, pilih tujuan webhook yang dibuat di bagian sebelumnya (misalnya,
Google SecOps-Webhook). - Klik Berikutnya.
- Di Langkah 3 (Ringkasan), tinjau konfigurasi notifikasi.
- Masukkan Nama untuk langganan (misalnya,
Google SecOps Events). - Klik Selesai.
Tabel pemetaan UDM
| Kolom Log | Pemetaan UDM | Logika |
|---|---|---|
category |
security_result.severity_details |
Nilai category dari log mentah dipetakan ke kolom security_result.severity_details. |
ciscoDnaEventLink |
target.url |
Nilai ciscoDnaEventLink dari log mentah dipetakan ke kolom target.url. |
date_time |
metadata.event_timestamp |
Diekstrak dari pesan log mentah menggunakan pola grok dan dikonversi ke format stempel waktu. |
details.Assurance_Issue_Category |
security_result.about.resource.attribute.labels[].value |
Nilai details.Assurance_Issue_Category dari log mentah dipetakan dengan kunci "Assurance_Issue_Category". |
details.Assurance_Issue_Details |
security_result.summary |
Nilai details.Assurance_Issue_Details dari log mentah dipetakan ke kolom security_result.summary. |
details.Assurance_Issue_Name |
security_result.about.resource.attribute.labels[].value |
Nilai details.Assurance_Issue_Name dari log mentah dipetakan dengan kunci "Assurance_Issue_Name". |
details.Assurance_Issue_Priority |
security_result.about.resource.attribute.labels[].value |
Nilai details.Assurance_Issue_Priority dari log mentah dipetakan dengan kunci "Assurance_Issue_Priority". |
details.Assurance_Issue_Status |
security_result.about.resource.attribute.labels[].value |
Nilai details.Assurance_Issue_Status dari log mentah dipetakan dengan kunci "Assurance_Issue_Status". |
details.Device |
target.ip, target.hostname |
Jika nilainya adalah alamat IP, nilai tersebut akan dipetakan ke target.ip, jika tidak, nilai tersebut akan dipetakan ke target.hostname. |
dnacIp |
target.ip |
Nilai dnacIp dari log mentah dipetakan ke target.ip jika merupakan alamat IP yang valid. |
domain |
additional.fields[].value.string_value |
Nilai domain dari log mentah ditambahkan sebagai pasangan kunci-nilai ke additional.fields dengan kunci "domain". |
eventId |
metadata.product_event_type |
Nilai eventId dari log mentah dipetakan ke kolom metadata.product_event_type. |
instanceId |
target.resource.product_object_id |
Nilai instanceId dari log mentah dipetakan ke kolom target.resource.product_object_id. |
name |
target.resource.attribute.labels[].value |
Nilai name dari log mentah dipetakan dengan kunci "name". |
namespace |
target.namespace |
Nilai namespace dari log mentah dipetakan ke kolom target.namespace. |
network.deviceId |
target.asset.asset_id |
Nilai network.deviceId dari log mentah diberi awalan "deviceId: " dan dipetakan ke target.asset.asset_id. |
note |
additional.fields[].value.string_value |
Nilai note dari log mentah ditambahkan sebagai pasangan nilai kunci ke additional.fields dengan kunci "note". |
severity |
security_result.severity |
Digunakan untuk menentukan nilai security_result.severity, is_alert, dan is_significant. |
source |
target.resource.attribute.labels[].value |
Nilai source dari log mentah dipetakan dengan kunci "source". |
src_ip |
principal.ip |
Diekstrak dari pesan log mentah menggunakan pola grok dan dipetakan ke principal.ip. |
subDomain |
additional.fields[].value.string_value |
Nilai subDomain dari log mentah ditambahkan sebagai pasangan kunci-nilai ke additional.fields dengan kunci "subDomain". |
tntId |
target.resource.attribute.labels[].value |
Nilai tntId dari log mentah dipetakan dengan kunci "tntId". |
type |
target.resource.attribute.labels[].value |
Nilai type dari log mentah dipetakan dengan kunci "type". |
userId |
target.user.userid |
Nilai userId dari log mentah dipetakan ke kolom target.user.userid. |
version |
metadata.product_version |
Nilai version dari log mentah dipetakan ke kolom metadata.product_version. |
| T/A | metadata.event_type |
Ditetapkan berdasarkan keberadaan dan nilai kolom has_principal, has_target, dan userId. Nilai yang mungkin: NETWORK_CONNECTION, USER_UNCATEGORIZED, STATUS_UPDATE, GENERIC_EVENT. |
| T/A | is_alert |
Disetel ke benar jika tingkat keparahan adalah 0 atau 1, salah jika tidak. |
| T/A | is_significant |
Disetel ke benar jika tingkat keparahan adalah 0 atau 1, salah jika tidak. |
correlationId |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
isSimulated |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
startTime |
event.idm.read_only_udm.extensions.vulns.vulnerabilities.scan_start_time |
Dipetakan dari log perubahan |
details.wlcIp |
event.idm.read_only_udm.intermediary.ip |
Dipetakan dari log perubahan |
details.detectingApName |
event.idm.read_only_udm.observer.hostname |
Dipetakan dari log perubahan |
details.detectingApLocation |
event.idm.read_only_udm.observer.location.name |
Dipetakan dari log perubahan |
details.detectingApMacAddress |
event.idm.read_only_udm.observer.mac |
Dipetakan dari log perubahan |
network.siteId |
event.idm.read_only_udm.observer.resource.attribute.labels |
Dipetakan dari log perubahan |
src_ip |
event.idm.read_only_udm.principal.hostname |
Dipetakan dari log perubahan |
details |
event.idm.read_only_udm.security_result.detection_fields |
Dipetakan dari log perubahan |
details.threatType |
event.idm.read_only_udm.security_result.threat_name |
Dipetakan dari log perubahan |
tenantId |
event.idm.read_only_udm.target.resource.attribute.labels |
Dipetakan dari log perubahan |
Log Perubahan
Melihat Log Perubahan untuk parser ini
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.