Mengumpulkan log DNSFilter

Versi Parser: 1.0

Didukung di:

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

DNSFilter adalah solusi keamanan DNS berbasis AI yang memberikan 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

Membuat 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.

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 feed.
  2. Di bagian Informasi Endpoint, salin URL endpoint feed.
  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 Selesai.

Membuat kunci Google Cloud API

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

Membuat kunci API

  1. Buka halaman Kredensial Konsol Google Cloud.
  2. Pilih project Anda (project yang terkait dengan instance Google SecOps Anda).
  3. Klik Buat kredensial > 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: Nama: Masukkan nama deskriptif (misalnya, Google SecOps DNSFilter Webhook API Key)
  2. Di bagian Pembatasan API:
    1. Pilih Batasi kunci.
    2. Di dropdown Pilih API, 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

Membuat 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 Tujuan Ekspor, pilih HTTP Event Collector (HEC).
  4. Di bagian Konfigurasi HEC, masukkan hal berikut:
    • URL HTTP Event Collector: 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 keberhasilan jika konfigurasi sudah benar.

Memverifikasi penyerapan data

  1. Di dasbor DNSFilter, buka Alat > Ekspor Data.
  2. Pastikan Status ditampilkan sebagai Aktif atau Terhubung.
  3. Di konsol Google SecOps, buka Setelan SIEM > Feed.
  4. Temukan feed DNSFilter Anda dan pastikan Status ditampilkan sebagai Aktif.
  5. Klik nama feed untuk melihat detailnya.
  6. Periksa metrik Log yang Diserap untuk mengonfirmasi bahwa data mengalir.
  7. Untuk menelusuri peristiwa DNSFilter, buka Penelusuran, dan 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)

Batas dan praktik terbaik webhook

Batas permintaan

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

Praktik terbaik

  • Memantau status ekspor: Periksa status Ekspor Data di dasbor DNSFilter secara berkala untuk memastikan aliran data berkelanjutan.
  • Rotasi kunci API: Putar kunci Google Cloud API Anda secara berkala untuk keamanan.
  • Pengelolaan kunci rahasia: Simpan kunci rahasia Google SecOps dengan aman dan buat ulang jika diretas.
  • Retensi data: Konfigurasi kebijakan retensi data yang sesuai di DNSFilter dan Google SecOps.
  • Konfigurasi pemberitahuan: Siapkan pemberitahuan di Google SecOps untuk peristiwa keamanan DNS 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 Google Cloud API memiliki akses Chronicle API yang diaktifkan.
  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. Pastikan kueri DNS dibuat di 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 error penyerapan.

Ekspor Data menampilkan pesan error

Penyebab umum error:

  • Kredensial tidak valid: Kunci API atau kunci rahasia salah atau sudah tidak berlaku.
  • Ketidakcocokan region: Region URL endpoint Google SecOps tidak cocok dengan instance Anda.
  • Izin: Kunci API tidak memiliki akses Chronicle API yang diaktifkan.
  • Masalah jaringan: Firewall atau proxy memblokir koneksi HTTPS keluar.

Tabel pemetaan UDM

Kolom Log Pemetaan UDM Logika
time 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, jika tidak, ditetapkan ke "GENERIC_EVENT"
question_type network.dns.questions question_type dikonversi ke question.type menggunakan pemetaan jenis data DNS, lalu digabungkan ke dalam array
code network.dns.response_code Dikonversi menggunakan pemetaan kode respons DNS
protocol network.ip_protocol Dikonversi menggunakan pemetaan protokol IP
client principal.hostname Nilai disalin 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 langsung
clientMac principal.mac Nilai disalin langsung jika cocok dengan ekspresi reguler MAC
clientID principal.resource.product_object_id Nilai disalin langsung
username principal.user.user_display_name Nilai disalin langsung
user_id principal.user.userid Nilai disalin 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 digabungkan dari berbagai kolom sumber sebagai pasangan nilai kunci
domain target.administrative_domain Nilai disalin langsung
fqdn target.domain.name Nilai disalin langsung
metadata.product_name Ditetapkan ke "DNSFILTER"
metadata.vendor_name Ditetapkan ke "DNSFILTER"

Log Perubahan

Lihat Log Perubahan untuk parser ini

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