Collect Imperva FlexProtect logs
This document explains how to ingest Imperva FlexProtect logs to Google Security Operations using Bindplane. The parser first cleans up and pre-processes incoming logs, then attempts to extract Common Event Format (CEF) data. Depending on the presence of specific fields like "src" and "sip", it assigns a UDM event type and maps relevant CEF fields to the UDM schema, finally enriching the output with additional custom fields. Imperva FlexProtect provides flexible deployment of Imperva security solutions (SecureSphere, Cloud WAF, Bot Protection) across hybrid cloud environments.
Before you begin
Make sure you have the following prerequisites:
- A Google SecOps instance
- Windows 2016 or later, or a Linux host with
systemd - If running behind a proxy, ensure firewall ports are open per the Bindplane agent requirements
- Privileged access to the Imperva FlexProtect management console or individual product consoles
Get Google SecOps ingestion authentication file
- Sign in to the Google SecOps console.
- Go to SIEM Settings > Collection Agents.
- Download the Ingestion Authentication File. Save the file securely on the system where Bindplane will be installed.
Get Google SecOps customer ID
- Sign in to the Google SecOps console.
- Go to SIEM Settings > Profile.
- Copy and save the Customer IDfrom the Organization Detailssection.
Install the Bindplane agent
Windows installation
- Open the Command Promptor PowerShellas an administrator.
-
Run the following command:
msiexec / i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" / quiet
Linux installation
- Open a terminal with root or sudo privileges.
-
Run the following command:
sudo sh -c " $( curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh ) " install_unix.sh
Additional installation resources
- For additional installation options, consult this installation guide .
Configure the Bindplane agent to ingest Syslog and send to Google SecOps
-
Access the configuration file:
- Locate the
config.yamlfile. Typically, it's in the/etc/bindplane-agent/directory on Linux or in the installation directory on Windows. - Open the file using a text editor (for example,
nano,vi, or Notepad).
- Locate the
-
Edit the
config.yamlfile as follows: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 : 'IMPERVA_FLEXPROTECT' raw_log_field : body ingestion_labels : service : pipelines : logs/source0__chronicle_w_labels-0 : receivers : - udplog exporters : - chronicle/chronicle_w_labels- Replace the port and IP address as required in your infrastructure.
- Replace
<customer_id>with the actual customer ID. - Update
/path/to/ingestion-authentication-file.jsonto the path where the authentication file was saved in the Get Google SecOps ingestion authentication file section.
Restart the Bindplane agent to apply the changes
-
To restart the Bindplane agent in Linux, run the following command:
sudo systemctl restart bindplane-agent -
To restart the Bindplane agent in Windows, you can either use the Servicesconsole or enter the following command:
net stop BindPlaneAgent && net start BindPlaneAgent
Configure Syslog forwarding on Imperva FlexProtect
For SecureSphere Component (On-premises/Cloud)
- Sign in to the Imperva SecureSphere Management Console.
- Go to Configuration > Action Sets.
- Click Addto create a new Action Set.
-
Click Add Actionand provide the following configuration details:
- Name: Enter a descriptive name (for example,
Google SecOps Syslog). - Action Type: Select Syslog.
- Host: Enter the Bindplane agent IP address.
- Port: Enter the Bindplane agent port number (default
514). - Protocol: Select UDPor TCP.
- Syslog Log Level: Select DEBUG.
- Syslog Facility: Select LOCAL0.
- Format: Select CEF(Common Event Format).
- Name: Enter a descriptive name (for example,
-
Save the action configuration and apply it to relevant security policies.
For Cloud WAF/Incapsula Component
- Sign in to the Imperva Cloud Console.
- Go to Logs > Log Setup.
- Configure syslog destination:
- Host: Enter the Bindplane agent IP address.
- Port: Enter the Bindplane agent port number (default
514). - Protocol: Select UDPor TCP.
- Format: Select CEF.
UDM Mapping Table
| Log Field | UDM Mapping | Logic |
|---|---|---|
|
act
|
read_only_udm.security_result.action_details | Directly mapped from the act
field. |
|
app
|
read_only_udm.network.application_protocol | Directly mapped from the app
field. |
|
ccode
|
read_only_udm.principal.location.country_or_region | Directly mapped from the ccode
field. |
|
cicode
|
read_only_udm.principal.location.city | Directly mapped from the cicode
field. |
|
cn1
|
read_only_udm.network.http.response_code | Directly mapped from the cn1
field after converting to integer. |
|
cs1
|
read_only_udm.additional.fields.value.string_value | Directly mapped from the cs1
field. |
|
cs2
|
read_only_udm.additional.fields.value.string_value | Directly mapped from the cs2
field. |
|
cs3
|
read_only_udm.additional.fields.value.string_value | Directly mapped from the cs3
field. |
|
cs4
|
read_only_udm.additional.fields.value.string_value | Directly mapped from the cs4
field. |
|
cs5
|
read_only_udm.additional.fields.value.string_value | Directly mapped from the cs5
field. |
|
cs6
|
read_only_udm.additional.fields.value.string_value | Directly mapped from the cs6
field. |
|
cs7
|
read_only_udm.additional.fields.value.string_value | Directly mapped from the cs7
field. |
|
cs8
|
read_only_udm.additional.fields.value.string_value | Directly mapped from the cs8
field. |
|
cs9
|
read_only_udm.additional.fields.value.string_value | Directly mapped from the cs9
field. |
|
cpt
|
read_only_udm.principal.port | Directly mapped from the cpt
field after converting to integer. |
|
Customer
|
read_only_udm.principal.user.user_display_name | Directly mapped from the Customer
field. |
|
deviceExternalId
|
read_only_udm.about.asset.asset_id | The value is derived by concatenating "Incapsula.SIEMintegration:" with the deviceExternalId
field. |
|
deviceFacility
|
read_only_udm.principal.location.city | Directly mapped from the deviceFacility
field. |
|
dproc
|
read_only_udm.target.process.command_line | Directly mapped from the dproc
field. |
|
end
|
read_only_udm.security_result.detection_fields.value | Directly mapped from the end
field. |
|
fileId
|
read_only_udm.network.session_id | Directly mapped from the fileId
field. |
|
filePermission
|
read_only_udm.about.resource.attribute.permissions.name | Directly mapped from the filePermission
field. |
|
in
|
read_only_udm.network.received_bytes | Directly mapped from the in
field. |
|
qstr
|
read_only_udm.security_result.detection_fields.value | Directly mapped from the qstr
field. |
|
request
|
read_only_udm.target.url | Directly mapped from the request
field. |
|
requestClientApplication
|
read_only_udm.network.http.user_agent | Directly mapped from the requestClientApplication
field. |
|
requestMethod
|
read_only_udm.network.http.method | Directly mapped from the requestMethod
field. |
|
siteid
|
read_only_udm.security_result.detection_fields.value | Directly mapped from the siteid
field. |
|
sip
|
read_only_udm.target.ip | Directly mapped from the sip
field. |
|
sourceServiceName
|
read_only_udm.principal.application | Directly mapped from the sourceServiceName
field. |
|
spt
|
read_only_udm.target.port | Directly mapped from the spt
field after converting to integer. |
|
src
|
read_only_udm.principal.ip | Directly mapped from the src
field. |
|
start
|
read_only_udm.security_result.detection_fields.value | Directly mapped from the start
field. |
|
suid
|
read_only_udm.principal.user.userid | Directly mapped from the suid
field. |
|
ver
|
read_only_udm.network.tls.version | Directly mapped from the ver
field. |
| |
read_only_udm.about.asset.asset_id | The value is derived by concatenating "Incapsula.SIEMintegration:" with the deviceExternalId
field. |
| |
read_only_udm.additional.fields.key | Value is determined by the parser logic based on the field's label, for example: - cs1Label
maps to "Cap Support"- cs2Label
maps to "Javascript Support"- cs3Label
maps to "CO Support"- cs4Label
maps to "VID"- cs5Label
maps to "clappsig"- cs6Label
maps to "clapp"- cs7Label
maps to "latitude"- cs8Label
maps to "longitude"- cs9Label
maps to "Rule name" |
| |
read_only_udm.metadata.event_timestamp.nanos | Directly mapped from the collection_time.nanos
field. |
| |
read_only_udm.metadata.event_timestamp.seconds | Directly mapped from the collection_time.seconds
field. |
| |
read_only_udm.metadata.event_type | The value is determined based on the presence of src
and sip
fields:- If both are present, the value is set to "NETWORK_HTTP". - If only src
is present, the value is set to "USER_UNCATEGORIZED".- Otherwise, the value is set to "GENERIC_EVENT". |
| |
read_only_udm.metadata.product_event_type | The value is derived by concatenating "[", the numerical value from the CEF header field at index 4, "] - ", and the text description from the CEF header field at index 4. |
| |
read_only_udm.metadata.product_name | Value is statically set to "SIEMintegration". |
| |
read_only_udm.metadata.product_version | Value is statically set to "1". |
| |
read_only_udm.metadata.vendor_name | Value is statically set to "Incapsula". |
| |
read_only_udm.security_result.detection_fields.key | Value is statically set to either "siteid", "event_start_time", "event_end_time", or "qstr" based on the corresponding field being processed. |
| |
read_only_udm.security_result.severity | Value is statically set to "LOW". |
| |
read_only_udm.target.port | Directly mapped from the spt
field after converting to integer. |
Need more help? Get answers from Community members and Google SecOps professionals.

