Mengumpulkan log BloxOne Threat Defense
Versi Parser: 8.0
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
- Login ke konsol Google SecOps.
- Buka Setelan SIEM > Agen Pengumpulan.
- Download File Autentikasi Penyerapan
Simpan file dengan aman di sistem tempat agen 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-collectorLayanan 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-collectorLayanan 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/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.0untuk mendengarkan di semua antarmuka (direkomendasikan)- Port
514adalah port syslog standar (memerlukan root di Linux; gunakan1514untuk 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
- Linux:
customer_id: ID Pelanggan yang disalin dari konsol Google SecOpsendpoint: 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:
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 syslog di Infoblox BloxOne
- Login ke Portal Infoblox.
- Buka Konfigurasi > Administrasi > Penghubung Data.
- Pilih tab Destination Configuration.
- Klik Create > Syslog.
- 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
514untuk UDP).
- 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.