Mengumpulkan log DNS Infoblox

Didukung di:

Dokumen ini menjelaskan cara menyerap log DNS Infoblox ke Google Security Operations menggunakan Bindplane.

Parser mengekstrak kolom dari log yang diformat CEF dan SYSLOG DNS Infoblox. Log ini menggunakan grok dan/atau kv untuk mengurai pesan log, lalu memetakan nilai ini ke Model Data Terpadu (UDM). Layanan ini juga menetapkan nilai metadata default untuk sumber dan jenis peristiwa.

Sebelum memulai

Pastikan Anda memiliki prasyarat berikut:

  • Instance Google SecOps
  • Windows Server 2016 atau yang lebih baru, atau host Linux dengan systemd
  • Jika beroperasi dari balik proxy, pastikan port firewall terbuka sesuai dengan persyaratan agen Bindplane
  • Akses istimewa ke antarmuka web Infoblox Grid Manager

Mendapatkan file autentikasi penyerapan Google SecOps

  1. Login ke konsol Google SecOps.
  2. Buka Setelan SIEM > Agen Pengumpulan.
  3. Download File Autentikasi Penyerapan. Simpan file dengan aman di sistem tempat 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 aktif (berjalan).

Referensi penginstalan tambahan

Untuk opsi penginstalan dan pemecahan masalah tambahan, lihat Panduan penginstalan agen BindPlane.

Mengonfigurasi agen BindPlane untuk menyerap syslog dan mengirimkannya ke Google SecOps

Cari file konfigurasi

  • Linux:

    sudo nano /etc/bindplane-agent/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/chronicle_w_labels:
            compression: gzip
            creds_file_path: '/path/to/ingestion-authentication-file.json'
            customer_id: 'YOUR_CUSTOMER_ID'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: 'INFOBLOX_DNS'
            raw_log_field: body
            ingestion_labels:
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    

Parameter konfigurasi

  • Ganti placeholder berikut:

    • Konfigurasi penerima:

      • udplog: Gunakan udplog untuk syslog UDP atau tcplog untuk syslog TCP
      • 0.0.0.0: Alamat IP yang akan didengarkan (0.0.0.0 untuk mendengarkan semua antarmuka)
      • 514: Nomor port yang akan diproses (port syslog standar)
    • Konfigurasi eksportir:

      • creds_file_path: Jalur lengkap ke file autentikasi penyerapan:
        • Linux: /etc/bindplane-agent/ingestion-auth.json
        • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
      • YOUR_CUSTOMER_ID: ID Pelanggan dari bagian Dapatkan ID pelanggan
      • endpoint: URL endpoint regional:
        • Amerika Serikat: malachiteingestion-pa.googleapis.com
        • Eropa: europe-malachiteingestion-pa.googleapis.com
        • Asia: asia-southeast1-malachiteingestion-pa.googleapis.com
        • Lihat Endpoint Regional untuk mengetahui daftar lengkapnya
      • log_type: Jenis log persis seperti yang muncul di Chronicle (INFOBLOX_DNS)

Simpan file konfigurasi

  • Setelah mengedit, simpan file:
    • Linux: Tekan Ctrl+O, lalu Enter, lalu Ctrl+X
    • Windows: Klik File > Save

Mulai ulang agen Bindplane untuk menerapkan perubahan

  • Untuk memulai ulang agen Bindplane di Linux, jalankan perintah berikut:

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

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

        sudo journalctl -u observiq-otel-collector -f
      
  • Untuk memulai ulang agen Bindplane di Windows, 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. Temukan observIQ OpenTelemetry Collector.
      3. Klik kanan, lalu pilih Mulai Ulang.

      4. Pastikan layanan sedang berjalan:

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

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

Mengonfigurasi penerusan Syslog di Infoblox DNS

  1. Login ke antarmuka web Infoblox Grid Manager.
  2. Buka Petak > Pengelola Petak > Anggota.
  3. Pilih anggota yang akan dikonfigurasi, lalu klik Edit.
  4. Buka tab Monitoring.
  5. Di bagian Syslog, klik Tambahkan untuk menambahkan server syslog baru.
  6. Berikan detail konfigurasi berikut:
    • Alamat: Masukkan alamat IP host agen Bindplane.
    • Port: Masukkan 514.
    • Transportasi: Pilih UDP.
    • ID Node: Pilih node Infoblox (untuk pasangan HA).
    • Tingkat keparahan: Pilih Info (atau tingkat keparahan pilihan Anda).
    • Fasilitas: Pilih local0 (atau fasilitas pilihan Anda).
  7. Aktifkan kategori log berikut:
    • Kueri DNS: Pilih Log DNS Queries di bagian Grid DNS Properties > Logging.
    • Respons DNS: Pilih Log DNS Responses.
    • DHCP: Aktifkan pencatatan log DHCP di bagian Grid DHCP Properties.
    • Audit: Aktifkan logging audit di bagian Grid Properties > Monitoring.
  8. Klik Simpan & Tutup.
  9. Mulai ulang layanan DNS jika diperlukan.
  10. Pastikan pesan syslog dikirim dengan memeriksa log agen Bindplane.

Tabel pemetaan UDM

Kolom Log Pemetaan UDM Logika
agent.hostname principal.hostname Untuk log berformat CEF, jika agent.hostname ada, log tersebut dipetakan ke principal.hostname.
client_ip principal.ip Untuk log berformat CEF, jika client_ip ada, log tersebut dipetakan ke principal.ip.
client_port principal.port Untuk log berformat CEF, jika client_port ada, log tersebut dipetakan ke principal.port.
data answers.data Diekstrak dari kolom data bagian jawaban di log mentah. Beberapa kemunculan dipetakan sebagai objek jawaban terpisah.
deskripsi metadata.description Dipetakan langsung dari kolom deskripsi log mentah atau diekstrak menggunakan pola grok dari kolom lain seperti message dan msg2.
dest_ip1 target.ip Diekstrak dari log mentah dan dipetakan ke target.ip.
destinationDnsDomain dns_question.name Untuk log berformat CEF, jika destinationDnsDomain ada, log tersebut dipetakan ke dns_question.name.
dns_class dns_question.class Dipetakan menggunakan tabel lookup dns_query_class_mapping.include.
dns_domain dns_question.name Diekstrak dari kolom pesan log mentah menggunakan pola grok dan dipetakan ke dns_question.name.
dns_name dns_question.name Diekstrak dari kolom dns_domain menggunakan pola grok dan dipetakan ke dns_question.name.
dns_records answers.data Untuk log berformat CEF, jika dns_records ada, log tersebut dipetakan ke answers.data. Beberapa kemunculan dipetakan sebagai objek jawaban terpisah.
dst_ip target.ip atau target.hostname Diekstrak dari kolom pesan log mentah menggunakan pola grok. Jika berupa alamat IP yang valid, alamat IP tersebut dipetakan ke target.ip; jika tidak, alamat IP tersebut dipetakan ke target.hostname.
dst_ip1 target.ip atau target.hostname Diekstrak dari kolom pesan atau msg2 log mentah menggunakan pola grok. Jika berupa alamat IP yang valid, alamat IP tersebut dipetakan ke target.ip; jika tidak, alamat IP tersebut dipetakan ke target.hostname. Hanya dipetakan jika berbeda dari dst_ip.
evt_type metadata.product_event_type Dipetakan langsung dari kolom evt_type log mentah, yang diekstrak dari kolom pesan menggunakan pola grok.
InfobloxB1OPHIPAddress principal.ip Untuk log berformat CEF, jika InfobloxB1OPHIPAddress ada, log tersebut dipetakan ke principal.ip.
InfobloxB1Region principal.location.country_or_region Untuk log berformat CEF, jika InfobloxB1Region ada, log tersebut dipetakan ke principal.location.country_or_region.
InfobloxDNSQType dns_question.type Untuk log berformat CEF, jika InfobloxDNSQType ada, log tersebut dipetakan ke dns_question.type.
perantara intermediary.ip atau intermediary.hostname Diekstrak dari kolom pesan log mentah menggunakan pola grok. Jika alamat IP valid, alamat IP tersebut dipetakan ke intermediary.ip; jika tidak, alamat IP tersebut dipetakan ke intermediary.hostname.
msg2 metadata.description, dns.response_code, dns_question.name, target.ip, target.hostname, answers.name, answers.ttl, answers.data, answers.class, answers.type, security_result.severity Diekstrak dari kolom pesan log mentah menggunakan pola grok. Digunakan untuk mengekstrak berbagai kolom, tetapi tidak dipetakan langsung ke UDM.
name1 answers.name Diekstrak dari kolom msg2 log mentah menggunakan pola grok dan dipetakan ke answers.name.
name2 answers.name Diekstrak dari kolom msg2 log mentah menggunakan pola grok dan dipetakan ke answers.name.
protokol network.ip_protocol Dipetakan langsung dari kolom protokol log mentah jika cocok dengan protokol yang diketahui.
qclass dns_question.class Kolom perantara yang digunakan untuk memetakan dns_class ke UDM.
qclass1 answers.class Kolom perantara yang digunakan untuk memetakan dns_class1 ke UDM.
qclass2 answers.class Kolom perantara yang digunakan untuk memetakan dns_class2 ke UDM.
query_type dns_question.type Dipetakan menggunakan tabel lookup dns_record_type.include.
query_type1 answers.type Dipetakan menggunakan tabel lookup dns_record_type.include.
query_type2 answers.type Dipetakan menggunakan tabel lookup dns_record_type.include.
recursion_flag network.dns.recursion_desired Jika recursion_flag berisi "+", maka akan dipetakan ke network.dns.recursion_desired sebagai benar (true).
record_type dns_question.type Kolom perantara yang digunakan untuk memetakan query_type ke UDM.
record_type1 answers.type Kolom perantara yang digunakan untuk memetakan query_type1 ke UDM.
record_type2 answers.type Kolom perantara yang digunakan untuk memetakan query_type2 ke UDM.
res_code network.dns.response_code Dipetakan menggunakan tabel penelusuran dns_response_code.include.
response_code network.dns.response_code Untuk log berformat CEF, jika response_code ada, log tersebut dipetakan ke network.dns.response_code menggunakan tabel lookup dns_response_code.include.
security_action security_result.action Diambil dari kolom status. Jika statusnya "ditolak", security_action disetel ke "BLOCK"; jika tidak, setel ke "ALLOW".
tingkat keseriusan, security_result.severity Untuk log berformat CEF, jika ada tingkat keparahan dan "informasional", tingkat keparahan tersebut dipetakan ke security_result.severity sebagai "INFORMATIONAL".
src_host principal.hostname Diekstrak dari deskripsi log mentah atau kolom pesan menggunakan pola grok dan dipetakan ke principal.hostname.
src_ip principal.ip atau principal.hostname Diekstrak dari kolom pesan log mentah menggunakan pola grok. Jika berupa alamat IP yang valid, alamat IP tersebut dipetakan ke principal.ip; jika tidak, alamat IP tersebut dipetakan ke principal.hostname.
src_port principal.port Diekstrak dari kolom pesan log mentah menggunakan pola grok dan dipetakan ke principal.port.
ttl1 answers.ttl Diekstrak dari kolom msg2 log mentah menggunakan pola grok dan dipetakan ke answers.ttl.
ttl2 answers.ttl Diekstrak dari kolom msg2 log mentah menggunakan pola grok dan dipetakan ke answers.ttl.
metadata.event_type metadata.event_type Diperoleh dari berbagai kolom dan logika parser. Defaultnya adalah GENERIC_EVENT jika tidak ada jenis peristiwa lain yang diidentifikasi. Nilai yang mungkin mencakup NETWORK_DNS, NETWORK_CONNECTION, dan STATUS_UPDATE.
metadata.log_type metadata.log_type Ditetapkan ke "INFOBLOX_DNS" oleh parser.
metadata.product_name metadata.product_name Ditetapkan ke "Infoblox DNS" oleh parser.
metadata.vendor_name metadata.vendor_name Ditetapkan ke "INFOBLOX" oleh parser.
metadata.product_version metadata.product_version Diekstrak dari pesan CEF.
metadata.event_timestamp metadata.event_timestamp Disalin dari kolom stempel waktu.
network.application_protocol network.application_protocol Disetel ke "DNS" jika event_type bukan "GENERIC_EVENT" atau "STATUS_UPDATE".

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