Mengumpulkan log Imperva FlexProtect
Dokumen ini menjelaskan cara menyerap log Imperva FlexProtect ke Google Security Operations menggunakan agen Bindplane.
Parser mengekstrak kolom dari log berformat syslog Imperva FlexProtect dalam CEF (Common Event Format) dengan ekstensi kunci-nilai. Log ini menggunakan grok dan/atau kv untuk mengurai pesan CEF, lalu memetakan nilai ini ke Model Data Terpadu (UDM). Fungsi ini juga menetapkan nilai metadata default untuk sumber dan jenis peristiwa. Imperva FlexProtect menyediakan deployment fleksibel solusi keamanan Imperva (SecureSphere, Cloud WAF, Bot Protection) di berbagai lingkungan hybrid cloud.
Sebelum memulai
Pastikan Anda memiliki prasyarat berikut:
- Instance Google SecOps
- Host Windows 2016 atau yang lebih baru atau Linux dengan
systemd - Jika beroperasi dari balik proxy, pastikan port firewall terbuka sesuai dengan persyaratan agen Bindplane
- Akses istimewa ke konsol pengelolaan Imperva FlexProtect atau konsol produk individual
Mendapatkan kredensial Google SecOps untuk agen Bindplane
Untuk mengautentikasi agen Bindplane ke Google SecOps, pilih salah satu metode berikut:
- Deployment baru: Gunakan Chronicle API (Opsi 1).
- Deployment lama: Terus gunakan file autentikasi penyerapan (Opsi 2) hingga Ingestion API dihentikan pada 20 Juli 2027.
Opsi 1: Buat akun layanan untuk Chronicle API (direkomendasikan)
- Login ke konsolGoogle Cloud dan pilih project Google Cloud yang ditautkan ke instance Google SecOps Anda.
- Buka IAM & Admin > Service Accounts.
- Klik Create service account.
- Berikan detail konfigurasi berikut:
- Service account name: Masukkan nama akun (misalnya,
bindplane-ingest). - Deskripsi akun layanan: Masukkan deskripsi (misalnya,
Bindplane agent log ingestion).
- Service account name: Masukkan nama akun (misalnya,
- Klik Create and continue.
- Di bagian Grant this service account access to project, klik Select a role, lalu pilih Chronicle Editor.
- Klik Continue lalu klik Done.
- Klik akun layanan yang Anda buat, lalu buka tab Keys.
- Klik Add key > Create new key.
- Pilih JSON, lalu klik Create. File kunci akan didownload ke komputer Anda.
- Simpan file kunci sebagai
ingestion-auth.jsondi direktori pengumpul Bindplane (/opt/observiq-otel-collector/ingestion-auth.jsondi Linux atauC:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.jsondi Windows), atau perbaruicreds_file_pathdiconfig.yamlagar cocok dengan jalur tempat Anda menyimpannya. - Buka IAM & Admin > Settings dan salin Project number. Anda akan memerlukannya untuk konfigurasi pengekspor.
Opsi 2: Mendownload file autentikasi penyerapan (lama)
- Login ke konsol Google SecOps.
- Buka SIEM Settings > Collection Agents.
- 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 SIEM Settings > Profile.
- 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" /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 agen Bindplane.
Mengonfigurasi agen Bindplane untuk menyerap Syslog dan mengirimkannya ke Google SecOps
Akses file konfigurasi:
- Cari file
config.yaml. Biasanya, file ini berada di direktori/opt/observiq-otel-collector/di Linux atau di direktori penginstalan di Windows. - Buka file menggunakan editor teks (misalnya,
nano,vi, atau Notepad).
- Cari file
Edit file
config.yamlsebagai berikut:receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: protocol: https # Region of your instance, for example us, europe, asia-southeast1 location: <LOCATION> # Project number of the Google Cloud project linked to the instance project: '<PROJECT_NUMBER>' 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: chronicle.googleapis.com # Add optional ingestion labels for better organization log_type: 'IMPERVA_FLEXPROTECT' 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
<LOCATION>dengan region instance Google SecOps Anda (misalnya,us,europe, atauasia-southeast1). Pengekspor akan menambahkan awalanchronicle.googleapis.comdengan nilai ini. - Ganti
<PROJECT_NUMBER>dengan nomor project dari IAM & Admin > Settings. - Ganti
<CUSTOMER_ID>dengan ID Pelanggan yang sebenarnya. - Ganti
/path/to/ingestion-authentication-file.jsondengan jalur file tempat file kunci akun layanan (Opsi 1) disimpan di Langkah 1.
Pengekspor API penyerapan lama
Jika Anda menggunakan file autentikasi penyerapan dari Opsi 2, ganti blok
exportersdengan kode berikut. Tetapkancreds_file_pathke jalur ke file autentikasi penyerapan, dan jika instance Anda berada di luar AS, gantimalachiteingestion-pa.googleapis.comdengan endpoint regional Anda (misalnya,europe-malachiteingestion-pa.googleapis.com).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: 'IMPERVA_FLEXPROTECT' raw_log_field: body ingestion_labels:
Mulai ulang agen Bindplane untuk menerapkan perubahan
Untuk memulai ulang agen Bindplane di Linux, jalankan perintah berikut:
sudo systemctl restart observiq-otel-collectorUntuk memulai ulang agen Bindplane di Windows, Anda dapat menggunakan konsol Services atau memasukkan perintah berikut:
net stop observiq-otel-collector && net start observiq-otel-collector
Mengonfigurasi penerusan Syslog di Imperva FlexProtect
Untuk Komponen SecureSphere (lokal/cloud)
- Login ke Konsol Pengelolaan Imperva SecureSphere.
- Buka Configuration > Action Sets.
- Klik Add untuk membuat Set Tindakan baru.
Klik Add Action, lalu berikan detail konfigurasi berikut:
- Name: Masukkan nama deskriptif (misalnya,
Google SecOps Syslog). - Action Type: Pilih Syslog.
- Host: Masukkan alamat IP agen Bindplane.
- Port: Masukkan nomor port agen Bindplane (default 514).
- Protocol: Pilih UDP atau TCP.
- Syslog Log Level: Pilih DEBUG.
- Syslog Facility: Pilih LOCAL0.
- Format: Pilih CEF (Common Event Format).
- Name: Masukkan nama deskriptif (misalnya,
Simpan konfigurasi tindakan dan terapkan ke kebijakan keamanan yang relevan.
Untuk Komponen Cloud WAF/Incapsula
- Login ke Konsol Cloud Imperva.
- Buka Log > Log Setup.
- Konfigurasi tujuan syslog:
- Host: Masukkan alamat IP agen Bindplane.
- Port: Masukkan nomor port agen Bindplane (default 514).
- Protocol: Pilih UDP atau TCP.
- Format: Pilih CEF.
Tabel pemetaan UDM
| Kolom Log | Pemetaan UDM | Logika |
|---|---|---|
| act | read_only_udm.security_result.action_details | Dipetakan langsung dari kolom act. |
| app | read_only_udm.network.application_protocol | Dipetakan langsung dari kolom app. |
| ccode | read_only_udm.principal.location.country_or_region | Dipetakan langsung dari kolom ccode. |
| cicode | read_only_udm.principal.location.city | Dipetakan langsung dari kolom cicode. |
| cn1 | read_only_udm.network.http.response_code | Dipetakan langsung dari kolom cn1 setelah dikonversi ke bilangan bulat. |
| cs1 | read_only_udm.additional.fields.value.string_value | Dipetakan langsung dari kolom cs1. |
| cs2 | read_only_udm.additional.fields.value.string_value | Dipetakan langsung dari kolom cs2. |
| cs3 | read_only_udm.additional.fields.value.string_value | Dipetakan langsung dari kolom cs3. |
| cs4 | read_only_udm.additional.fields.value.string_value | Dipetakan langsung dari kolom cs4. |
| cs5 | read_only_udm.additional.fields.value.string_value | Dipetakan langsung dari kolom cs5. |
| cs6 | read_only_udm.additional.fields.value.string_value | Dipetakan langsung dari kolom cs6. |
| cs7 | read_only_udm.additional.fields.value.string_value | Dipetakan langsung dari kolom cs7. |
| cs8 | read_only_udm.additional.fields.value.string_value | Dipetakan langsung dari kolom cs8. |
| cs9 | read_only_udm.additional.fields.value.string_value | Dipetakan langsung dari kolom cs9. |
| cpt | read_only_udm.principal.port | Dipetakan langsung dari kolom cpt setelah dikonversi menjadi bilangan bulat. |
| Customer | read_only_udm.principal.user.user_display_name | Dipetakan langsung dari kolom Customer. |
| deviceExternalId | read_only_udm.about.asset.asset_id | Nilai ini diperoleh dengan menggabungkan "Incapsula.SIEMintegration:" dengan kolom deviceExternalId. |
| deviceFacility | read_only_udm.principal.location.city | Dipetakan langsung dari kolom deviceFacility. |
| dproc | read_only_udm.target.process.command_line | Dipetakan langsung dari kolom dproc. |
| end | read_only_udm.security_result.detection_fields.value | Dipetakan langsung dari kolom end. |
| fileId | read_only_udm.network.session_id | Dipetakan langsung dari kolom fileId. |
| filePermission | read_only_udm.about.resource.attribute.permissions.name | Dipetakan langsung dari kolom filePermission. |
| in | read_only_udm.network.received_bytes | Dipetakan langsung dari kolom in. |
| qstr | read_only_udm.security_result.detection_fields.value | Dipetakan langsung dari kolom qstr. |
| request | read_only_udm.target.url | Dipetakan langsung dari kolom request. |
| requestClientApplication | read_only_udm.network.http.user_agent | Dipetakan langsung dari kolom requestClientApplication. |
| requestMethod | read_only_udm.network.http.method | Dipetakan langsung dari kolom requestMethod. |
| siteid | read_only_udm.security_result.detection_fields.value | Dipetakan langsung dari kolom siteid. |
| sip | read_only_udm.target.ip | Dipetakan langsung dari kolom sip. |
| sourceServiceName | read_only_udm.principal.application | Dipetakan langsung dari kolom sourceServiceName. |
| spt | read_only_udm.target.port | Dipetakan langsung dari kolom spt setelah dikonversi menjadi bilangan bulat. |
| src | read_only_udm.principal.ip | Dipetakan langsung dari kolom src. |
| start | read_only_udm.security_result.detection_fields.value | Dipetakan langsung dari kolom start. |
| suid | read_only_udm.principal.user.userid | Dipetakan langsung dari kolom suid. |
| ver | read_only_udm.network.tls.version | Dipetakan langsung dari kolom ver. |
| read_only_udm.about.asset.asset_id | Nilai ini diperoleh dengan menggabungkan "Incapsula.SIEMintegration:" dengan kolom deviceExternalId. |
|
| read_only_udm.additional.fields.key | Nilai ditentukan oleh logika parser berdasarkan label kolom, misalnya: - cs1Label dipetakan ke "Cap Support" - cs2Label dipetakan ke "Javascript Support" - cs3Label dipetakan ke "CO Support" - cs4Label dipetakan ke "VID" - cs5Label dipetakan ke "clappsig" - cs6Label dipetakan ke "clapp" - cs7Label dipetakan ke "latitude" - cs8Label dipetakan ke "longitude" - cs9Label dipetakan ke "Rule name" |
|
| read_only_udm.metadata.event_timestamp.nanos | Dipetakan langsung dari kolom collection_time.nanos. |
|
| read_only_udm.metadata.event_timestamp.seconds | Dipetakan langsung dari kolom collection_time.seconds. |
|
| read_only_udm.metadata.event_type | Nilai ditentukan berdasarkan ada tidaknya kolom src dan sip: - Jika keduanya ada, nilai ditetapkan ke "NETWORK_HTTP". - Jika hanya src yang ada, nilai ditetapkan ke "USER_UNCATEGORIZED". - Jika tidak, nilai ditetapkan ke "GENERIC_EVENT". |
|
| read_only_udm.metadata.product_event_type | Nilai ini diperoleh dengan menggabungkan "[", nilai numerik dari kolom header CEF di indeks 4, "] - ", dan deskripsi teks dari kolom header CEF di indeks 4. | |
| read_only_udm.metadata.product_name | Nilai ditetapkan secara statis ke "SIEMintegration". | |
| read_only_udm.metadata.product_version | Nilai ditetapkan secara statis ke "1". | |
| read_only_udm.metadata.vendor_name | Nilai ditetapkan secara statis ke "Incapsula". | |
| read_only_udm.security_result.detection_fields.key | Nilai ditetapkan secara statis ke "siteid", "event_start_time", "event_end_time", atau "qstr" berdasarkan kolom terkait yang sedang diproses. | |
| read_only_udm.security_result.severity | Nilai ditetapkan secara statis ke "LOW". | |
| read_only_udm.target.port | Dipetakan langsung dari kolom spt setelah dikonversi ke bilangan bulat. |
|
qstr |
security_results.detection_fields |
Dipetakan dari log perubahan |
siteid |
security_results.detection_fields |
Dipetakan dari log perubahan |
device_facility |
principal.location.city |
Dipetakan dari log perubahan |
start |
security_result.detection_fields.event_start_time |
Dipetakan dari log perubahan |
cs8Label |
additional_cs8.key |
Dipetakan dari log perubahan |
cs8 |
additional_cs8.value.string_value |
Dipetakan dari log perubahan |
cs9Label |
additional_cs9.key |
Dipetakan dari log perubahan |
cs9 |
additional_cs9.value.string_value |
Dipetakan dari log perubahan |
end |
security_result.detection_fields.event_end_time |
Dipetakan dari log perubahan |
Log Perubahan
Melihat Log Perubahan untuk parser ini
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.