Recopila registros de administración de Imperva SecureSphere
En este documento, se explica cómo transferir registros de administración de Imperva SecureSphere a Google Security Operations con Bindplane. El analizador extrae campos de los registros en formato CEF o JSON. Utiliza patrones de grok y el análisis de pares clave-valor para asignar campos de registro sin procesar al UDM, controlar tanto los campos CEF estándar como las estructuras JSON personalizadas, y priorizar los datos JSON si están disponibles. Imperva SecureSphere proporciona capacidades integrales de firewall de aplicación web, seguridad de bases de datos y seguridad de archivos para implementaciones locales y en la nube.
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 SecureSphere
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
,vi
o Bloc de notas).
- Ubica el archivo
Edita el archivo
config.yaml
de 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_SECURESPHERE' 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.json
a 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-agent
Para 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 SecureSphere Management
- 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.
- Proporciona los siguientes detalles de configuración:
- Nombre: Ingresa un nombre descriptivo (por ejemplo,
Google SecOps Syslog
).
- Nombre: Ingresa un nombre descriptivo (por ejemplo,
Configura la acción del evento de seguridad
- Haz clic en Agregar acción y configura lo siguiente:
- 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 del mensaje: Selecciona Registro de puerta de enlace - Evento de seguridad - Registro del sistema (syslog) con el estándar CEF.
Configura la acción del evento del sistema
- Haz clic en Agregar acción y configura lo siguiente:
- Action Type: Selecciona System Log.
- Host: Ingresa la dirección IP del agente de BindPlane.
- Puerto: Ingresa el número de puerto del agente de BindPlane.
- Protocolo: Selecciona UDP o TCP.
- Formato del mensaje: Selecciona Registrar evento del sistema en el registro del sistema (syslog) con el estándar CEF.
Cómo aplicar conjuntos de acciones a las políticas
- Ve a Políticas > Políticas de seguridad.
- Para cada política pertinente, configura Acciones seguidas para usar tu conjunto de acciones.
- Ve a Políticas > Políticas de eventos del sistema.
- Configura políticas de eventos del sistema para usar el conjunto de acciones para una supervisión integral.
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
action |
security_result.action_details |
El valor del campo action se asigna al campo security_result.action_details . |
application-name |
target.application |
El valor del campo application-name se asigna al campo target.application . |
cat |
security_result.category_details |
El valor del campo cat se asigna al campo security_result.category_details . |
class |
security_result.detection_fields.value |
El valor del campo class se asigna al campo value dentro de security_result.detection_fields . El key correspondiente es "class". |
collection_time.seconds |
metadata.event_timestamp.seconds |
El valor de collection_time.seconds del registro sin procesar se usa como el valor de segundos para metadata.event_timestamp . |
create-time |
metadata.event_timestamp.seconds |
El valor de create-time se analiza y su valor en segundos se usa como el valor en segundos de metadata.event_timestamp . |
cs1 |
security_result.rule_name |
El valor del campo cs1 se asigna al campo security_result.rule_name . |
cs10 |
target.resource.attribute.labels.value |
El valor del campo cs10 se asigna al campo value dentro de target.resource.attribute.labels . |
cs10Label |
target.resource.attribute.labels.key |
El valor del campo cs10Label se asigna al campo key dentro de target.resource.attribute.labels . |
cs11 |
principal.application |
El valor del campo cs11 se asigna al campo principal.application . |
cs12 |
security_result.description |
El valor del campo cs12 , después de quitar las llaves y los signos de dólar, se asigna al campo security_result.description . |
cs14 |
target.resource.attribute.labels.value |
El valor del campo cs14 se asigna al campo value dentro de target.resource.attribute.labels . |
cs14Label |
target.resource.attribute.labels.key |
El valor del campo cs14Label se asigna al campo key dentro de target.resource.attribute.labels . |
cs15 |
security_result.summary |
El valor del campo cs15 se asigna al campo security_result.summary . |
cs16 |
principal.process.command_line |
El valor del campo cs16 se asigna al campo principal.process.command_line . |
cs17 |
target.resource.resource_subtype |
El valor del campo cs17 se asigna al campo target.resource.resource_subtype . |
cs2 |
principal.group.group_display_name |
El valor del campo cs2 se asigna al campo principal.group.group_display_name . |
cs3 |
principal.hostname , principal.asset.hostname |
El valor del campo cs3 se asigna a los campos principal.hostname y principal.asset.hostname . |
cs4 |
target.application |
El valor del campo cs4 se asigna al campo target.application , a menos que el valor sea "ProcessWitness". |
cs5 |
metadata.description |
El valor del campo cs5 se asigna al campo metadata.description . |
cs6 |
target.resource_ancestors.name |
El valor del campo cs6 se asigna al campo target.resource_ancestors.name . |
cs7 |
target.resource_ancestors.resource_subtype |
El valor del campo cs7 se asigna al campo target.resource_ancestors.resource_subtype . |
cs8 |
target.resource.name , target.resource.resource_type |
El valor del campo cs8 se asigna al campo target.resource.name , y el campo target.resource.resource_type se establece en "DATABASE". |
cs9 |
principal.user.userid |
El valor del campo cs9 se asigna al campo principal.user.userid . |
description |
security_result.description |
El valor del campo description se asigna al campo security_result.description . |
dest-ip |
target.ip , target.asset.ip |
La dirección IP extraída del campo dest-ip se asigna a los campos target.ip y target.asset.ip . |
dest-port |
target.port |
El valor del campo dest-port , convertido en un número entero, se asigna al campo target.port . |
deviceExternalId |
intermediary.hostname |
El valor del campo deviceExternalId se asigna al campo intermediary.hostname . |
dpt |
target.port |
El valor del campo dpt , convertido en un número entero, se asigna al campo target.port . |
dst |
target.ip , target.asset.ip |
El valor del campo dst se asigna a los campos target.ip y target.asset.ip . |
duser |
target.user.userid |
El valor del campo duser se asigna al campo target.user.userid . |
eventId |
metadata.product_log_id |
El valor del campo eventId se asigna al campo metadata.product_log_id . |
gateway-name |
security_result.detection_fields.value |
El valor del campo gateway-name se asigna al campo value dentro de security_result.detection_fields . El key correspondiente es "gateway-name". |
http.request.method |
network.http.method |
El valor del campo http.request.method se asigna al campo network.http.method . |
http.request.user-agent |
network.http.user_agent |
El valor del campo http.request.user_agent se asigna al campo network.http.user_agent . |
http.response.code |
network.http.response_code |
El valor del campo http.response.code , convertido en un número entero, se asigna al campo network.http.response_code . |
http.session-id |
network.session_id |
El valor del campo http.session-id se asigna al campo network.session_id . |
http.user-name |
principal.user.userid |
El valor del campo http.user-name , con las comillas circundantes quitadas, se asigna al campo principal.user.userid . |
log_type |
metadata.log_type |
El valor del campo log_type del registro sin procesar se asigna al campo metadata.log_type . |
mx-ip |
intermediary.ip |
El valor del campo mx-ip se asigna al campo intermediary.ip . |
MxIP |
intermediary.ip |
El valor del campo MxIP se asigna al campo intermediary.ip . |
OSUser |
principal.user.userid |
El valor del campo OSUser se asigna al campo principal.user.userid . |
policy-name |
security_result.detection_fields.value |
El valor del campo policy-name se asigna al campo value dentro de security_result.detection_fields . El key correspondiente es "policy-name". |
pquery |
target.resource.name , target.process.command_line |
Si pquery no está vacío y contiene la palabra "from", se extrae el nombre de la tabla y se asigna a target.resource.name , target.resource.resource_type se establece en "TABLE" y todo el valor de pquery se asigna a target.process.command_line . De lo contrario, todo el valor de pquery se asigna a target.resource.name . |
pro |
security_result.description |
El valor del campo pro se asigna al campo security_result.description . |
product |
metadata.product_name |
El valor del campo product se asigna al campo metadata.product_name . |
product_type |
metadata.product_event_type |
El valor del campo product_type se asigna al campo metadata.product_event_type . |
protocol |
network.ip_protocol |
Si el valor del campo protocol es "TCP" o "UDP", se asigna al campo network.ip_protocol . |
proto |
network.ip_protocol |
El valor del campo proto se asigna al campo network.ip_protocol . |
reason |
security_result.rule_name |
El valor del campo reason se asigna al campo security_result.rule_name . |
rt |
metadata.event_timestamp.seconds |
El valor de rt se analiza y su valor en segundos se usa como el valor en segundos de metadata.event_timestamp . |
server-group-name |
target.resource.attribute.labels.value |
El valor del campo server-group-name se asigna al campo value dentro de target.resource.attribute.labels . El key correspondiente es "server-group-name". |
server-group-simulation-mode |
target.resource.attribute.labels.value |
El valor del campo server-group-simulation-mode se asigna al campo value dentro de target.resource.attribute.labels . El key correspondiente es "server-group-simulation-mode". |
service-name |
target.resource.attribute.labels.value |
El valor del campo service-name se asigna al campo value dentro de target.resource.attribute.labels . El key correspondiente es "service-name". |
ServiceName |
target.application |
Si ApplicationName no está vacío y ServiceName está vacío, el valor de ApplicationName se asigna a ServiceName . Luego, el valor de ServiceName se asigna a target.application . |
severity |
security_result.severity , security_result.severity_details |
El valor del campo severity se convierte a mayúsculas. Si es "LOW", "MEDIUM", "HIGH" o "CRITICAL", se asigna a security_result.severity . Si es "INFORMATIVE" o "INFO", security_result.severity se establece en "INFORMATIONAL". El valor original también se asigna a security_result.severity_details . |
severity_data |
security_result.severity |
El valor del campo severity_data se convierte a mayúsculas. Si es uno de los valores "HIGH", "LOW", "MEDIUM", "CRITICAL", "ERROR" o "INFORMATIONAL", se asigna a security_result.severity . |
source-ip |
principal.ip , principal.asset.ip |
El valor del campo source-ip se asigna a los campos principal.ip y principal.asset.ip . |
source-port |
principal.port |
El valor del campo source-port , convertido en un número entero, se asigna al campo principal.port . |
spt |
principal.port |
El valor del campo spt , convertido en un número entero, se asigna al campo principal.port . |
src |
principal.ip , principal.asset.ip |
El valor del campo src se asigna a los campos principal.ip y principal.asset.ip . |
srcapp |
principal.application |
El valor del campo srcapp se asigna al campo principal.application . |
srchost |
principal.hostname , principal.asset.hostname |
El valor del campo srchost se asigna a los campos principal.hostname y principal.asset.hostname . |
vendor |
metadata.vendor_name |
El valor del campo vendor se asigna al campo metadata.vendor_name . |
version |
metadata.product_version |
El valor del campo version se asigna al campo metadata.product_version . |
violation-id |
security_result.detection_fields.value |
El valor del campo violation-id se asigna al campo value dentro de security_result.detection_fields . El key correspondiente es "violation-id". |
violation-type |
security_result.detection_fields.value |
El valor del campo violation-type se asigna al campo value dentro de security_result.detection_fields . El key correspondiente es "violation-type". |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.