Recoger registros de Imperva FlexProtect

Disponible en:

En este documento se explica cómo ingerir registros de Imperva FlexProtect en Google Security Operations mediante Bindplane. El analizador primero limpia y preprocesa los registros entrantes y, a continuación, intenta extraer los datos del formato de evento común (CEF). En función de la presencia de campos específicos, como "src" y "sip", asigna un tipo de evento de UDM y asigna los campos de CEF relevantes al esquema de UDM. Por último, enriquece el resultado con campos personalizados adicionales. Imperva FlexProtect ofrece un despliegue flexible de las soluciones de seguridad de Imperva (SecureSphere, Cloud WAF y Bot Protection) en entornos de nube híbrida.

Antes de empezar

Asegúrate de que cumples los siguientes requisitos previos:

  • Una instancia de Google SecOps
  • Windows 2016 o versiones posteriores, o un host Linux con systemd
  • Si se ejecuta a través de un proxy, asegúrese de que los puertos del cortafuegos estén abiertos según los requisitos del agente de Bindplane.
  • Acceso privilegiado a la consola de gestión de Imperva FlexProtect o a consolas de productos concretos

Obtener el archivo de autenticación de ingestión de Google SecOps

  1. Inicia sesión en la consola de Google SecOps.
  2. Ve a Configuración de SIEM > Agentes de recogida.
  3. Descarga el archivo de autenticación de ingestión. Guarda el archivo de forma segura en el sistema en el que se instalará Bindplane.

Obtener el ID de cliente de Google SecOps

  1. Inicia sesión en la consola de Google SecOps.
  2. Ve a Configuración de SIEM > Perfil.
  3. Copia y guarda el ID de cliente de la sección Detalles de la organización.

Instalar el agente de Bindplane

Instalación de ventanas

  1. Abre el símbolo del sistema o PowerShell como administrador.
  2. Ejecuta el siguiente comando:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Instalación de Linux

  1. Abre un terminal con privilegios de superusuario o sudo.
  2. 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

Configurar el agente de BindPlane para ingerir Syslog y enviarlo a Google SecOps

  1. Accede al archivo de configuración:

    1. Busca el archivo config.yaml. Normalmente, se encuentra en el directorio /etc/bindplane-agent/ en Linux o en el directorio de instalación en Windows.
    2. Abre el archivo con un editor de texto (por ejemplo, nano, vi o Bloc de notas).
  2. 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_FLEXPROTECT'
        raw_log_field: body
        ingestion_labels:
    
    service:
      pipelines:
        logs/source0__chronicle_w_labels-0:
          receivers:
            - udplog
          exporters:
            - chronicle/chronicle_w_labels
    

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 Servicios o introducir el siguiente comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configurar el reenvío de Syslog en Imperva FlexProtect

Para el componente SecureSphere (local/en la nube)

  1. Inicia sesión en la consola de gestión de Imperva SecureSphere.
  2. Vaya a Configuración > Conjuntos de acciones.
  3. Haz clic en Añadir para crear un conjunto de acciones.
  4. Haz clic en Añadir acción y proporciona los siguientes detalles de configuración:

    • Nombre: introduce un nombre descriptivo (por ejemplo, Google SecOps Syslog).
    • Tipo de acción: selecciona Syslog.
    • Host: introduce la dirección IP del agente de Bindplane.
    • Puerto: introduce 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.
    • Instalación de syslog: selecciona LOCAL0.
    • Formato: seleccione CEF (Common Event Format).
  5. Guarda la configuración de la acción y aplícala a las políticas de seguridad pertinentes.

Para el componente Cloud WAF/Incapsula

  1. Inicia sesión en la consola de Imperva Cloud.
  2. Ve a Registros > Configuración de registros.
  3. Configurar el destino de syslog:
    • Host: introduce la dirección IP del agente de Bindplane.
    • Puerto: introduce 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
actuar read_only_udm.security_result.action_details Se asigna directamente desde el campo act.
aplicación 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 convertirlo en 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 convertirlo en 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 obtiene concatenando "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.
fin read_only_udm.security_result.detection_fields.value Se asigna directamente desde el campo end.
fileId 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.
está 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 convertirlo en 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 obtiene concatenando "Incapsula.SIEMintegration:" con el campo deviceExternalId.
read_only_udm.additional.fields.key El valor se determina mediante 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 en función de la presencia de los campos src y sip:
- Si ambos están presentes, el valor se asigna a "NETWORK_HTTP".
: si solo está presente src, el valor se asigna a "USER_UNCATEGORIZED".
: de lo contrario, el valor se define como "GENERIC_EVENT".
read_only_udm.metadata.product_event_type El valor se obtiene concatenando "[", el valor numérico del campo de encabezado CEF en el índice 4, "] - " y la descripción de texto del campo de encabezado CEF en el índice 4.
read_only_udm.metadata.product_name El valor se asigna de forma estática a "SIEMintegration".
read_only_udm.metadata.product_version El valor se define de forma estática como "1".
read_only_udm.metadata.vendor_name El valor se define de forma estática como "Incapsula".
read_only_udm.security_result.detection_fields.key El valor se asigna de forma estática a "siteid", "event_start_time", "event_end_time" o "qstr" en función del campo correspondiente que se esté procesando.
read_only_udm.security_result.severity El valor se asigna de forma estática como "LOW".
read_only_udm.target.port Se asigna directamente desde el campo spt después de convertirlo en un número entero.

¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.