Recopila registros de IBM Security Verify Access

Compatible con:

En este documento, se describe cómo puedes recopilar registros de IBM Security Verify Access. El analizador extrae campos comunes, como marcas de tiempo, nombres de host y descripciones, con patrones de Grok. Luego, aprovecha el análisis XML para obtener información detallada del evento incorporada en el campo de descripción y, en última instancia, asigna los datos extraídos al modelo de datos unificado (UDM) para la representación estandarizada de eventos de seguridad.

Antes de comenzar

  • Asegúrate de tener una instancia de Google Security Operations.
  • Asegúrate de usar Windows 2016 o una versión posterior, o un host de Linux con systemd.
  • Si se ejecuta detrás de un proxy, asegúrate de que los puertos del firewall estén abiertos.
  • Asegúrate de tener acceso de administrador a IBM Security Verify Access (ISVA).

Obtén el archivo de autenticación de transferencia de Google SecOps

  1. Accede a la consola de Google SecOps.
  2. Ve a Configuración de SIEM > Agentes de recopilación.
  3. 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

  1. Accede a 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.

Instala el agente de BindPlane

Instalación de Windows

  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 una terminal con privilegios de raíz 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

Configura el agente de BindPlane para transferir Syslog y enviarlo a Google SecOps

  1. 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).
  2. Edita el archivo config.yaml de la siguiente manera:

    receivers:
        udplog:
            # Replace the below port <54525> and IP <0.0.0.0> with your specific values
            listen_address: "0.0.0.0:54525" 
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the creds location below according the placement of the credentials file you downloaded
            creds: '{ json file for creds }'
            # Replace <customer_id> below with your actual ID that you copied
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # You can apply ingestion labels below as preferred
            ingestion_labels:
            log_type: SYSLOG
            namespace: ibm_security_verify
            raw_log_field: body
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Reemplaza el puerto y la dirección IP según sea necesario en tu infraestructura.

  4. Reemplaza <customer_id> por el ID de cliente real.

  5. 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 Obtén el archivo de autenticación de transferencia de Google SecOps.

Reinicia el agente de BindPlane para aplicar los cambios.

  • En Linux, para reiniciar el agente de BindPlane, ejecuta el siguiente comando:

    sudo systemctl restart bindplane-agent
    
  • En Windows, para reiniciar el agente de BindPlane, puedes usar la consola Services o ingresar el siguiente comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Personaliza el formato de registro

  1. Para editar el archivo de configuración WebSEAL, usa la interfaz de administración local (LMI) del dispositivo.
  2. En la LMI, ve a Administración de proxy inverso.
  3. Haz clic en Administrar > Configuración > Editar archivo de configuración (puedes usar el editor para editar directamente el archivo de configuración WebSEAL).
  4. Ve a logging[stanza], busca syntax requests = {yes|no} y haz clic en .
  5. Ve al parámetro gmt-time y edítalo de la siguiente manera: gmt-time = yes.
  6. Reemplaza request-log-format por lo siguiente:

    request-log-format = ibmsva: %h %l "%u" %t "%r" %s %b %T %j %{X-Forwarded-For}i %a %A %H %p %m %U %v %d %q
    
  7. Consulta la siguiente explicación de cada directiva:

    • ibmsva: Identifica los registros del dispositivo SVA.
    • %h: Host remoto
    • %l: Nombre de registro remoto
    • %u: Usuario remoto
    • %t: Hora y fecha en formato CLF
    • %r: Primera línea de la solicitud
    • %s: Estado de la respuesta
    • %b: Bytes en la respuesta (sin incluir los encabezados HTTP)
    • %T: Es el tiempo de entrega de la solicitud (en segundos).
    • %j: Nombre del cruce
    • %X-Forwarded-For: Dirección IP de reenvío
    • %a: Dirección IP remota
    • %A: Dirección IP local
    • %H: Es el protocolo de solicitud.
    • %p: Puerto
    • %m: Es el método de solicitud (GET, POST, HEAD).
    • %U: URL solicitada
    • %v: Nombre del servidor
    • %d: Es el identificador de la transacción.
    • %q: Cadena de consulta

Configura el reenvío de Syslog en ISVA

  1. Accede a la interfaz de administración local de ISVA.
  2. Ve a Monitor > Registros > Reenvío de Syslog remoto.
  3. Haz clic en Agregar.
  4. Especifica los detalles del servidor de syslog remoto.
    • Servidor: Es la dirección IP o el nombre de host del servidor de syslog (Bindplane).
    • Puerto: Es el puerto en el que el servidor de syslog escucha las solicitudes (Bindplane).
    • Protocolo: Selecciona UDP o TCP (según la configuración de syslog o Bindplane).
    • Formato: Selecciona Syslog.
  5. Haz clic en Guardar.

Cómo configurar las fuentes de registro para un servidor de registro remoto

  1. Selecciona el servidor syslog remoto al que deseas enviar los registros.
  2. Haz clic en Fuentes.
  3. Haz clic en Agregar.
  4. Especifica los detalles de la fuente de registro y, luego, haz clic en Aceptar.

    • Nombre: Selecciona WebSEAL.
    • Nombre de la instancia: Selecciona la instancia de WebSEAL.
    • Archivo de registro: Es el nombre del archivo de registro de origen.
    • Opcional: Etiqueta: Es la etiqueta que se agregará a las entradas de registro enviadas.
    • Facility: Todos los mensajes se enviarán con el código de la instalación especificado (lista de códigos disponibles).
    • Gravedad: Es la gravedad de las entradas de registro enviadas.
      • Todos los mensajes se enviarán con el nivel de gravedad especificado.
  5. Haz clic en Guardar.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
acción read_only_udm.security_result.action_details Se extrae del campo XML "/event/originator/action" cuando el campo "description" contiene "event".
app read_only_udm.target.application Se extrae con el patrón grok del campo "message".
auth_details read_only_udm.security_result.detection_fields.value Se extrae del campo XML "/event/accessor/principal/@auth" cuando el campo "description" contiene "event". La clave se establece en "Auth".
authntype read_only_udm.security_result.detection_fields.value Se extrae del campo XML "/event/authntype" cuando el campo "description" contiene "event". La clave se establece en "Authntype".
datos read_only_udm.metadata.description Si el campo "data" no está vacío, su valor reemplaza el valor existente de "read_only_udm.metadata.description".
descripción read_only_udm.metadata.description Se extrae con el patrón grok del campo "message". Si el campo "description" contiene "event", se analiza como XML para extraer otros campos.
event_id read_only_udm.metadata.product_log_id Se extrae del campo XML "/event/originator/event_id" cuando el campo "description" contiene "event".
Nombre de host read_only_udm.principal.hostname, read_only_udm.principal.asset.hostname Se extrae con el patrón grok del campo "message".
id read_only_udm.metadata.product_log_id Se extrae con el patrón grok del campo "message".
ubicación read_only_udm.principal.location.name Se extrae del campo XML "/event/originator/location" cuando el campo "description" contiene "event".
resultado read_only_udm.security_result.detection_fields.value Se extrae del campo XML "/event/outcome" cuando el campo "description" contiene "event". La clave se establece en "Resultado".
outcome_reason read_only_udm.security_result.summary Se extrae del campo XML "/event/outcome/@reason" cuando el campo "description" contiene "event". También se usa para determinar el valor de "read_only_udm.security_result.action", que se establece en "BLOCK" si "outcome_reason" contiene "fail" (sin distinción entre mayúsculas y minúsculas); de lo contrario, se establece en "ALLOW".
outcome_status read_only_udm.security_result.detection_fields.value Se extrae del campo XML "/event/outcome/@status" cuando el campo "description" contiene "event". La clave se establece en "Estado del resultado".
originator_blade read_only_udm.security_result.detection_fields.value Se extrae del campo XML "/event/originator/@blade" cuando el campo "description" contiene "event". La clave se establece en "Originator Blade".
originator_component read_only_udm.security_result.detection_fields.value Se extrae del campo XML "/event/originator/component" cuando el campo "description" contiene "event". La clave se establece en "Componente de origen".
originator_instance read_only_udm.security_result.detection_fields.value Se extrae del campo XML "/event/originator/@instance" cuando el campo "description" contiene "event". La clave se establece en "Instancia del creador".
session_id read_only_udm.network.session_id Se extrae del campo XML "/event/accessor/session_id" cuando el campo "description" contiene "event".
target_url read_only_udm.target.url Se extrae del campo XML "/event/target/url" cuando el campo "description" contiene "event".
thread_id read_only_udm.security_result.detection_fields.value Se extrae con el patrón grok del campo "message". La clave se establece en "ID de subproceso".
timestamp read_only_udm.metadata.event_timestamp Se extrae con el patrón grok del campo "message". Con formato del filtro "fecha" según la presencia y el formato del campo "zona horaria".
time_stamp read_only_udm.metadata.event_timestamp Se extrae del campo XML "/event/date" cuando el campo "description" contiene "event". Se formateó con el filtro "fecha".
Zona horaria Se usa junto con el campo "timestamp" para dar formato al campo "read_only_udm.metadata.event_timestamp" con el filtro "date".
url read_only_udm.target.url Se extrae con el patrón grok del campo "message".
usuario read_only_udm.principal.user.userid Se extrae del campo XML "/event/accessor/principal" cuando el campo "description" contiene "event".
user_location read_only_udm.principal.ip, read_only_udm.principal.asset.ip Se extrae del campo XML "/event/accessor/user_location" cuando el campo "description" contiene "event". Si "user_location_type" contiene "ip" (sin distinción entre mayúsculas y minúsculas), se analiza como una dirección IP y se asigna a "read_only_udm.principal.ip" y "read_only_udm.principal.asset.ip".
user_location_type Se usa para determinar si "user_location" se debe analizar como una dirección IP.
N/A read_only_udm.metadata.vendor_name Establece el valor en "IBM_SECURITY_VERIFY".
N/A read_only_udm.metadata.product_name Establece el valor en "IBM_SECURITY_VERIFY".
N/A read_only_udm.metadata.event_type Inicialmente, se establece en "STATUS_UPDATE". Se cambió a "USER_LOGIN" si se extraen los campos "user" y "hostname".
N/A read_only_udm.extensions.auth.type Establece el valor en "SSO" si se extraen los campos "user" y "hostname".
N/A read_only_udm.network.application_protocol Se establece en "HTTP" si el campo "message" contiene "HttpServletRequest".
N/A read_only_udm.metadata.log_type Se establece en "IBM_SECURITY_VERIFY", que se toma de los metadatos de registro.

Cambios

2024-05-13

  • Se actualizó el analizador para admitir registros en formato XML.

2023-01-25

  • Sin embargo, el analizador se creó recientemente.