Mengumpulkan log Cisco Catalyst Center (sebelumnya DNA Center)

Versi Parser: 2.0

Didukung di:

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 systemd untuk 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.
  1. Login ke Google Cloud konsol dan pilih project Google Cloud yang ditautkan ke instance Google SecOps Anda.
  2. Buka IAM & Admin > Service Accounts.
  3. Klik Create service account.
  4. Berikan detail konfigurasi berikut:
    • Nama akun layanan: Masukkan nama untuk akun (misalnya, bindplane-ingest).
    • Deskripsi akun layanan: Masukkan deskripsi (misalnya, Bindplane agent log ingestion).
  5. Klik Create and continue.
  6. Di bagian Grant this service account access to project, klik Select a role, lalu pilih Chronicle Editor.
  7. Klik Continue lalu klik Done.
  8. Klik akun layanan yang Anda buat, lalu buka tab Keys.
  9. Klik Add key > Create new key.
  10. Pilih JSON, lalu klik Create. File kunci akan didownload ke komputer Anda.
  11. Simpan file kunci sebagai ingestion-auth.json di direktori Bindplane collector (/opt/observiq-otel-collector/ingestion-auth.json di Linux atau C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json di Windows), atau perbarui creds_file_path di config.yaml agar sesuai dengan jalur tempat Anda menyimpannya.
  12. Buka IAM & Admin > Settings dan salin Project number. Anda akan memerlukannya untuk konfigurasi pengekspor.

Opsi 2: Mendownload file autentikasi penyerapan (lama)

  1. Login ke konsol Google SecOps.
  2. Buka SIEM Settings > Collection Agents.
  3. Download file autentikasi penyerapan.
  4. Simpan file dengan aman di sistem tempat agen Bindplane akan diinstal.

Mendapatkan ID pelanggan Google SecOps

  1. Login ke konsol Google SecOps.
  2. Buka Setelan SIEM > Profil.
  3. 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

  1. Buka Command Prompt atau PowerShell sebagai administrator.
  2. Jalankan perintah berikut:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. Tunggu hingga penginstalan selesai.

  4. Verifikasi penginstalan dengan menjalankan:

    sc query observiq-otel-collector
    

Layanan akan ditampilkan sebagai RUNNING.

Penginstalan Linux

  1. Buka terminal dengan hak istimewa root atau sudo.
  2. Jalankan perintah berikut:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. Tunggu hingga penginstalan selesai.

  4. 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.yaml dengan 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. Gunakan 0.0.0.0 untuk memproses semua antarmuka. Ganti port jika diperlukan (misalnya, 1514 untuk 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
    • YOUR_CUSTOMER_ID: ID pelanggan Google SecOps Anda.
    • location: Ganti <LOCATION> dengan region instance Google SecOps Anda (misalnya, us, europe, atau asia-southeast1). Pengekspor akan menambahkan awalan chronicle.googleapis.com dengan nilai ini. Lihat Endpoint Regional untuk mengetahui daftar lengkapnya.
    • project: Ganti <PROJECT_NUMBER> dengan nomor project dari IAM & Admin > Settings.
    • endpoint: Tetap disetel ke chronicle.googleapis.com.

Pengekspor API penyerapan lama

  • Jika Anda menggunakan file autentikasi penyerapan dari Opsi 2, ganti blok exporters dengan kode berikut. Tetapkan creds_file_path ke jalur ke file autentikasi penyerapan, dan jika instance Anda berada di luar AS, ganti malachiteingestion-pa.googleapis.com dengan 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, lalu Enter, lalu Ctrl+X
    • Windows: Klik File > Simpan

Mulai ulang agen Bindplane untuk menerapkan perubahan

Untuk memulai ulang agen Bindplane di Linux:

  1. Jalankan perintah berikut:

    sudo systemctl restart observiq-otel-collector
    
  2. Pastikan layanan sedang berjalan:

    sudo systemctl status observiq-otel-collector
    
  3. Periksa log untuk mengetahui error:

    sudo journalctl -u observiq-otel-collector -f
    

Untuk memulai ulang agen Bindplane di Windows:

  1. Pilih salah satu opsi berikut:

    • Command Prompt atau PowerShell sebagai administrator:
    net stop observiq-otel-collector && net start observiq-otel-collector
    
    • Konsol layanan:
      1. Tekan Win+R, ketik services.msc, lalu tekan Enter.
      2. Cari observIQ OpenTelemetry Collector.
      3. Klik kanan, lalu pilih Restart.
  2. Pastikan layanan sedang berjalan:

    sc query observiq-otel-collector
    
  3. Periksa log untuk mengetahui error:

    type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
    

Mengonfigurasi penerusan syslog di Cisco Catalyst Center

  1. Login ke Cisco Catalyst Center.
  2. Buka System > Settings > External Services > Destinations > Syslog.
  3. Klik ikon Add (+) untuk membuat tujuan syslog baru.
  4. 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.
  5. 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

  1. Buka SIEM Settings > Feeds.
  2. Klik Tambahkan Feed Berita Baru.
  3. Di halaman berikutnya, klik Konfigurasi satu feed.
  4. Di kolom Nama feed, masukkan nama untuk feed (misalnya, Cisco Catalyst Center Webhook).
  5. Pilih Webhook sebagai Source type.
  6. Pilih Cisco Catalyst Center sebagai Log type.
  7. Klik Berikutnya.
  8. Tentukan nilai untuk parameter input berikut:
    • Pemisah (opsional): Masukkan \n untuk peristiwa yang dipisahkan baris baru.
    • Namespace aset: Namespace aset.
    • Label penyerapan: Label yang akan diterapkan ke peristiwa dari feed ini.
  9. Klik Berikutnya.
  10. 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:

  1. Di halaman detail feed, klik Buat Kunci Rahasia.
  2. Dialog akan menampilkan kunci rahasia.
  3. Salin dan simpan kunci rahasia dengan aman.

Mendapatkan URL endpoint feed

  1. Buka tab Detail untuk feed tersebut.
  2. Di bagian Endpoint Information, salin Feed endpoint URL.
  3. Simpan URL ini untuk langkah berikutnya.
  4. 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

  1. Buka halaman Credentials Konsol Google Cloud.
  2. Pilih project Anda (project yang terkait dengan instance Google SecOps Anda).
  3. Klik Create credentials > kunci API.
  4. Kunci API akan dibuat dan ditampilkan dalam dialog.
  5. Klik Edit kunci API untuk membatasi kunci.

Membatasi kunci API

  1. Di halaman setelan kunci API:
    • Name: Masukkan nama deskriptif (misalnya, Chronicle Webhook API Key).
  2. Di bagian API restrictions:
    1. Pilih Restrict key.
    2. Di dropdown Select APIs, telusuri dan pilih Chronicle API.
  3. Klik Simpan.
  4. Salin nilai kunci API dari kolom API key di bagian atas halaman.
  5. Simpan kunci API dengan aman.

Mengonfigurasi tujuan webhook di Cisco Catalyst Center

  1. Login ke Cisco Catalyst Center.
  2. Buka System > Settings > External Services > Destinations > Webhook.
  3. Klik ikon Tambahkan (+) untuk membuat tujuan webhook baru.
  4. 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
  5. Klik Simpan.

Berlangganan peristiwa ke notifikasi webhook

  1. Di Cisco Catalyst Center, buka Platform > Developer Toolkit > Event Notifications.
  2. Di tab Notifikasi, klik Buat Notifikasi Baru.
  3. 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.
  4. Klik Berikutnya.
  5. Di Langkah 2 (Pilih Saluran), pilih REST sebagai saluran notifikasi.
  6. Di dropdown Endpoint, pilih tujuan webhook yang dibuat di bagian sebelumnya (misalnya, Google SecOps-Webhook).
  7. Klik Berikutnya.
  8. Di Langkah 3 (Ringkasan), tinjau konfigurasi notifikasi.
  9. Masukkan Nama untuk langganan (misalnya, Google SecOps Events).
  10. 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.