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 yang didukung AI yang memberikan perlindungan terhadap 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 DNSFilter Data Export 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 > Pengelolaan Data > Feed. Jika Anda menggunakan platform khusus SIEM, buka 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, DNSFilter HEC Feed).
  5. Pilih Webhook sebagai Jenis sumber.
  6. Pilih DNSFILTER sebagai Log type.
  7. Klik Berikutnya.
  8. Tentukan nilai untuk parameter input berikut:
    • Split delimiter (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 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

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

Membuat 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, Google SecOps DNSFilter 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 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://{region}-chronicle.googleapis.com/v1/{parent}/logs:import?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 HEC Configuration, masukkan informasi berikut:
    • HTTP Event Collector URL: Tempel URL endpoint lengkap dengan kunci API dari langkah sebelumnya.
    • Active Event Collector Token: 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 Active atau Connected.
  3. Di Google SecOps, buka Setelan > Pengelolaan Data > Feed. Jika Anda menggunakan platform khusus SIEM, buka Settings > Feeds.
  4. Temukan feed DNSFilter Anda dan pastikan Status ditampilkan sebagai Aktif.
  5. Klik nama feed untuk melihat detail.
  6. Periksa metrik Logs Ingested untuk mengonfirmasi bahwa data mengalir.
  7. Untuk menelusuri peristiwa DNSFilter, buka Search, 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: Campuran (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 yang lebih disukai 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 (kueri per detik) maks. 15.000
Waktu tunggu permintaan 30 seconds
Perilaku percobaan ulang Otomatis dengan backoff eksponensial

Praktik terbaik

  • Memantau status ekspor: Periksa status Ekspor Data secara rutin di dasbor DNSFilter untuk memastikan aliran data yang berkelanjutan.
  • Rotasi kunci API: Rotasi kunci API Google Cloud Anda secara berkala untuk keamanan.
  • Pengelolaan kunci rahasia: Simpan kunci rahasia Google SecOps dengan aman dan buat ulang jika disusupi.
  • Retensi data: Konfigurasikan 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 pengujian 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 telah mengaktifkan akses Chronicle API.
  4. Pastikan feed Google SecOps dalam status Active.
  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 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 melihat apakah ada error penyerapan.

Ekspor Data menampilkan pesan error

Penyebab error umum:

  • Kredensial tidak valid: Kunci API atau kunci rahasia salah atau sudah tidak berlaku.
  • Region tidak cocok: Region URL endpoint Google SecOps tidak cocok dengan instance Anda.
  • Izin: Kunci API tidak mengaktifkan akses Chronicle 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 Tetapkan ke "STATUS_UPDATE" jika principal_ip_present, principal_hostname_present, atau principal_mac_present bernilai benar, jika tidak, tetapkan ke "GENERIC_EVENT"
question_type network.dns.questions Mengonversi question_type menjadi question.type menggunakan pemetaan jenis data DNS, lalu digabungkan 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 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
nama pengguna 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 gabungan dari berbagai kolom sumber sebagai key-value pair
domain target.administrative_domain Nilai disalin langsung
fqdn target.domain.name Nilai disalin langsung
metadata.product_name Tetapkan ke "DNSFILTER"
metadata.vendor_name Tetapkan ke "DNSFILTER"

Log Perubahan

Melihat Log Perubahan untuk parser ini

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