Mengumpulkan log ExtraHop RevealX

Didukung di:

Dokumen ini menjelaskan cara menyerap log ExtraHop RevealX ke Google Security Operations menggunakan Bindplane. Parser mengekstrak kolom dari log berformat JSON dan Syslog. Parser ini menggunakan pola grok dan logika bersyarat untuk menangani berbagai format log, memetakan kolom yang diekstrak ke UDM, dan memperkaya data dengan informasi terkait keamanan seperti tingkat keparahan dan kategori. Parser juga menangani jenis peristiwa ExtraHop tertentu seperti Pengikatan Ulang DNS, error autentikasi Kerberos, dan koneksi RDP, dengan menerapkan logika parsing khusus untuk setiap jenis peristiwa.

Sebelum memulai

Pastikan Anda memenuhi prasyarat berikut:

  • Instance Google SecOps
  • Windows 2016 atau yang lebih baru atau host Linux dengan systemd
  • Jika berjalan di belakang proxy, pastikan port firewall terbuka
  • Akses istimewa ke ExtraHop Reveal X

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
    

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
    

Referensi penginstalan tambahan

Untuk opsi penginstalan tambahan, lihat panduan penginstalan.

Mengonfigurasi agen BindPlane untuk menyerap Syslog dan mengirimkannya ke Google SecOps

  1. Akses file konfigurasi:
    • Cari file config.yaml. Biasanya, file ini berada di direktori /etc/bindplane-agent/ di Linux atau di direktori penginstalan di Windows.
    • Buka file menggunakan editor teks (misalnya, nano, vi, atau Notepad).
  2. Edit file config.yaml sebagai berikut:

    receivers:
        udplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds_file_path: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            log_type: 'EXTRAHOP'
            raw_log_field: body
            ingestion_labels:
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
    • Ganti port dan alamat IP sesuai kebutuhan di infrastruktur Anda.
    • Ganti <customer_id> dengan ID pelanggan yang sebenarnya.
    • Perbarui /path/to/ingestion-authentication-file.json ke jalur tempat file autentikasi disimpan di bagian Dapatkan file autentikasi penyerapan Google SecOps.

Mulai ulang agen Bindplane untuk menerapkan perubahan

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

    sudo systemctl restart bindplane-agent
    
  • Untuk memulai ulang agen Bindplane di Windows, Anda dapat menggunakan konsol Services atau memasukkan perintah berikut:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Mengonfigurasi Syslog ExtraHop

  1. Login ke Administrasi ExtraHop menggunakan https://<extrahop-hostname-or-IP-address>/admin.
  2. Buka Status dan Diagnostik > Log Audit.
  3. Klik Configure Syslog Settings.
  4. Berikan detail konfigurasi berikut:
    • Tujuan: Masukkan alamat IP agen Bindplane.
    • Protocol: Pilih UDP, atau TCP, bergantung pada konfigurasi Bindplane Anda.
    • Port: Masukkan nomor port agen Bindplane.
    • Klik Test Settings.
  5. Klik Simpan.

Tabel Pemetaan UDM

Kolom Log Pemetaan UDM Logika
alert_name security_result.summary Nilai alert_name dari log mentah dipetakan ke security_result.summary.
answers[].data network.dns.answers[].data Nilai data untuk setiap elemen dalam array answers dari log mentah dipetakan ke kolom data dari elemen yang sesuai dalam array network.dns.answers.
answers[].name network.dns.answers[].name Nilai name untuk setiap elemen dalam array answers dari log mentah dipetakan ke kolom name dari elemen yang sesuai dalam array network.dns.answers.
answers[].ttl network.dns.answers[].ttl Nilai ttl untuk setiap elemen dalam array answers dari log mentah dipetakan ke kolom ttl dari elemen yang sesuai dalam array network.dns.answers.
answers[].typeNum network.dns.answers[].type Nilai typeNum untuk setiap elemen dalam array answers dari log mentah dipetakan ke kolom type dari elemen yang sesuai dalam array network.dns.answers.
client_ip principal.ip Nilai client_ip dari log mentah dipetakan ke principal.ip.
cn1 security_result.rule_labels[].value Nilai cn1 dari log mentah digunakan sebagai nilai untuk elemen security_result.rule_labels dengan kunci "ID Deteksi".
cn2 security_result.detection_fields[].value Nilai cn2 dari log mentah digunakan sebagai nilai untuk elemen security_result.detection_fields dengan kunci "riskscore".
cs1 security_result.rule_name Nilai cs1 dari log mentah dipetakan ke security_result.rule_name.
cs2 security_result.category_details[] Nilai cs2 dari log mentah ditambahkan sebagai elemen ke array security_result.category_details.
description metadata.description Nilai description dari log mentah, setelah beberapa pemrosesan (menghapus karakter baris baru dan garis miring terbalik), dipetakan ke metadata.description. Dalam beberapa kasus, kolom lain dari log mentah dapat berkontribusi pada atau menggantikan kolom ini.
details principal.resource.resource_subtype, security_result.summary, principal.ip Kolom details diuraikan. Nilai yang terkait dengan kunci "fasilitas" dipetakan ke principal.resource.resource_subtype. Nilai yang terkait dengan kunci "details" dipetakan ke security_result.summary. Nilai yang terkait dengan kunci "src_ip" dipetakan ke principal.ip.
dst target.ip atau target.mac Nilai dst dari log mentah dipetakan ke target.ip jika berupa alamat IP, atau target.mac jika berupa alamat MAC.
dst_ip target.ip Nilai dst_ip dari log mentah dipetakan ke target.ip.
eh_event metadata.event_type, network.application_protocol Jika eh_event adalah "dns", metadata.event_type akan ditetapkan ke NETWORK_DNS dan network.application_protocol akan ditetapkan ke DNS. Jika eh_event adalah "RDP", metadata.event_type akan disetel ke NETWORK_CONNECTION dan network.application_protocol akan disetel ke RDP.
event_id metadata.product_event_type Nilai event_id dari log mentah dipetakan ke metadata.product_event_type.
facility principal.resource.resource_subtype Nilai facility dari log mentah dipetakan ke principal.resource.resource_subtype.
ipaddr principal.ip Nilai ipaddr dari log mentah dipetakan ke principal.ip.
jsonPayload.description metadata.product_event_type, principal.hostname, principal.asset.hostname, security_result.summary Kolom jsonPayload.description diuraikan sebagai JSON. Kolom "operation" dipetakan ke metadata.product_event_type. Kolom "event" (setelah menghapus "Audit Log") dipetakan ke principal.hostname dan principal.asset.hostname. Kolom "details" dipetakan ke security_result.summary.
jsonPayload.event metadata.product_event_type, principal.hostname, principal.asset.hostname Nilai jsonPayload.event dari log mentah (setelah menghapus "Audit Log") dipetakan ke metadata.product_event_type, principal.hostname, dan principal.asset.hostname.
jsonPayload.id metadata.product_log_id Nilai jsonPayload.id dari log mentah dipetakan ke metadata.product_log_id.
macaddr principal.mac Nilai macaddr dari log mentah dipetakan ke principal.mac.
name metadata.description Nilai name dari log mentah dipetakan ke metadata.description.
object_id target.resource.product_object_id Nilai object_id dari log mentah dipetakan ke target.resource.product_object_id.
object_name target.resource.name Nilai object_name dari log mentah dipetakan ke target.resource.name.
object_type target.resource.resource_type Nilai object_type dari log mentah (dikonversi menjadi huruf besar) dipetakan ke target.resource.resource_type.
operation metadata.product_event_type Nilai operation dari log mentah dipetakan ke metadata.product_event_type.
priority security_result.severity, security_result.severity_details Jika priority adalah "notice", security_result.severity ditetapkan ke MEDIUM dan security_result.severity_details ditetapkan ke nilai priority.
product_event_type metadata.product_event_type Nilai product_event_type dari log mentah dipetakan ke metadata.product_event_type. Kolom ini juga digunakan untuk menentukan metadata.event_type dan kolom lainnya berdasarkan nilainya.
qname network.dns.questions[].name Nilai qname dari log mentah dipetakan ke kolom name elemen network.dns.questions.
qname_or_host intermediary.hostname Nilai qname_or_host dari log mentah dipetakan ke intermediary.hostname.
qtype network.dns.questions[].type Nilai qtype dari log mentah dipetakan ke kolom type elemen network.dns.questions, yang mengonversi representasi string ke nilai numeriknya sesuai dengan jenis data DNS.
resource.labels.project_id target.resource.attribute.labels[].value Nilai resource.labels.project_id dari log mentah digunakan sebagai nilai untuk elemen target.resource.attribute.labels dengan kunci "Project id".
resource.type target.resource.resource_subtype Nilai resource.type dari log mentah dipetakan ke target.resource.resource_subtype.
rdp_record.clientBuild metadata.product_version Nilai rdp_record.clientBuild dari log mentah dipetakan ke metadata.product_version.
rdp_record.clientBytes network.sent_bytes Nilai rdp_record.clientBytes dari log mentah dipetakan ke network.sent_bytes.
rdp_record.clientName principal.hostname Nilai rdp_record.clientName dari log mentah dipetakan ke principal.hostname.
rdp_record.clientPort principal.port Nilai rdp_record.clientPort dari log mentah dipetakan ke principal.port.
rdp_record.cookie principal.user.userid Nilai rdp_record.cookie (setelah menghapus "mstshash=") dari log mentah dipetakan ke principal.user.userid.
rdp_record.proto network.ip_protocol Nilai rdp_record.proto dari log mentah dipetakan ke network.ip_protocol, mengonversi "TCP" menjadi "TCP" dan "UDP" menjadi "UDP".
rdp_record.selectedProtocol security_result.description Nilai rdp_record.selectedProtocol dari log mentah dipetakan ke security_result.description.
rdp_record.serverBytes network.received_bytes Nilai rdp_record.serverBytes dari log mentah dipetakan ke network.received_bytes.
rdp_record.serverPort target.port Nilai rdp_record.serverPort dari log mentah dipetakan ke target.port.
rt metadata.event_timestamp Nilai rt dari log mentah diuraikan sebagai stempel waktu dan dipetakan ke metadata.event_timestamp.
severity security_result.severity, security_result.severity_details, event.idm.is_alert, event.idm.is_significant Nilai severity dipetakan ke security_result.severity_details. Fungsi ini juga digunakan untuk menentukan nilai security_result.severity, event.idm.is_alert, dan event.idm.is_significant.
src principal.ip atau principal.mac Nilai src dari log mentah dipetakan ke principal.ip jika berupa alamat IP, atau principal.mac jika berupa alamat MAC.
src_ip principal.ip atau principal.mac Nilai src_ip dari log mentah dipetakan ke principal.ip jika berupa alamat IP, atau principal.mac jika berupa alamat MAC.
summary security_result.summary Nilai summary dari log mentah dipetakan ke security_result.summary.
ts metadata.event_timestamp Nilai ts dari log mentah diuraikan sebagai stempel waktu dan dipetakan ke metadata.event_timestamp.
user principal.user.userid Nilai user dari log mentah dipetakan ke principal.user.userid.
(T/A) metadata.log_type Selalu disetel ke "EXTRAHOP".
(T/A) metadata.vendor_name Selalu disetel ke "EXTRAHOP".
(T/A) metadata.product_name Selalu disetel ke "EXTRAHOP".
(T/A) security_result.severity Tetapkan ke CRITICAL secara default, atau berdasarkan nilai severity atau priority.
(T/A) event.idm.is_alert Ditetapkan ke true jika security_result.severity adalah "TINGGI" atau "KRITIS".
(T/A) event.idm.is_significant Ditetapkan ke true jika security_result.severity adalah "TINGGI" atau "KRITIS".
(T/A) metadata.event_type Ditentukan berdasarkan nilai kolom lain, seperti eh_event, product_event_type, has_principal, dan dst. Setelan defaultnya adalah GENERIC_EVENT.
(T/A) network.application_protocol Ditetapkan ke DNS jika eh_event adalah "dns" atau message berisi "DNS Rebinding". Ditetapkan ke RDP jika eh_event adalah "RDP".
(T/A) security_result.rule_labels[].key Disetel ke "ID Deteksi" untuk label aturan yang berasal dari cn1.
(T/A) security_result.detection_fields[].key Tetapkan ke "riskscore" untuk kolom deteksi yang berasal dari cn2.
(T/A) principal.user.attribute.roles[].type Tetapkan ke SERVICE_ACCOUNT jika user_name ada.
(T/A) extensions.auth.type Disetel ke SSO jika product_event_type adalah "Error Autentikasi Klien Kerberos".
(T/A) extensions.auth.mechanism Disetel ke USERNAME_PASSWORD jika product_event_type adalah "Unsafe LDAP Authentication" atau "Kerberos Client Auth Errors".
(T/A) security_result.category Disetel ke NETWORK_SUSPICIOUS jika product_event_type adalah "DNS Internal Reverse Lookup Scan" atau berisi "Inbound Suspicious Connections". Setel ke NETWORK_MALICIOUS jika product_event_type adalah "Request to External Database Server".
(T/A) network.http.response_code Ditetapkan berdasarkan status_code yang diekstrak dari product_event_type jika cocok dengan pola "HTTP Server %{INT:status_code} %{GREEDYDATA}".
jsonPayload.cs1 security_result.detection_fields[].value Nilai jsonPayload.cs1 dari log mentah digunakan sebagai nilai untuk elemen security_result.detection_fields.
jsonPayload.cn1 security_result.detection_fields[].value Nilai jsonPayload.cn1 dari log mentah digunakan sebagai nilai untuk elemen security_result.detection_fields.
jsonPayload.cn2 security_result.detection_fields[].value Nilai jsonPayload.cn2 dari log mentah digunakan sebagai nilai untuk elemen security_result.detection_fields.
jsonPayload.cs1Label, jsonPayload.cn1Label, jsonPayload.cn2Label security_result.detection_fields[].key Kolom ini dari log mentah digunakan sebagai kunci untuk elemen yang sesuai di security_result.detection_fields.
jsonPayload.src principal.ip Nilai jsonPayload.src dari log mentah dipetakan ke principal.ip.
jsonPayload.dst target.ip Nilai jsonPayload.dst dari log mentah dipetakan ke target.ip.

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