Mengumpulkan log DNS Infoblox
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
- Login ke konsol Google SecOps.
- Buka Setelan SIEM > Agen Pengumpulan.
- Download File Autentikasi Penyerapan. Simpan file dengan aman di sistem tempat BindPlane akan diinstal.
Mendapatkan ID pelanggan Google SecOps
- Login ke konsol Google SecOps.
- Buka Setelan SIEM > Profil.
- 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
- Buka Command Prompt atau PowerShell sebagai administrator.
Jalankan perintah berikut:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietTunggu hingga penginstalan selesai.
Verifikasi penginstalan dengan menjalankan:
sc query observiq-otel-collector
Layanan akan ditampilkan sebagai RUNNING.
Penginstalan Linux
- Buka terminal dengan hak istimewa root atau sudo.
Jalankan perintah berikut:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.shTunggu hingga penginstalan selesai.
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.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
Edit file konfigurasi
Ganti seluruh konten
config.yamldengan 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: Gunakanudploguntuk syslog UDP atautcploguntuk syslog TCP0.0.0.0: Alamat IP yang akan didengarkan (0.0.0.0untuk 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
- Linux:
YOUR_CUSTOMER_ID: ID Pelanggan dari bagian Dapatkan ID pelangganendpoint: 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
- Amerika Serikat:
log_type: Jenis log persis seperti yang muncul di Chronicle (INFOBLOX_DNS)
Simpan file konfigurasi
- Setelah mengedit, simpan file:
- Linux: Tekan
Ctrl+O, laluEnter, laluCtrl+X - Windows: Klik File > Save
- Linux: Tekan
Mulai ulang agen Bindplane untuk menerapkan perubahan
Untuk memulai ulang agen Bindplane di Linux, jalankan perintah berikut:
sudo systemctl restart observiq-otel-collectorPastikan layanan sedang berjalan:
sudo systemctl status observiq-otel-collectorPeriksa 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-collectorKonsol layanan:
- Tekan
Win+R, ketikservices.msc, lalu tekan Enter. - Temukan observIQ OpenTelemetry Collector.
Klik kanan, lalu pilih Mulai Ulang.
Pastikan layanan sedang berjalan:
sc query observiq-otel-collectorPeriksa log untuk mengetahui error:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
- Tekan
Mengonfigurasi penerusan Syslog di Infoblox DNS
- Login ke antarmuka web Infoblox Grid Manager.
- Buka Petak > Pengelola Petak > Anggota.
- Pilih anggota yang akan dikonfigurasi, lalu klik Edit.
- Buka tab Monitoring.
- Di bagian Syslog, klik Tambahkan untuk menambahkan server syslog baru.
- 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).
- 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.
- Klik Simpan & Tutup.
- Mulai ulang layanan DNS jika diperlukan.
- 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.