Mengumpulkan log IBM Security Verify Access
Dokumen ini menjelaskan cara mengumpulkan log IBM Security Verify Access. Parser mengekstrak kolom umum seperti stempel waktu, nama host, dan deskripsi menggunakan pola Grok. Kemudian, alat ini memanfaatkan penguraian XML untuk informasi peristiwa mendetail yang disematkan dalam kolom deskripsi, yang pada akhirnya memetakan data yang diekstrak ke model data terpadu (UDM) untuk representasi peristiwa keamanan standar.
Sebelum memulai
- Pastikan Anda memiliki instance Google Security Operations.
- Pastikan Anda menggunakan Windows 2016 atau yang lebih baru, atau host Linux dengan
systemd
. - Jika berjalan di balik proxy, pastikan port firewall terbuka.
- Pastikan Anda memiliki akses administratif ke IBM Security Verify Access (ISVA).
Mendapatkan file autentikasi penyerapan Google SecOps
- Login ke konsol Google SecOps.
- Buka Setelan SIEM > Agen Pengumpulan.
- Download File Autentikasi Proses Transfer. 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
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" /quiet
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.sh
Referensi Penginstalan Tambahan
- Untuk opsi penginstalan tambahan, lihat panduan penginstalan ini.
Mengonfigurasi Agen BindPlane untuk menyerap Syslog dan mengirim ke Google SecOps
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).
- Cari file
Edit file
config.yaml
sebagai berikut:receivers: udplog: # Replace the below port <54525> and IP <0.0.0.0> with your specific values listen_address: "0.0.0.0:54525" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the creds location below according the placement of the credentials file you downloaded creds: '{ json file for creds }' # Replace <customer_id> below with your actual ID that you copied customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # You can apply ingestion labels below as preferred ingestion_labels: log_type: SYSLOG namespace: ibm_security_verify raw_log_field: body 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 Mendapatkan file autentikasi penyerapan Google SecOps.
Mulai ulang Agen BindPlane untuk menerapkan perubahan
Di Linux, untuk memulai ulang Agen BindPlane, jalankan perintah berikut:
sudo systemctl restart bindplane-agent
Di Windows, untuk memulai ulang Agen BindPlane, Anda dapat menggunakan konsol Services atau memasukkan perintah berikut:
net stop BindPlaneAgent && net start BindPlaneAgent
Menyesuaikan Format Log
- Untuk mengedit file konfigurasi
WebSEAL
, gunakan Antarmuka Pengelolaan Lokal (LMI) perangkat. - Di LMI, buka Reverse Proxy Management.
- Klik Kelola > Konfigurasi > Edit file konfigurasi (Anda dapat menggunakan editor untuk langsung mengedit file konfigurasi
WebSEAL
). - Buka logging[stanza], cari
syntax requests = {yes|no}
, lalu klik Yes. - Buka parameter
gmt-time
dan edit sebagai berikut:gmt-time = yes
. Ganti request-log-format dengan yang berikut ini:
request-log-format = ibmsva: %h %l "%u" %t "%r" %s %b %T %j %{X-Forwarded-For}i %a %A %H %p %m %U %v %d %q
Lihat penjelasan setiap perintah berikut:
ibmsva:
Mengidentifikasi log dari perangkat SVA%h
: Host jarak jauh%l
: Nama log jarak jauh%u
: Pengguna jarak jauh%t
: Waktu dan tanggal dalam format CLF%r
: Baris pertama permintaan%s
: Status respons%b
: Byte dalam respons (tidak termasuk header HTTP)%T
: Waktu untuk menayangkan permintaan (detik)%j
: Nama persimpangan%X-Forwarded-For
: Alamat IP yang diteruskan%a
: Alamat IP jarak jauh%A
: Alamat IP lokal%H
: Protokol permintaan%p
: Port%m
: Metode permintaan (GET, POST, HEAD)%U
: URL yang diminta%v
: Nama server%d
: ID transaksi%q
: String kueri
Mengonfigurasi Penerusan Syslog di ISVA
- Login ke Antarmuka Pengelolaan Lokal ISVA.
- Buka Monitor > Logs > Remote Syslog Forwarding.
- Klik Tambahkan.
- Tentukan detail untuk server syslog jarak jauh.
- Server: alamat IP atau nama host server syslog (Bindplane).
- Port: port tempat server syslog memproses permintaan (Bindplane).
- Protocol: pilih UDP atau TCP (bergantung pada konfigurasi syslog/Bindplane Anda).
- Format: pilih Syslog.
- Klik Save.
Mengonfigurasi sumber log untuk server log jarak jauh
- Pilih server syslog jarak jauh untuk mengirim log.
- Klik Sumber.
- Klik Tambahkan.
Tentukan detail untuk sumber log, lalu klik Oke.
- Nama: pilih WebSEAL.
- Nama Instance: pilih instance WebSEAL.
- File log: nama file log sumber.
- Opsional: Tag: tag yang akan ditambahkan ke entri log yang dikirim.
- Fasilitas: semua pesan akan dikirim dengan kode fasilitas yang ditentukan (daftar kode yang tersedia).
- Keparahan: tingkat keparahan entri log yang dikirim.
- Semua pesan akan dikirim dengan tingkat keparahan yang ditentukan.
Klik Save.
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
action | read_only_udm.security_result.action_details | Diekstrak dari kolom XML "/event/originator/action" saat kolom "description" berisi "event". |
aplikasi | read_only_udm.target.application | Diekstrak menggunakan pola grok dari kolom "message". |
auth_details | read_only_udm.security_result.detection_fields.value | Diekstrak dari kolom XML "/event/accessor/principal/@auth" saat kolom "description" berisi "event". Kunci ditetapkan ke "Auth". |
authntype | read_only_udm.security_result.detection_fields.value | Diekstrak dari kolom XML "/event/authntype" saat kolom "description" berisi "event". Kunci ditetapkan ke "Authntype". |
data | read_only_udm.metadata.description | Jika kolom "data" tidak kosong, nilainya akan menggantikan nilai "read_only_udm.metadata.description" yang ada. |
deskripsi | read_only_udm.metadata.description | Diekstrak menggunakan pola grok dari kolom "message". Jika kolom "description" berisi "event", kolom tersebut akan diuraikan sebagai XML untuk mengekstrak kolom lain. |
event_id | read_only_udm.metadata.product_log_id | Diekstrak dari kolom XML "/event/originator/event_id" saat kolom "description" berisi "event". |
hostname | read_only_udm.principal.hostname, read_only_udm.principal.asset.hostname | Diekstrak menggunakan pola grok dari kolom "message". |
id | read_only_udm.metadata.product_log_id | Diekstrak menggunakan pola grok dari kolom "message". |
location | read_only_udm.principal.location.name | Diekstrak dari kolom XML "/event/originator/location" saat kolom "description" berisi "event". |
hasil | read_only_udm.security_result.detection_fields.value | Diekstrak dari kolom XML "/event/outcome" saat kolom "description" berisi "event". Kunci ditetapkan ke "Hasil". |
outcome_reason | read_only_udm.security_result.summary | Diekstrak dari kolom XML "/event/outcome/@reason" saat kolom "description" berisi "event". Juga digunakan untuk menentukan nilai "read_only_udm.security_result.action" - ditetapkan ke "BLOCK" jika "outcome_reason" berisi "fail" (tidak peka huruf besar/kecil), jika tidak, tetapkan ke "ALLOW". |
outcome_status | read_only_udm.security_result.detection_fields.value | Diekstrak dari kolom XML "/event/outcome/@status" saat kolom "description" berisi "event". Kunci ditetapkan ke "Status Hasil". |
originator_blade | read_only_udm.security_result.detection_fields.value | Diekstrak dari kolom XML "/event/originator/@blade" saat kolom "description" berisi "event". Kunci ditetapkan ke "Originator Blade". |
originator_component | read_only_udm.security_result.detection_fields.value | Diekstrak dari kolom XML "/event/originator/component" saat kolom "description" berisi "event". Kunci ditetapkan ke "Originator Component". |
originator_instance | read_only_udm.security_result.detection_fields.value | Diekstrak dari kolom XML "/event/originator/@instance" saat kolom "description" berisi "event". Kunci ditetapkan ke "Instance Originator". |
session_id | read_only_udm.network.session_id | Diekstrak dari kolom XML "/event/accessor/session_id" saat kolom "description" berisi "event". |
target_url | read_only_udm.target.url | Diekstrak dari kolom XML "/event/target/url" saat kolom "description" berisi "event". |
thread_id | read_only_udm.security_result.detection_fields.value | Diekstrak menggunakan pola grok dari kolom "message". Kunci ditetapkan ke "ID thread". |
timestamp | read_only_udm.metadata.event_timestamp | Diekstrak menggunakan pola grok dari kolom "message". Diformat menggunakan filter "date" berdasarkan keberadaan dan format kolom "timezone". |
time_stamp | read_only_udm.metadata.event_timestamp | Diekstrak dari kolom XML "/event/date" saat kolom "description" berisi "event". Diformat menggunakan filter "date". |
zona waktu | Digunakan bersama dengan kolom "stempel waktu" untuk memformat kolom "read_only_udm.metadata.event_timestamp" menggunakan filter "tanggal". | |
url | read_only_udm.target.url | Diekstrak menggunakan pola grok dari kolom "message". |
pengguna | read_only_udm.principal.user.userid | Diekstrak dari kolom XML "/event/accessor/principal" saat kolom "description" berisi "event". |
user_location | read_only_udm.principal.ip, read_only_udm.principal.asset.ip | Diekstrak dari kolom XML "/event/accessor/user_location" saat kolom "description" berisi "event". Jika "user_location_type" berisi "ip" (tidak peka huruf besar/kecil), nilai tersebut akan diuraikan sebagai alamat IP dan dipetakan ke "read_only_udm.principal.ip" dan "read_only_udm.principal.asset.ip". |
user_location_type | Digunakan untuk menentukan apakah "user_location" harus diuraikan sebagai alamat IP. | |
T/A | read_only_udm.metadata.vendor_name | Tetapkan ke "IBM_SECURITY_VERIFY". |
T/A | read_only_udm.metadata.product_name | Tetapkan ke "IBM_SECURITY_VERIFY". |
T/A | read_only_udm.metadata.event_type | Awalnya ditetapkan ke "STATUS_UPDATE". Diubah menjadi "USER_LOGIN" jika kolom "user" dan "hostname" diekstrak. |
T/A | read_only_udm.extensions.auth.type | Tetapkan ke "SSO" jika kolom "user" dan "hostname" diekstrak. |
T/A | read_only_udm.network.application_protocol | Tetapkan ke "HTTP" jika kolom "message" berisi "HttpServletRequest". |
T/A | read_only_udm.metadata.log_type | Tetapkan ke "IBM_SECURITY_VERIFY" - diambil dari metadata log. |
Perubahan
2024-05-13
- Parser diperbarui untuk mendukung log format XML.
2023-01-25
- Parser yang baru dibuat.