Mengumpulkan log BloxOne Threat Defense

Versi Parser: 8.0

Didukung di:

Dokumen ini menjelaskan cara menyerap log BloxOne Threat Defense ke Google Security Operations menggunakan agen Bindplane.

Infoblox BloxOne Threat Defense adalah layanan keamanan DNS yang dikelola di cloud yang menghasilkan pesan syslog dalam format CEF untuk kueri DNS, peristiwa intelijen ancaman, dan tindakan kebijakan. Parser menormalisasi kolom dan memetakannya ke Model Data Terpadu (UDM).

Sebelum memulai

Pastikan Anda memiliki prasyarat berikut:

  • Instance Google SecOps
  • Windows Server 2016 atau yang lebih baru, atau host Linux dengan systemd
  • Konektivitas jaringan antara agen Bindplane dan platform Infoblox BloxOne
  • Jika beroperasi dari balik proxy, pastikan port firewall terbuka sesuai dengan persyaratan agen Bindplane
  • Akses istimewa ke Infoblox Portal

Mendapatkan file autentikasi penyerapan Google SecOps

  1. Login ke konsol Google SecOps.
  2. Buka Setelan SIEM > Agen Pengumpulan.
  3. Download File Autentikasi Penyerapan
  4. Simpan file dengan aman di sistem tempat agen 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/bloxone:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: BLOXONE
            raw_log_field: body
    
    service:
        pipelines:
            logs/bloxone_to_chronicle:
                receivers:
                    - udplog
                exporters:
                    - chronicle/bloxone
    

Parameter konfigurasi

Ganti placeholder berikut:

  • Konfigurasi penerima:

    • listen_address: Alamat IP dan port yang akan diproses:
      • 0.0.0.0 untuk mendengarkan di semua antarmuka (direkomendasikan)
      • Port 514 adalah port syslog standar (memerlukan root di Linux; gunakan 1514 untuk non-root)
  • 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
    • customer_id: ID Pelanggan yang disalin dari konsol Google SecOps
    • 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

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 syslog di Infoblox BloxOne

  1. Login ke Portal Infoblox.
  2. Buka Konfigurasi > Administrasi > Penghubung Data.
  3. Pilih tab Destination Configuration.
  4. Klik Create > Syslog.
  5. Berikan detail konfigurasi berikut:
    • Name: Berikan nama deskriptif (misalnya, pengumpul Google SecOps).
    • Deskripsi: Berikan deskripsi singkat.
    • Status: Pilih Aktifkan.
    • Tag: Klik Tambahkan dan tentukan hal berikut untuk mengaitkan kunci dengan tujuan:
      • KEY: Masukkan nama deskriptif untuk kunci.
      • VALUE: Masukkan nilai untuk kunci Anda.
    • Format: Pilih CEF.
    • Protocol: Pilih UDP atau TCP (bergantung pada konfigurasi agen Bindplane Anda).
    • FQDN/IP: Masukkan alamat IP agen Bindplane.
    • Port: Masukkan port agen Bindplane (defaultnya adalah 514 untuk UDP).
  6. Klik Simpan & Tutup.

Tabel pemetaan UDM

Kolom log Pemetaan UDM Logika
additional_list.key Kolom ini digunakan dalam loop untuk melakukan iterasi pada array additional_list dan mengekstrak data berdasarkan nilai kolom key. Tidak dipetakan langsung ke UDM.
additional_list.value principal.location.region_latitude, principal.location.region_longitude, target.location.region_latitude, target.location.region_longitude Kolom ini digunakan bersama dengan additional_list.key untuk mengekstrak nilai tertentu dari array additional_list. Logika untuk mengekstrak dan memetakan nilai bergantung pada key yang sesuai. Misalnya:
- Jika additional_list.key adalah intel:source:ip:geoIP:location, ekstrak nilai garis lintang dan bujur menggunakan grok dan petakan ke principal.location.region_latitude dan principal.location.region_longitude.
- Jika additional_list.key adalah intel:destination:ip:geoIP:location, ekstrak nilai lintang dan bujur menggunakan grok dan petakan ke target.location.region_latitude dan target.location.region_longitude.
additional_string.key Mirip dengan additional_list.key, kolom ini digunakan dalam loop untuk melakukan iterasi pada array additional_string dan mengekstrak data berdasarkan nilai key. Tidak dipetakan langsung ke UDM.
additional_string.value additional.fields.value.string_value, principal.location.country_or_region, target.location.country_or_region, src.ip, src.port, src.hostname, network.ip_protocol Digunakan dengan additional_string.key untuk mengekstrak nilai dari array additional_string. Logika untuk memetakan nilai bergantung pada key yang sesuai. Misalnya:
- Jika additional_string.key adalah intel:source:ip:ip2asn:start_ip, intel:source:ip:ip2asn:finish_ip, intel:destination:ip:ip2asn:start_ip, atau intel:destination:ip:ip2asn:finish_ip, petakan nilai ke additional.fields.value.string_value dengan kunci yang sesuai.
- Jika additional_string.key adalah intel:source:ip:geoIP:country, petakan nilai ke principal.location.country_or_region.
- Jika additional_string.key adalah intel:destination:ip:geoIP:country, petakan nilai ke target.location.country_or_region.
- Jika additional_string.key adalah log:source:ip, petakan nilai ke src.ip.
- Jika additional_string.key adalah log:source:port, petakan nilai ke src.port setelah mengonversinya menjadi bilangan bulat.
- Jika additional_string.key adalah log:source:hostname, petakan nilai ke src.hostname.
- Jika additional_string.key adalah log:cdh:input:protocol, petakan nilai ke network.ip_protocol setelah mengonversinya menjadi huruf besar.
app_category security_result.category_details Dipetakan secara langsung.
confidence security_result.confidence Dipetakan berdasarkan logika berikut:
- Jika confidence adalah LOW, petakan ke LOW_CONFIDENCE.
- Jika confidence adalah MEDIUM, petakan ke MEDIUM_CONFIDENCE.
- Jika confidence adalah HIGH, petakan ke HIGH_CONFIDENCE.
country principal.location.name Dipetakan secara langsung, tetapi hanya jika raw.infobloxb1region kosong.
device principal.ip, principal.asset.ip Dipetakan secara langsung, tetapi hanya jika raw.dvc kosong.
dhcp_fingerprint security_result.detection_fields.value Dipetakan langsung dengan kunci dhcp_fingerprint.
dns_view security_result.detection_fields.value Dipetakan langsung dengan kunci dns_view.
endpoint_groups security_result.detection_fields.value Dipetakan langsung dengan kunci endpoint_groups.
event_time metadata.event_timestamp.seconds Diuraikan sebagai stempel waktu ISO8601 dan nilai detik diekstrak. Hanya digunakan jika kolom timestamp kosong.
feed_name principal.resource.name feed_name dipetakan ke principal.resource.name.
feed_type principal.resource.attribute.labels.value Dipetakan langsung dengan kunci feed_type.
mac_address principal.mac Dipetakan secara langsung setelah dikonversi menjadi huruf kecil.
network principal.hostname, principal.asset.hostname Dipetakan secara langsung, tetapi hanya jika raw.dvchost dan raw.dvc kosong.
os_version principal.platform_version Dipetakan secara langsung.
policy_action security_result.action_details, security_result.action policy_action dipetakan langsung ke security_result.action_details.
security_result.action diturunkan berdasarkan logika berikut:
- Jika policy_action adalah Redirect atau Log, petakan ke ALLOW.
- Jika policy_action adalah BLOCK, petakan ke BLOCK.
policy_name security_result.detection_fields.value Dipetakan langsung dengan kunci policy_name.
qname network.dns.questions.name Dipetakan secara langsung.
qtype network.dns.questions.type Dipetakan berdasarkan logika berikut:
- Jika qtype adalah A, petakan ke 1 (dikonversi menjadi bilangan bulat tidak bertanda).
- Jika qtype adalah PTR, petakan ke 12 (dikonversi ke bilangan bulat tidak bertanda).
raw.act security_result.action_details Dipetakan secara langsung.
raw.app network.application_protocol Dipetakan secara langsung setelah dikonversi menjadi huruf besar.
raw.deviceeventclassid metadata.product_event_type Digabungkan dengan raw.name (dipisahkan oleh -) dan dipetakan ke metadata.product_event_type.
raw.devicevendor metadata.vendor_name Dipetakan secara langsung.
raw.deviceproduct metadata.product_name Dipetakan secara langsung.
raw.deviceversion metadata.product_version Dipetakan secara langsung.
raw.deviceseverity security_result.severity_details, security_result.severity raw.deviceseverity dipetakan langsung ke security_result.severity_details.
security_result.severity diturunkan berdasarkan logika berikut:
- Jika raw.deviceseverity berada di [0, 1, 2, 3], petakan ke LOW.
- Jika raw.deviceseverity ada di [4, 5, 6], petakan ke MEDIUM.
- Jika raw.deviceseverity berada di [7, 8], petakan ke HIGH.
- Jika raw.deviceseverity berada di [9, 10], petakan ke CRITICAL.
raw.dvc principal.ip, principal.asset.ip Dipetakan secara langsung.
raw.dvchost principal.hostname, principal.asset.hostname Dipetakan secara langsung, tetapi hanya jika tidak sama dengan raw.dvc.
raw.infobloxb1connectiontype additional.fields.value.string_value Dipetakan langsung dengan kunci infobloxb1connectiontype.
raw.infobloxb1ophname observer.hostname, observer.asset.hostname Dipetakan secara langsung.
raw.infobloxb1ophipaddress observer.ip Dipetakan secara langsung.
raw.infobloxb1policyname security_result.detection_fields.value Dipetakan langsung dengan kunci infobloxb1policyname.
raw.infobloxdnsqclass dns_question.class, dns_answer.class Digunakan untuk mendapatkan dns_question.class dan dns_answer.class berdasarkan tabel pemeta yang ditentukan dalam file dns_query_class_mapping.include.
raw.infobloxdnsqtype dns_question.type, dns_answer.type Digunakan untuk mendapatkan dns_question.type dan dns_answer.type berdasarkan tabel pemeta yang ditentukan dalam file dns_record_type.include.
raw.infobloxdnsrcode network.dns.response_code Digunakan untuk mendapatkan network.dns.response_code berdasarkan tabel pemeta yang ditentukan dalam file dns_response_code.include.
raw.infobloxpolicyid security_result.detection_fields.value Dipetakan langsung dengan kunci infobloxpolicyid.
raw.msg metadata.description raw.msg dipetakan langsung ke metadata.description setelah menghapus tanda petik di awal dan di akhir.
raw.name metadata.product_event_type Digabungkan dengan raw.deviceeventclassid (dipisahkan oleh -) dan dipetakan ke metadata.product_event_type.
rcode security_result.detection_fields.value, network.dns.response_code rcode dipetakan langsung ke security_result.detection_fields.value dengan kunci rcode.
Jika rcode adalah NXDOMAIN, network.dns.response_code ditetapkan ke 3 (dikonversi menjadi bilangan bulat tidak bertanda).
rdata network.dns.answers.data Dipetakan secara langsung.
rip target.ip, target.asset.ip Dipetakan secara langsung.
severity security_result.severity Dipetakan berdasarkan logika berikut:
- Jika severity adalah INFO (tidak peka huruf besar/kecil), petakan ke INFORMATIONAL.
- Jika severity adalah HIGH, petakan ke HIGH.
tclass security_result.detection_fields.value Dipetakan langsung dengan kunci tclass.
threat_indicator security_result.detection_fields.value Dipetakan langsung dengan kunci threat_indicator.
timestamp metadata.event_timestamp.seconds Diuraikan sebagai stempel waktu ISO8601 dan nilai detik diekstrak.
user principal.user.user_display_name Dipetakan secara langsung.
user_groups security_result.detection_fields.value Dipetakan langsung dengan kunci user_groups.
T/A principal.resource.resource_subtype Disetel ke Feed jika feed_name tidak kosong.
T/A metadata.log_type Tetapkan ke BLOXONE.
T/A additional.fields.key Tetapkan ke infobloxancount, infobloxarcount, infobloxb1connectiontype, infobloxnscount, intel:destination:ip:ip2asn:finish_ip, intel:destination:ip:ip2asn:start_ip, intel:source:ip:ip2asn:finish_ip, atau intel:source:ip:ip2asn:start_ip berdasarkan kolom raw yang sesuai.
T/A metadata.event_type Ditetapkan ke STATUS_UPDATE jika has_principal adalah true, jika tidak, ditetapkan ke GENERIC_EVENT.
T/A network.dns.questions.type Disetel ke 1 untuk A rekaman dan 12 untuk PTR rekaman, yang dikonversi menjadi bilangan bulat tidak bertanda.
T/A network.dns.answers.name, network.dns.answers.type, network.dns.answers.class Diekstrak dari raw.msg dengan mengurai string respons DNS.
T/A intermediary.hostname, intermediary.ip, intermediary.asset.ip Diekstrak dari raw.msg dengan mengurai string respons DNS.
intermediaryhost intermediary.hostname Dipetakan dari log perubahan
app_name principal.application Dipetakan dari log perubahan
endpoint_groups", "user_groups", "dns_view", "dhcp_fingerprint", "policy_name", "tclass", "tproperty", "threat_indicator", "category", and "rcode security_result.detection_fields Dipetakan dari log perubahan

Log Perubahan

Melihat Log Perubahan untuk parser ini

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