Recopila registros de Imperva FlexProtect
En este documento, se explica cómo transferir registros de Imperva FlexProtect a Google Security Operations con Bindplane. Primero, el analizador limpia y preprocesa los registros entrantes y, luego, intenta extraer los datos del formato de evento común (CEF). Según la presencia de campos específicos, como "src" y "sip", asigna un tipo de evento de UDM y asigna los campos de CEF pertinentes al esquema de UDM, y, por último, enriquece el resultado con campos personalizados adicionales. Imperva FlexProtect proporciona una implementación flexible de las soluciones de seguridad de Imperva (SecureSphere, Cloud WAF y Bot Protection) en entornos de nube híbrida.
Antes de comenzar
Asegúrate de cumplir con los siguientes requisitos previos:
- Una instancia de Google SecOps
- Windows 2016 o versiones posteriores, o un host de Linux con
systemd - Si se ejecuta detrás de un proxy, asegúrate de que los puertos de firewall estén abiertos según los requisitos del agente de Bindplane.
- Acceso con privilegios a la consola de administración de Imperva FlexProtect o a las consolas de productos individuales
Obtén el archivo de autenticación de transferencia de Google SecOps
- Accede a la consola de Google SecOps.
- Ve a Configuración de SIEM > Agentes de recopilación.
- Descarga el archivo de autenticación de transferencia. Guarda el archivo de forma segura en el sistema en el que se instalará BindPlane.
Obtén el ID de cliente de Google SecOps
- Accede a la consola de Google SecOps.
- Ve a Configuración de SIEM > Perfil.
- Copia y guarda el ID de cliente de la sección Detalles de la organización.
Instala el agente de BindPlane
Instalación en Windows
- Abre el símbolo del sistema o PowerShell como administrador.
Ejecuta el siguiente comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Instalación en Linux
- Abre una terminal con privilegios de raíz o sudo.
Ejecuta el siguiente comando:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
Recursos de instalación adicionales
- Para obtener más opciones de instalación, consulta esta guía de instalación.
Configura el agente de BindPlane para transferir Syslog y enviarlo a Google SecOps
Accede al archivo de configuración:
- Ubica el archivo
config.yaml. Por lo general, se encuentra en el directorio/etc/bindplane-agent/en Linux o en el directorio de instalación en Windows. - Abre el archivo con un editor de texto (por ejemplo,
nano,vio Bloc de notas).
- Ubica el archivo
Edita el archivo
config.yamlde la siguiente manera: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- Reemplaza el puerto y la dirección IP según sea necesario en tu infraestructura.
- Reemplaza
<customer_id>por el ID de cliente real. - Actualiza
/path/to/ingestion-authentication-file.jsona la ruta de acceso en la que se guardó el archivo de autenticación en la sección Cómo obtener el archivo de autenticación de la transferencia de datos de Google SecOps.
Reinicia el agente de Bindplane para aplicar los cambios
Para reiniciar el agente de Bindplane en Linux, ejecuta el siguiente comando:
sudo systemctl restart bindplane-agentPara reiniciar el agente de Bindplane en Windows, puedes usar la consola de Servicios o ingresar el siguiente comando:
net stop BindPlaneAgent && net start BindPlaneAgent
Configura el reenvío de Syslog en Imperva FlexProtect
Para el componente de SecureSphere (local o en la nube)
- Accede a la consola de administración de Imperva SecureSphere.
- Ve a Configuration > Action Sets.
- Haz clic en Agregar para crear un nuevo conjunto de acciones.
Haz clic en Agregar acción y proporciona los siguientes detalles de configuración:
- Nombre: Ingresa un nombre descriptivo (por ejemplo,
Google SecOps Syslog). - Tipo de acción: Selecciona Syslog.
- Host: Ingresa la dirección IP del agente de Bindplane.
- Puerto: Ingresa el número de puerto del agente de Bindplane (el valor predeterminado es
514). - Protocolo: Selecciona UDP o TCP.
- Nivel de registro de Syslog: Selecciona DEBUG.
- Syslog Facility: Selecciona LOCAL0.
- Formato: Selecciona CEF (formato de evento común).
- Nombre: Ingresa un nombre descriptivo (por ejemplo,
Guarda la configuración de la acción y aplícala a las políticas de seguridad pertinentes.
Para el componente de Cloud WAF/Incapsula
- Accede a la consola de Cloud de Imperva.
- Ve a Registros > Configuración de registros.
- Configura el destino de Syslog:
- Host: Ingresa la dirección IP del agente de Bindplane.
- Puerto: Ingresa el número de puerto del agente de Bindplane (el valor predeterminado es
514). - Protocolo: Selecciona UDP o TCP.
- Formato: Selecciona CEF.
Tabla de asignación de UDM
| Campo de registro | Asignación de UDM | Lógica |
|---|---|---|
| actúa | read_only_udm.security_result.action_details | Se asigna directamente desde el campo act. |
| app | read_only_udm.network.application_protocol | Se asigna directamente desde el campo app. |
| ccode | read_only_udm.principal.location.country_or_region | Se asigna directamente desde el campo ccode. |
| cicode | read_only_udm.principal.location.city | Se asigna directamente desde el campo cicode. |
| cn1 | read_only_udm.network.http.response_code | Se asigna directamente desde el campo cn1 después de la conversión a un número entero. |
| cs1 | read_only_udm.additional.fields.value.string_value | Se asigna directamente desde el campo cs1. |
| cs2 | read_only_udm.additional.fields.value.string_value | Se asigna directamente desde el campo cs2. |
| cs3 | read_only_udm.additional.fields.value.string_value | Se asigna directamente desde el campo cs3. |
| cs4 | read_only_udm.additional.fields.value.string_value | Se asigna directamente desde el campo cs4. |
| cs5 | read_only_udm.additional.fields.value.string_value | Se asigna directamente desde el campo cs5. |
| cs6 | read_only_udm.additional.fields.value.string_value | Se asigna directamente desde el campo cs6. |
| cs7 | read_only_udm.additional.fields.value.string_value | Se asigna directamente desde el campo cs7. |
| cs8 | read_only_udm.additional.fields.value.string_value | Se asigna directamente desde el campo cs8. |
| cs9 | read_only_udm.additional.fields.value.string_value | Se asigna directamente desde el campo cs9. |
| cpt | read_only_udm.principal.port | Se asigna directamente desde el campo cpt después de la conversión a un número entero. |
| Cliente | read_only_udm.principal.user.user_display_name | Se asigna directamente desde el campo Customer. |
| deviceExternalId | read_only_udm.about.asset.asset_id | El valor se deriva de la concatenación de "Incapsula.SIEMintegration:" con el campo deviceExternalId. |
| deviceFacility | read_only_udm.principal.location.city | Se asigna directamente desde el campo deviceFacility. |
| dproc | read_only_udm.target.process.command_line | Se asigna directamente desde el campo dproc. |
| end | read_only_udm.security_result.detection_fields.value | Se asigna directamente desde el campo end. |
| ID del archivo | read_only_udm.network.session_id | Se asigna directamente desde el campo fileId. |
| filePermission | read_only_udm.about.resource.attribute.permissions.name | Se asigna directamente desde el campo filePermission. |
| en | read_only_udm.network.received_bytes | Se asigna directamente desde el campo in. |
| qstr | read_only_udm.security_result.detection_fields.value | Se asigna directamente desde el campo qstr. |
| solicitud | read_only_udm.target.url | Se asigna directamente desde el campo request. |
| requestClientApplication | read_only_udm.network.http.user_agent | Se asigna directamente desde el campo requestClientApplication. |
| requestMethod | read_only_udm.network.http.method | Se asigna directamente desde el campo requestMethod. |
| siteid | read_only_udm.security_result.detection_fields.value | Se asigna directamente desde el campo siteid. |
| sip | read_only_udm.target.ip | Se asigna directamente desde el campo sip. |
| sourceServiceName | read_only_udm.principal.application | Se asigna directamente desde el campo sourceServiceName. |
| spt | read_only_udm.target.port | Se asigna directamente desde el campo spt después de la conversión a un número entero. |
| src | read_only_udm.principal.ip | Se asigna directamente desde el campo src. |
| start | read_only_udm.security_result.detection_fields.value | Se asigna directamente desde el campo start. |
| suid | read_only_udm.principal.user.userid | Se asigna directamente desde el campo suid. |
| ver | read_only_udm.network.tls.version | Se asigna directamente desde el campo ver. |
| read_only_udm.about.asset.asset_id | El valor se deriva de la concatenación de "Incapsula.SIEMintegration:" con el campo deviceExternalId. |
|
| read_only_udm.additional.fields.key | El valor se determina según la lógica del analizador en función de la etiqueta del campo, por ejemplo: - cs1Label se asigna a "Cap Support" - cs2Label se asigna a "Javascript Support" - cs3Label se asigna a "CO Support" - cs4Label se asigna a "VID" - cs5Label se asigna a "clappsig" - cs6Label se asigna a "clapp" - cs7Label se asigna a "latitude" - cs8Label se asigna a "longitude" - cs9Label se asigna a "Rule name" |
|
| read_only_udm.metadata.event_timestamp.nanos | Se asigna directamente desde el campo collection_time.nanos. |
|
| read_only_udm.metadata.event_timestamp.seconds | Se asigna directamente desde el campo collection_time.seconds. |
|
| read_only_udm.metadata.event_type | El valor se determina según la presencia de los campos src y sip: : Si ambos están presentes, el valor se establece en "NETWORK_HTTP". : Si solo está presente src, el valor se establece en "USER_UNCATEGORIZED". : De lo contrario, el valor se establece en "GENERIC_EVENT". |
|
| read_only_udm.metadata.product_event_type | El valor se deriva de la concatenación de "[", el valor numérico del campo de encabezado de CEF en el índice 4, "] - " y la descripción de texto del campo de encabezado de CEF en el índice 4. | |
| read_only_udm.metadata.product_name | El valor se establece de forma estática en "SIEMintegration". | |
| read_only_udm.metadata.product_version | El valor se establece de forma estática en "1". | |
| read_only_udm.metadata.vendor_name | El valor se establece de forma estática en "Incapsula". | |
| read_only_udm.security_result.detection_fields.key | El valor se establece de forma estática en "siteid", "event_start_time", "event_end_time" o "qstr" según el campo correspondiente que se procese. | |
| read_only_udm.security_result.severity | El valor se establece de forma estática en "LOW". | |
| read_only_udm.target.port | Se asigna directamente desde el campo spt después de la conversión a un número entero. |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.