Mengumpulkan log Cisco Identity Intelligence

Didukung di:

Dokumen ini menjelaskan cara mengonfigurasi Cisco Identity Intelligence untuk mengirim log ke Google Security Operations menggunakan webhook.

Cisco Identity Intelligence (sebelumnya Oort Security) adalah platform deteksi dan respons ancaman identitas yang terus memantau perilaku pengguna, pola autentikasi, penggunaan perangkat, dan hak istimewa akses di seluruh penyedia identitas. Solusi ini mendeteksi ancaman berbasis identitas, kesalahan konfigurasi, dan pelanggaran kepatuhan dengan menganalisis aktivitas pengguna, pemeriksaan keamanan yang gagal, skor kepercayaan, dan perilaku berisiko.

Sebelum memulai

Pastikan Anda memiliki prasyarat berikut:

  • Instance Google SecOps
  • Akses istimewa ke tenant Cisco Identity Intelligence
  • Izin administratif untuk mengelola integrasi di Cisco Identity Intelligence
  • Akses ke Konsol Google Cloud (untuk pembuatan kunci API)

Membuat feed webhook di Google SecOps

Buat feed

  1. Buka Setelan SIEM > Feed.
  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 Identity Intelligence Events).
  5. Pilih Webhook sebagai Source type.
  6. Pilih Cisco Identity Intelligence sebagai Log type.
  7. Klik Berikutnya.
  8. Tentukan nilai untuk parameter input berikut:
    • Pemisah pemisahan (opsional): Masukkan \n untuk memisahkan peristiwa multibaris.
    • 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 Finalize, lalu klik Submit.

Membuat dan menyimpan 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. Format URL-nya adalah:

    https://{region}-chronicle.googleapis.com/v1/{parent}/logs:import
    

    Dengan {region} adalah region instance Google SecOps Anda (misalnya, us, europe, atau asia-southeast1), dan {parent} adalah jalur resource dalam format projects/<PROJECT_ID>/locations/<LOCATION>/instances/<INSTANCE_ID>/logTypes/<LOG_TYPE>.

  4. Simpan URL ini untuk langkah berikutnya.

  5. Klik Done.

Membuat kunci Google Cloud API

Chronicle 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 Chronicle Anda).
  3. Klik Create credentials > kunci API.
  4. Kunci API dibuat dan ditampilkan dalam dialog.
  5. Klik Edit API key untuk membatasi kunci.

Membatasi kunci API

  1. Di halaman setelan kunci API:
    • Nama: 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 Google SecOps API (atau 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 webhook Cisco Identity Intelligence

Membuat URL webhook

  • Gabungkan URL endpoint Chronicle dan kunci API:

    <ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET_KEY>
    
    • Contoh:

      https://{region}-chronicle.googleapis.com/v1/{parent}/logs:import?key=AIzaSyD...&secret=abcd1234...
      

Ganti kode berikut:

  • <ENDPOINT_URL>: URL endpoint feed Chronicle yang disalin sebelumnya
  • <API_KEY>: Kunci Google Cloud API yang dibuat sebelumnya
  • <SECRET_KEY>: Kunci rahasia webhook Chronicle yang dibuat sebelumnya

Membuat target notifikasi webhook di Cisco Identity Intelligence

  1. Login ke Cisco Identity Intelligence.
  2. Buka Integrations.
  3. Klik Add Integration.
  4. Scroll ke bawah ke bagian Webhook.
  5. Klik Add Webhook Target.
  6. Berikan detail konfigurasi berikut:
    • Name: Masukkan nama deskriptif (misalnya, Chronicle SIEM Integration).
    • URL Webhook: Tempel URL endpoint lengkap dengan kunci API dan kunci rahasia dari atas.
    • Authorization Type: Pilih API Key.
    • API Key Name: Masukkan nama kunci (misalnya, x-goog-chronicle-auth).
    • Nilai Kunci API: Masukkan kunci Google Cloud API.
  7. Luaskan bagian Invocation HTTP Parameters.
  8. Tambahkan parameter berikut dengan jenis Header:
    • Kunci: Content-Type, Nilai: application/json
    • Kunci: Accept, Nilai: application/json
  9. Di bagian Gunakan target ini untuk, pilih Pemeriksaan Gagal untuk menerima notifikasi saat pemeriksaan identitas mendeteksi hasil yang gagal.
  10. Klik Simpan.

Menguji koneksi webhook

  1. Di halaman Integrations, temukan target notifikasi webhook yang Anda buat.
  2. Klik menu tiga titik di sisi kanan baris.
  3. Pilih Test Connectivity.
  4. Pastikan pesan pengujian berhasil dikirim.

Mengaktifkan webhook untuk pemeriksaan identitas

Setelah membuat target notifikasi webhook, Anda harus mengaktifkannya untuk pemeriksaan identitas tertentu yang ingin Anda pantau.

  1. Buka halaman detail Pemeriksaan yang diinginkan di Cisco Identity Intelligence.
  2. Luaskan dropdown di pojok kanan atas halaman.
  3. Centang kotak untuk target notifikasi webhook yang Anda buat.
  4. Ulangi untuk setiap pemeriksaan yang ingin Anda kirim ke Google SecOps.

Untuk mengetahui informasi selengkapnya, lihat dokumentasi webhook Cisco Identity Intelligence.

Referensi metode autentikasi

Feed webhook Chronicle mendukung beberapa metode autentikasi. Pilih metode yang didukung oleh vendor Anda.

Jika vendor Anda mendukung header HTTP kustom, gunakan metode ini untuk keamanan yang lebih baik.

  • Format permintaan:

    POST <ENDPOINT_URL> HTTP/1.1
    Content-Type: application/json
    x-goog-chronicle-auth: <API_KEY>
    x-chronicle-auth: <SECRET_KEY>
    
    {
        "event": "data",
        "timestamp": "2025-01-15T10:30:00Z"
    }
    

Kelebihan:

  • Kunci API dan secret tidak terlihat di URL
  • Lebih aman (header tidak dicatat dalam log akses server web)
  • Metode yang lebih disukai jika vendor mendukungnya

Metode 2: Parameter kueri

Jika vendor Anda tidak mendukung header kustom, tambahkan kredensial ke URL.

  • Format URL:

    <ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET_KEY>
    
  • Contoh:

    https://{region}-chronicle.googleapis.com/v1/{parent}/logs:import?key=AIzaSyD...&secret=abcd1234...
    
  • Format permintaan:

    POST <ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET_KEY> HTTP/1.1
    Content-Type: application/json
    
    {
        "event": "data",
        "timestamp": "2025-01-15T10:30:00Z"
    }
    

Kekurangan:

  • Kredensial terlihat di URL
  • Dapat dicatat dalam log akses server web
  • Kurang aman dibandingkan header

Metode 3: Hybrid (URL + Header)

Beberapa konfigurasi menggunakan kunci API di URL dan kunci rahasia di header.

  • Format permintaan:

    POST <ENDPOINT_URL>?key=<API_KEY> HTTP/1.1
    Content-Type: application/json
    x-chronicle-auth: <SECRET_KEY>
    
    {
        "event": "data",
        "timestamp": "2025-01-15T10:30:00Z"
    }
    

Nama header autentikasi

Chronicle menerima nama header berikut untuk autentikasi:

Untuk kunci API:

  • x-goog-chronicle-auth (direkomendasikan)
  • X-Goog-Chronicle-Auth (tidak peka huruf besar/kecil)

Untuk kunci rahasia:

  • x-chronicle-auth (direkomendasikan)
  • X-Chronicle-Auth (tidak peka huruf besar/kecil)

Batasan dan praktik terbaik webhook

Batas permintaan

Batas Nilai
Ukuran permintaan maksimum 4 MB
QPS Maks (kueri per detik) 15.000
Waktu tunggu permintaan 30 seconds
Perilaku percobaan ulang Otomatis dengan backoff eksponensial

Tabel pemetaan UDM

Kolom Log Pemetaan UDM Logika
akun account_label.value Nilai disalin secara langsung
akun account_label.key Tetapkan ke "account"
account_label security_result.detection_fields Digabungkan ke detection_fields
additional_detaildescription.key additional_detaildescription.key Setel ke "deskripsi detail"
detaildescription additional_detaildescription.value.list_value.values Digabungkan dari detaildescription
additional_detaildescription event.idm.read_only_udm.additional.fields Digabungkan ke additional.fields
additional_recommendedaction.key additional_recommendedaction.key Ditetapkan ke "tindakan yang disarankan"
recommendedAction additional_recommendedaction.value.list_value.values Merged from recommendedAction
additional_recommendedaction event.idm.read_only_udm.additional.fields Digabungkan ke additional.fields
data1 usersFailing_label Nilai disalin secara langsung
data.login login_label Nilai disalin secara langsung
detail-type security_result.summary Nilai disalin langsung
detail.id security_result.rule_id Nilai disalin secara langsung
detail.title security_result.rule_name Nilai disalin secara langsung
detail.severity security_result.severity Nilai dari detail.severity jika dalam [CRITICAL,ERROR,HIGH,INFORMATIONAL,LOW,MEDIUM], atau MEDIUM jika sedang
detaildescription value_array.string_value Nilai disalin langsung
detailsdata.key add_label.value, add_label.key Nilai dari detailsdata.value, kunci sebagai "loginDetails %{index} details %{detailindex} %{detailsdata.key}" jika bukan failedSigninDetails atau ips
detailsdata.value add_label.value, add_label.key
detailsdata.key security_result.detection_fields add_label digabungkan jika kondisi terpenuhi
detailsdata.value security_result.detection_fields
field_.value security_result.detection_fields Digabungkan untuk berbagai kolom bertingkat di json_array (msg, ipInfo, asn, koordinat, first_event, second_event, locations) dengan kunci seperti "%{index} %{detailindex} %{index1} %{key}" dll., tidak termasuk ipAddress, ip, dll.
field_.key security_result.detection_fields
id metadata.product_log_id Nilai disalin langsung
login_label principal.user.email_addresses Digabungkan jika cocok dengan regex email
msg.ipAddress principal.ip Digabungkan jika tidak kosong
msg.first_event.ip_address principal.ip Digabungkan jika tidak kosong
msg.second_event.ip_address principal.ip Digabungkan jika tidak kosong
msg_travels_first_event_ip_address principal.ip Digabungkan jika tidak kosong
msg_travels_second_event_ip_address principal.ip
recommendedAction value_array.string_value Nilai disalin secara langsung
security_result event.idm.read_only_udm.security_result Digabungkan ke security_result
sumber source_label.value Nilai disalin secara langsung
sumber source_label.key Setel ke "source"
source_label event.idm.read_only_udm.src.labels Digabung ke src.labels
waktu @timestamp Diuraikan menggunakan filter tanggal dengan ISO8601, RFC 3339, yyyy-MM-ddTHH:mm:ss.SSSSSSZ
usersFailing_label principal.user.email_addresses Digabungkan jika cocok dengan regex email
versi metadata.product_version Nilai disalin secara langsung
has_principal event.idm.read_only_udm.metadata.event_type Ditetapkan ke "STATUS_UPDATE" jika has_principal bernilai benar, atau "USER_UNCATEGORIZED" jika has_user bernilai benar, atau "GENERIC_EVENT"
has_user event.idm.read_only_udm.metadata.event_type
metadata.product_name metadata.product_name Ditetapkan ke "OORT"
metadata.vendor_name metadata.vendor_name Ditetapkan ke "OORT"
detail.published event.idm.read_only_udm.metadata.collected_timestamp Dipetakan dari log perubahan
detail.login event.idm.read_only_udm.principal.user.userid Dipetakan dari log perubahan
detail.userTrustLevel event.idm.read_only_udm.principal.user.attribute.labels Dipetakan dari log perubahan
detail.login event.idm.read_only_udm.principal.user.user_display_name Dipetakan dari log perubahan
detail.checkTopics event.idm.read_only_udm.security_result.category_details Dipetakan dari log perubahan
region event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
detail.checkId event.idm.read_only_udm.security_result.detection_fields Dipetakan dari log perubahan
detail.checkScope event.idm.read_only_udm.security_result.detection_fields Dipetakan dari log perubahan
detail.frameworks event.idm.read_only_udm.security_result.detection_fields Dipetakan dari log perubahan
detail.explainabilityEventIds event.idm.read_only_udm.security_result.detection_fields Dipetakan dari log perubahan
data.value event.idm.read_only_udm.security_result.detection_fields Dipetakan dari log perubahan

Log Perubahan

Melihat Log Perubahan untuk parser ini

Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.