Mengumpulkan log DNSFilter

Didukung di:

Dokumen ini menjelaskan cara mengonfigurasi DNSFilter untuk mengirimkan log ke Google Security Operations menggunakan webhook melalui protokol HTTP Event Collector (HEC).

DNSFilter adalah solusi keamanan DNS yang didukung AI yang menyediakan perlindungan dari ancaman, pemfilteran konten, dan visibilitas jaringan. Fitur Ekspor Data memungkinkan ekspor otomatis data log kueri DNS ke platform SIEM melalui HTTP Event Collector (HEC) API, yang mendukung pemantauan keamanan real-time dan pelaporan kepatuhan.

Sebelum memulai

Pastikan Anda memiliki prasyarat berikut:

  • Instance Google SecOps
  • Akses ke dasbor DNSFilter dengan izin administrator atau yang lebih tinggi
  • Fitur add-on Ekspor Data DNSFilter diaktifkan (tersedia untuk paket Basic, Pro, dan Enterprise sebagai add-on berbayar)
  • 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 Baru.
  3. Di halaman berikutnya, klik Konfigurasi satu feed.
  4. Di kolom Nama feed, masukkan nama untuk feed (misalnya, DNSFilter HEC Feed).
  5. Pilih Webhook sebagai Jenis sumber.
  6. Pilih DNSFILTER sebagai Jenis log.
  7. Klik Berikutnya.
  8. Tentukan nilai untuk parameter input berikut:
    • Pemisah pemisahan (opsional): Biarkan kosong karena setiap permintaan HEC berisi peristiwa yang diformat dengan benar
    • Namespace aset: Namespace aset
    • Label penyerapan: Label yang akan diterapkan ke peristiwa dari feed ini
  9. Klik Berikutnya.
  10. Tinjau konfigurasi feed 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. Format URL-nya adalah:

    https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate
    

    atau

    https://<REGION>-malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate
    
  4. Simpan URL ini untuk langkah berikutnya.

  5. Klik Done.

Membuat kunci Google Cloud API

Google SecOps memerlukan kunci API untuk autentikasi. Buat kunci API terbatas di Konsol Google Cloud.

Buat kunci API

  1. Buka halaman Credentials Google Cloud Console.
  2. Pilih project Anda (project yang terkait dengan instance Google SecOps Anda).
  3. Klik Create credentials > API key.
  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, Google SecOps DNSFilter Webhook API Key)
  2. Di bagian Pembatasan API:
    1. Pilih Restrict key.
    2. Di drop-down Select APIs, telusuri dan pilih Google SecOps API (atau Chronicle API).
  3. Klik Simpan.
  4. Salin nilai kunci API dari kolom Kunci API di bagian atas halaman.
  5. Simpan kunci API dengan aman.

Mengonfigurasi Ekspor Data DNSFilter

Buat URL endpoint HEC

  • Gabungkan URL endpoint Google SecOps dan kunci API untuk membuat URL HEC:

    <ENDPOINT_URL>?key=<API_KEY>
    
  • Contoh:

    https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate?key=AIzaSyD...
    

Mengonfigurasi Ekspor Data di DNSFilter

  1. Login ke dasbor DNSFilter.
  2. Buka Alat > Ekspor Data.
  3. Di bagian Export Destination, pilih HTTP Event Collector (HEC).
  4. Di bagian Konfigurasi HEC, masukkan informasi berikut:
    • HTTP Event Collector URL: Tempelkan URL endpoint lengkap dengan kunci API dari langkah sebelumnya.
    • Token Active Event Collector: Tempelkan kunci rahasia yang dibuat selama pembuatan feed Google SecOps.
  5. Klik Simpan Konfigurasi.
  6. DNSFilter akan menguji koneksi dan menampilkan pesan berhasil jika konfigurasi sudah benar.

Memverifikasi penyerapan data

  1. Di dasbor DNSFilter, buka Tools > Data Export.
  2. Pastikan Status ditampilkan sebagai Aktif atau Terhubung.
  3. Di konsol Google SecOps, buka SIEM Settings > Feeds.
  4. Temukan feed DNSFilter Anda dan pastikan Status ditampilkan sebagai Aktif.
  5. Klik nama feed untuk melihat detail.
  6. Periksa metrik Log yang Diserap untuk mengonfirmasi bahwa data mengalir.
  7. Untuk menelusuri peristiwa DNSFilter, buka Penelusuran, lalu jalankan kueri berikut:

    metadata.log_type = "DNSFILTER"
    

Referensi metode autentikasi

Feed webhook Google SecOps mendukung beberapa metode autentikasi. Integrasi HEC DNSFilter menggunakan metode hybrid.

Metode yang digunakan: Hybrid (URL + Header)

DNSFilter mengirimkan kunci API di URL dan kunci rahasia (token HEC) di header permintaan.

  • Format permintaan:

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

Metode alternatif: Header kustom

Jika mengonfigurasi aplikasi kustom untuk mengirim log ke Google SecOps, 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 rahasia tidak terlihat di URL
    • Lebih aman (header tidak dicatat dalam log akses server web)
    • Metode pilihan jika vendor mendukungnya

Nama header autentikasi

Google SecOps 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)
    • Authorization: Splunk <TOKEN> (Kompatibilitas HEC)

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

Praktik terbaik

  • Pantau status ekspor: Periksa status Ekspor Data secara rutin di dasbor DNSFilter untuk memastikan aliran data berkelanjutan.
  • Rotasi kunci API: Lakukan rotasi kunci API Google Cloud Anda secara berkala untuk keamanan.
  • Pengelolaan kunci rahasia: Simpan kunci rahasia Google SecOps dengan aman dan buat ulang jika terganggu.
  • Retensi data: Konfigurasi kebijakan retensi data yang sesuai di DNSFilter dan Google SecOps.
  • Konfigurasi pemberitahuan: Siapkan pemberitahuan di Google SecOps untuk peristiwa keamanan DNS yang penting.

Pemecahan masalah

Uji koneksi gagal

Jika uji konfigurasi Ekspor Data DNSFilter gagal:

  1. Pastikan URL HEC sudah benar dan menyertakan parameter kunci API.
  2. Pastikan kunci rahasia (token HEC) disalin dengan benar tanpa spasi tambahan.
  3. Pastikan kunci API Google Cloud telah mengaktifkan akses Chronicle API.
  4. Pastikan feed Google SecOps berstatus Aktif.
  5. Periksa konektivitas jaringan dari DNSFilter ke endpoint Google Cloud.

Tidak ada data yang muncul di Google SecOps

Jika koneksi berhasil, tetapi tidak ada data yang muncul:

  1. Verifikasi bahwa kueri DNS sedang dibuat dalam deployment DNSFilter Anda.
  2. Periksa Log Kueri DNSFilter untuk mengonfirmasi bahwa traffic sedang diproses.
  3. Di Google SecOps, telusuri metadata.log_type = "DNSFILTER" untuk memverifikasi penyerapan.
  4. Periksa metrik Log yang Diserap feed di Google SecOps.
  5. Tinjau Log Error feed untuk mengetahui apakah ada error penyerapan.

Ekspor Data menampilkan pesan error

Penyebab umum error:

  • Kredensial tidak valid: Kunci API atau kunci rahasia salah atau sudah tidak berlaku.
  • Ketidakcocokan wilayah: Wilayah URL endpoint Google SecOps tidak cocok dengan instance Anda.
  • Izin: Akses Chronicle API tidak diaktifkan untuk kunci API.
  • Masalah jaringan: Firewall atau proxy memblokir koneksi HTTPS keluar.

Tabel pemetaan UDM

Kolom Log Pemetaan UDM Logika
waktu metadata.collected_timestamp Dikonversi menggunakan format tanggal: yyyy-MM-dd HH:mm:ss Z UTC
metadata.event_type Ditetapkan ke "STATUS_UPDATE" jika principal_ip_present, principal_hostname_present, atau principal_mac_present bernilai benar (true), atau "GENERIC_EVENT"
question_type network.dns.questions Mengonversi question_type menjadi question.type menggunakan pemetaan jenis data DNS, lalu menggabungkan ke dalam array
kode network.dns.response_code Dikonversi menggunakan pemetaan kode respons DNS
protokol network.ip_protocol Dikonversi menggunakan pemetaan protokol IP
klien principal.hostname Nilai disalin secara langsung
request_address, ip4, ip6, source_addresses principal.ip Digabungkan dari request_address (IP yang diekstrak), ip4 (IP yang diekstrak), ip6 (IP yang diekstrak), dan IP yang diekstrak dari array source_addresses
region principal.location.country_or_region Nilai disalin secara langsung
clientMac principal.mac Nilai disalin langsung jika cocok dengan regex MAC
clientID principal.resource.product_object_id Nilai disalin secara langsung
nama pengguna principal.user.user_display_name Nilai disalin secara langsung
user_id principal.user.userid Nilai disalin secara langsung
code, original_code, clientType, collection, network_name, networkID, collectionID, policy, policyID, scheduled_policy, scheduled_policyID, sec_cats, sec_allow_cats, block_cats, block_allow_cats, threat, allowed, method, organization, organizationID, applicationID, application_name, application_categoryID, application_category_name security_result.detection_fields Label yang digabungkan dari berbagai kolom sumber sebagai pasangan nilai kunci
domain target.administrative_domain Nilai disalin secara langsung
fqdn target.domain.name Nilai disalin secara langsung
metadata.product_name Tetapkan ke "DNSFILTER"
metadata.vendor_name Tetapkan ke "DNSFILTER"

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