Integra Splunk con Google SecOps

En este documento, se proporciona orientación para integrar Splunk con Google SecOps.

Antes de comenzar

Antes de integrar Splunk con Google SecOps, determina el método de transferencia adecuado para tu arquitectura de implementación y verifica que tu entorno satisfaga todas las dependencias, las rutas de red y los permisos de acceso necesarios.

Google SecOps admite dos métodos de transferencia:

  • Transferencia basada en envíos: Splunk evalúa las alertas de forma local y envía eventos directamente a Google SecOps con el complemento TA-Siemplify y las acciones de activación de alertas. No se requiere configuración del conector en Google SecOps.

  • Transferencia basada en extracción: Los conectores de Google SecOps consultan de forma periódica los extremos de la API de REST de Splunk para recuperar alertas, resultados de la búsqueda de SPL o eventos notables de Splunk ES.

Transferencia basada en envíos

La transferencia basada en envíos requiere conectividad HTTPS saliente directa de Splunk a Google SecOps, así como parámetros de configuración de complementos específicos en tus cabezales de búsqueda de Splunk.

Verifica los siguientes requisitos antes de configurar la transferencia basada en la inserción:

  1. Descarga e instala el paquete TA-Siemplify de Splunkbase en todos los encabezados de búsqueda de Splunk de destino. En entornos distribuidos, implementa el complemento en tu clúster de cabezales de búsqueda con Splunk Deployer o Deployment Server.

  2. Verifica que se haya instalado una versión compatible del Modelo de información común de Splunk (Splunk_SA_CIM) en el encabezado de búsqueda para admitir alertas y registros modulares.

  3. Asegúrate de que tus cabezales de búsqueda de Splunk tengan acceso de red saliente a través de HTTPS (puerto TCP 443) a la URL de tu instancia de Google SecOps.

  4. Verifica que tengas una cuenta en Google SecOps con permisos administrativos para generar claves de API (Configuración > Avanzada > API). Asegúrate de que a la clave de API generada se le asigne un rol con permisos para crear alertas y casos.

  5. Si planeas transferir eventos sin procesar de búsquedas de transformación (como búsquedas con stats, chart o timechart), asegúrate de que dispatch.buckets = 1 esté configurado en savedsearches.conf en tus cabezales de búsqueda.

Transferencia basada en extracciones

La transferencia basada en extracción, las acciones de la guía de soluciones y los trabajos de sincronización requieren que Google SecOps (o un agente remoto) establezca conexiones administrativas entrantes con Splunk.

Verifica los siguientes requisitos antes de configurar conectores, acciones o trabajos de extracción:

  1. Conectividad de red: Verifica la línea de visión de la red desde Google SecOps (o tu agente remoto) hasta el puerto de la API de REST de administración de Splunk (predeterminado: 8089/TCP).

  2. Certificado de la AC personalizado: Si tu instancia de Splunk usa un certificado de la AC interno o privado, verifica que estés ejecutando la versión 26.0 o una posterior de la integración de Splunk en Google SecOps.

  3. Autenticación: Obtén credenciales de usuario de Splunk válidas (nombre de usuario y contraseña) o genera un token del portador de Splunk (para habilitar este método de autenticación en la plataforma de Splunk, se requiere la autenticación con token).

  4. Funciones del rol de Splunk: Asegúrate de que la cuenta de Splunk que se autentica tenga un rol con las siguientes funciones:

    • search
    • schedule_search
    • edit_tcp (obligatorio solo si se usa la acción Enviar evento)
    • edit_notable_events (obligatorio solo si se usa la acción Actualizar eventos notables o los trabajos de sincronización de Splunk ES)
  5. Permisos de búsqueda y almacén de datos: Verifica que la cuenta de autenticación tenga acceso a los almacenes de datos de Splunk pertinentes para los componentes que elegiste:

    • Conector de extracción de Splunk: Permisos de lectura para la tabla de consulta siemplify_alerts (se completa cuando se instala y configura TA-Siemplify en el modo de extracción).
    • Conector y acciones de consulta de Splunk:
      • Permisos de búsqueda en los índices de eventos de destino (no requiere TA-Siemplify).
      • Permisos de escritura y entrada en el índice de destino si se usa la acción Enviar evento.
    • Splunk ES: conector y trabajos de eventos notables: Una instalación activa de Splunk Enterprise Security (ES), permisos de lectura para el índice notable y acceso a la macro get_notable_index (no requiere TA-Siemplify).

Parámetros de integración

Usa los siguientes parámetros para configurar la integración:

Nombre visible del parámetro Tipo Valor predeterminado Es obligatorio Descripción
Dirección del servidor String {SCHEMA}://{IP}:{PORT} Sí Es la dirección del servidor de Splunk.
Nombre de usuario String N/A No Es la dirección de correo electrónico del usuario que se debe usar para conectarse a Splunk.
Contraseña Contraseña N/A No La contraseña del usuario correspondiente.
Token de API Contraseña N/A No Es el token de la API de Splunk. El token de API tiene prioridad sobre otros métodos de autenticación cuando este campo no está vacío.
Verificar SSL Casilla de verificación Desmarcado No Usa esta casilla de verificación si tu conexión de Splunk requiere una verificación de SSL (no está marcada de forma predeterminada).
Archivo del certificado de la AC String N/A No Archivo de certificado de la AC codificado en Base64.

Para obtener instrucciones sobre cómo configurar una integración en Google SecOps, consulta Configura integraciones.

Si es necesario, puedes realizar cambios más adelante. Después de configurar una instancia de integración, puedes usarla en las guías. Para obtener más información sobre cómo configurar y admitir varias instancias, consulta Cómo admitir varias instancias.

Acciones

Para obtener más información sobre las acciones, consulta Cómo responder a las acciones pendientes de Tu escritorio y Cómo realizar una acción manual.

Obtén eventos de host

Obtener eventos relacionados con hosts en Splunk

Parámetros

Nombre visible del parámetro Tipo Valor predeterminado Es obligatorio Descripción
Límite de eventos por host Número entero 100 Sí Especifica cuántos eventos se deben devolver por host.
Resultados de String Hace 24 h Sí Especifica la hora de inicio de los eventos.
Resultados para String ahora Sí Especifica la hora de finalización de los eventos.
Campos de resultados CSV N/A No Especifica una lista separada por comas de los campos que se deben devolver.
Índice String N/A No Especifica qué índice se debe usar cuando se buscan eventos relacionados con el host. Si no se proporciona nada, la acción no usará el índice.
Llave de host String host No Especifica qué clave se debe usar para obtener información sobre los eventos del host. Valor predeterminado: host.

Fecha de ejecución

Esta acción se ejecuta en la entidad Hostname.

Resultados de la acción

Resultado de secuencia de comandos
Nombre del resultado de la secuencia de comandos Opciones de valor Ejemplo
correcto Verdadero o falso success:False
Resultado de JSON
[{
    "app": "SA-AccessProtection",
    "_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
    "_cd": "425:9087674",
    "_indextime": "1612231318",
    "_kv": "1",
    "_raw": "02-02-2021 04:01:58.404 +0200 INFO  SavedSplunker - savedsearch_id=\"nobody;SA-AccessProtection;Access - Default Account Usage - Rule\", search_type=\"\", user=\"admin\", app=\"SA-AccessProtection\", savedsearch_name=\"Access - Default Account Usage - Rule\", priority=default, status=success, digest_mode=1, scheduled_time=1612179932, window_time=0, dispatch_time=1612179969, run_time=51348.242, result_count=0, alert_actions=\"\", sid=\"rt_scheduler__admin_U0EtQWNjZXNzUHJvdGVjdGlvbg__RMD509c859ea7b9951b8_at_1612179932_61.40533\", suppressed=1, thread_id=\"AlertNotifierWorker-0\", workload_pool=\"\"",
    "_serial": "0",
    "_si": [
        "splunk",
        "_internal"
    ],
    "_sourcetype": "scheduler",
    "_subsecond": ".404",
    "_time": "2021-02-02T04:01:58.404+02:00"
},
{
    "_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
    "_cd": "425:9087731",
    "_indextime": "1612231318",
    "_kv": "1",
    "_raw": "127.0.0.1 - admin [02/Feb/2021:04:01:58.172 +0200] \"POST /servicesNS/nobody/SA-AccessProtection/saved/searches/Access%20-%20Default%20Account%20Usage%20-%20Rule/notify?trigger.condition_state=1 HTTP/1.1\" 200 1985 - - - 3ms",
    "_serial": "1",
    "_si": [
        "splunk",
        "_internal"
    ],
    "_sourcetype": "splunkd_access",
    "_subsecond": ".172",
    "_time": "2021-02-02T04:01:58.172+02:00"
},
{
    "app": "SA-EndpointProtection",
    "_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
    "_cd": "425:9087653",
    "_indextime": "1612231318",
    "_kv": "1",
    "_raw": "02-02-2021 04:01:57.804 +0200 INFO  SavedSplunker - savedsearch_id=\"nobody;SA-EndpointProtection;Endpoint - Should Timesync Host Not Syncing - Rule\", search_type=\"\", user=\"admin\", app=\"SA-EndpointProtection\", savedsearch_name=\"Endpoint - Should Timesync Host Not Syncing - Rule\", priority=default, status=success, digest_mode=1, scheduled_time=1612179932, window_time=300, dispatch_time=1612179970, run_time=51347.420, result_count=0, alert_actions=\"\", sid=\"rt_scheduler__admin_U0EtRW5kcG9pbnRQcm90ZWN0aW9u__RMD5ef3c08822811b7cd_at_1612179932_62.25751\", suppressed=1, thread_id=\"AlertNotifierWorker-0\", workload_pool=\"\"",
    "_serial": "2",
    "_si": [
        "splunk",
        "_internal"
    ],
    "_sourcetype": "scheduler",
    "_subsecond": ".804",
    "_time": "2021-02-02T04:01:57.804+02:00"
}]
Muro de casos
Tipo de resultado Valor / Descripción Tipo
Mensaje de salida*

La acción no debe fallar ni detener la ejecución de una guía:

Si la operación se realiza correctamente y hay resultados disponibles: "Se devolvieron correctamente los eventos para los siguientes hosts en Splunk: \n {0}".format(entity.identifier)

Si la operación se realiza correctamente y los resultados no están disponibles para algunos: "No se encontraron eventos para los siguientes hosts en Splunk:\n {0}".format(entity.identifier)

Si la operación se realiza correctamente y los resultados no están disponibles para todos, se mostrará el siguiente mensaje: "No se encontraron eventos para los hosts proporcionados en Splunk".

La acción debería fallar y detener la ejecución de una guía:

Si se produce un error fatal, como credenciales incorrectas, falta de conexión con el servidor o algún otro problema, se mostrará el mensaje "Error al ejecutar la acción "Get Host Events". Reason: {0}''.format(error.Stacktrace)

Si es 400: "Error al ejecutar la acción "Get Host Events". Reason: {0}''.format(messages/text)

General
Tabla del muro de casos

Nombre: Eventos de {Entity.identifier}

Columnas: Se basan en los resultados.

Ping

Prueba la conectividad con Splunk con los parámetros proporcionados en la página de configuración de la integración en la pestaña Marketplace de Google Security Operations.

Parámetros

N/A

Fecha de ejecución

Esta acción no se ejecuta en entidades ni tiene parámetros de entrada obligatorios.

Resultados de la acción

Resultado de secuencia de comandos
Nombre del resultado de la secuencia de comandos Opciones de valor Ejemplo
is_success Verdadero o falso is_success:False
Muro de casos
Tipo de resultado Valor / Descripción Tipo
Mensaje de salida*

La acción no debe fallar ni detener la ejecución de una guía:
Si se ejecuta correctamente: "Successfully connected to the Splunk server with the provided connection parameters!"

La acción debería fallar y detener la ejecución de una guía:
if not successful: "Failed to connect to the Splunk server! Error is {0}".format(exception.stacktrace)

General

Visualizador de CSV de Splunk

Parámetros

Parámetro Tipo Valor predeterminado Es obligatorio Descripción
Resultados cadena N/A Sí Resultados sin procesar.

Ejecutar en

Esta acción se ejecuta en todas las entidades.

Resultados de la acción

Resultado de secuencia de comandos
Nombre del resultado de la secuencia de comandos Opciones de valor Ejemplo
is_succeed Verdadero o falso is_succeed:False

SplunkQuery

Ejecutar una consulta en Splunk

Parámetros

Nombre visible del parámetro Tipo Valor predeterminado Es obligatorio Descripción
Modo de búsqueda DDL

Inteligente

Valores posibles:

  • Verboso
  • Inteligente
  • Rápida
No Especifica el modo para ejecutar la búsqueda.
Consulta String Sí Especifica la consulta que se debe ejecutar. Ejemplo: index="_internal"
Límite de recuento de resultados Número entero 100 No

Especifica cuántos resultados se devolverán.
Nota: Este parámetro agrega la palabra clave "head" a la consulta proporcionada. El valor predeterminado es 100.

Resultados de String Hace 24 h No Especifica la hora de inicio de la consulta. Valor predeterminado: -24 h
Resultados para String ahora No Especifica la hora de finalización de la consulta. Valor predeterminado: now.
Campos de resultados CSV No

Especifica una lista separada por comas de los campos que se deben devolver.
Nota: Este parámetro agrega la palabra clave "fields" a la consulta proporcionada.

Ejecutar en

Esta acción no se ejecuta en entidades.

Resultados de la acción

Resultado de secuencia de comandos
Nombre del resultado de la secuencia de comandos Opciones de valor Ejemplo
is_succeed Verdadero o falso is_succeed:False
Resultado de JSON
[{
    "app": "SA-AccessProtection",
    "_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
    "_cd": "425:9087674",
    "_indextime": "1612231318",
    "_kv": "1",
    "_raw": "02-02-2021 04:01:58.404 +0200 INFO  SavedSplunker - savedsearch_id=\"nobody;SA-AccessProtection;Access - Default Account Usage - Rule\", search_type=\"\", user=\"admin\", app=\"SA-AccessProtection\", savedsearch_name=\"Access - Default Account Usage - Rule\", priority=default, status=success, digest_mode=1, scheduled_time=1612179932, window_time=0, dispatch_time=1612179969, run_time=51348.242, result_count=0, alert_actions=\"\", sid=\"rt_scheduler__admin_U0EtQWNjZXNzUHJvdGVjdGlvbg__RMD509c859ea7b9951b8_at_1612179932_61.40533\", suppressed=1, thread_id=\"AlertNotifierWorker-0\", workload_pool=\"\"",
    "_serial": "0",
    "_si": [
        "splunk",
        "_internal"
    ],
    "_sourcetype": "scheduler",
    "_subsecond": ".404",
    "_time": "2021-02-02T04:01:58.404+02:00"
},
{
    "_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
    "_cd": "425:9087731",
    "_indextime": "1612231318",
    "_kv": "1",
    "_raw": "127.0.0.1 - admin [02/Feb/2021:04:01:58.172 +0200] \"POST /servicesNS/nobody/SA-AccessProtection/saved/searches/Access%20-%20Default%20Account%20Usage%20-%20Rule/notify?trigger.condition_state=1 HTTP/1.1\" 200 1985 - - - 3ms",
    "_serial": "1",
    "_si": [
        "splunk",
        "_internal"
    ],
    "_sourcetype": "splunkd_access",
    "_subsecond": ".172",
    "_time": "2021-02-02T04:01:58.172+02:00"
},
{
    "app": "SA-EndpointProtection",
    "_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
    "_cd": "425:9087653",
    "_indextime": "1612231318",
    "_kv": "1",
    "_raw": "02-02-2021 04:01:57.804 +0200 INFO  SavedSplunker - savedsearch_id=\"nobody;SA-EndpointProtection;Endpoint - Should Timesync Host Not Syncing - Rule\", search_type=\"\", user=\"admin\", app=\"SA-EndpointProtection\", savedsearch_name=\"Endpoint - Should Timesync Host Not Syncing - Rule\", priority=default, status=success, digest_mode=1, scheduled_time=1612179932, window_time=300, dispatch_time=1612179970, run_time=51347.420, result_count=0, alert_actions=\"\", sid=\"rt_scheduler__admin_U0EtRW5kcG9pbnRQcm90ZWN0aW9u__RMD5ef3c08822811b7cd_at_1612179932_62.25751\", suppressed=1, thread_id=\"AlertNotifierWorker-0\", workload_pool=\"\"",
    "_serial": "2",
    "_si": [
        "splunk",
        "_internal"
    ],
    "_sourcetype": "scheduler",
    "_subsecond": ".804",
    "_time": "2021-02-02T04:01:57.804+02:00"
}]
Muro de casos
Tipo de resultado Valor/Descripción Tipo
Mensaje de salida*

La acción no debe fallar ni detener la ejecución de una guía:

Si se ejecuta correctamente y hay resultados disponibles: "Successfully returned results for the query "{0}" in Splunk".format(query)

Si la operación se realiza correctamente y no hay resultados disponibles: "No se encontraron resultados para la búsqueda "{0}" en Splunk".format(query)

Mensaje asíncrono: "Waiting for query {0} to finish execution.".format(query name)

La acción debería fallar y detener la ejecución de la guía:

Si se produce un error fatal, como credenciales incorrectas, falta de conexión con el servidor, etc.: "Error al ejecutar la acción "SplunkQuery". Reason: {0}''.format(error.Stacktrace)

Si es 400: "Error al ejecutar la acción "SplunkQuery". Reason: {0}''.format(messages/text)

General
Tabla del muro de casos

Nombre: Resultados de la consulta de Splunk

Columnas: Se basan en los resultados.

General

Enviar evento

Envía el evento a Splunk.

Parámetros

Nombre visible del parámetro Tipo Valor predeterminado Es obligatorio Descripción
Índice String main Sí Especifica el índice en el que se debe crear el evento.
Evento String N/A Sí Especifica el evento sin procesar que se debe enviar.
Host String N/A No Especifica el host relacionado con el evento.
Fuente String N/A No Especifica la fuente del evento. Ejemplo: www.
Sourcetype String N/A No Especifica el tipo de fuente del evento. Ejemplo: web_event

Ejecutar en

Esta acción no se ejecuta en entidades.

Resultados de la acción

Resultado de secuencia de comandos
Nombre del resultado de la secuencia de comandos Opciones de valor Ejemplo
correcto Verdadero o falso success:False
Resultado de JSON
{
    "index": "default",
    "bytes": 70,
    "host": "dogo",
    "source": "www",
    "sourcetype": "web_event"
}
Muro de casos
Tipo de resultado Valor/Descripción Tipo
Mensaje de salida*

La acción no debe fallar ni detener la ejecución de una guía:

Si se ejecuta correctamente: "Successfully added a new event to index "{0}" in Splunk.".format(index)

La acción debería fallar y detener la ejecución de la guía:

if fatal error, like wrong credentials, no connection to server, other: "Error executing action "Submit Event". Reason: {0}''.format(error.Stacktrace)

Si es 400: "Error executing action "Submit Event". Reason: {0}''.format(messages/text)

General

Actualiza los eventos destacados

Actualizar eventos notables en Splunk ES

Parámetros

Nombre visible del parámetro Tipo Valor predeterminado Es obligatorio Descripción
IDs de eventos destacados CSV N/A Sí Especifica los IDs de los eventos notables. Ejemplo: 1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7@@notable@@cb87390ae72763679d3f6f8f097ebe2b,1D234D5B-1531-2D2B-BB94-41C439BE12B7@@notable@@cb87390ae72763679d3f6f8f097ebe2b
Estado DDL

Selecciona una opción

Valores posibles:

Selecciona una opción

Sin asignar

Nuevo

En curso

Pendiente

Resuelto

Cerrado

Sí Especifica el estado nuevo para los eventos destacados.
Urgencia DDL

Selecciona una opción

Valores posibles:

Selecciona una opción

Crítico

Alta

Media

Baja

Informativa

Sí Especifica la nueva urgencia del evento notable.
Propietario nuevo String N/A Sí Especifica el nuevo propietario del evento notable.
Comentario String N/A Sí Especifica el comentario para el evento notable.

Ejecutar en

Esta acción no se ejecuta en entidades.

Resultados de la acción

Resultado de secuencia de comandos
Nombre del resultado de la secuencia de comandos Opciones de valor Ejemplo
is_success Verdadero o falso is_success:False
Muro de casos
Tipo de resultado Valor / Descripción Tipo
Mensaje de salida*

La acción no debe fallar ni detener la ejecución de una guía:

Si se realiza correctamente y hay datos disponibles (is_success=true)

print "Successfully updated {0} notable events in Splunk.".format(count(notable_events))

Si no se puede actualizar (status_code=400, is_success=false):

print "Action wasn't able to update notable events. Reason:{0}".format(string_from_response)

La acción debería fallar y detener la ejecución de una guía:

Si se produce un error fatal, como credenciales incorrectas, falta de conexión con el servidor o algún otro problema, haz lo siguiente:

print "Error executing action "Update Notable Events". Reason: {0}''.format(error.Stacktrace)

General

Ejecuta una consulta de entidad

Ejecuta una consulta de entidad en Splunk.

¿Cómo trabajar con parámetros de acción?

Esta acción permite recuperar rápidamente información relacionada con entidades. Por ejemplo, es posible resolver el caso de uso, en el que deseas ver la cantidad de eventos de los extremos afectados por los hashes proporcionados sin ninguna creación de consultas complicada. Para resolver este problema en Splunk, deberías preparar la siguiente consulta: index="main" | where (device_ip="10.0.0.1" or device_ip="10.12.12.12") and (hash="bad_hash_1" or hash="bad_hash_2") Para crear la misma consulta con la acción "Ejecutar consulta de entidad", debes completar los parámetros de la acción de la siguiente manera:

Consulta index="main"
Clave de entidad de IP device_ip
Clave de entidad de hash de archivo hash
Operador entre entidades Y

Todos los demás campos se pueden dejar vacíos.

Si el caso de uso es ver cuántos extremos se vieron afectados por los hashes proporcionados, la configuración de "Ejecutar consulta de entidad" tendrá el siguiente aspecto.

Consulta index="main"
Clave de entidad de hash de archivo hash

En esta situación, el "Operador entre entidades" no tendrá un impacto, ya que solo afecta a la consulta cuando se proporcionan varias "Claves de entidad".

Parámetros

Nombre visible del parámetro Tipo Valor predeterminado Es obligatorio Descripción
Modo de búsqueda DDL

Inteligente

    Valores posibles:
  • Verboso
  • Inteligente
  • Rápida
No Especifica el modo para ejecutar la búsqueda.
Consulta String Sí Especifica la consulta que se debe ejecutar sin la cláusula "Where". Ejemplo: index="_internal"
Límite de recuento de resultados Número entero 100 No Especifica cuántos resultados se deben mostrar. Nota: Este parámetro agrega la palabra clave "head" a la búsqueda proporcionada. El valor predeterminado es 100.
Resultados de String Hace 24 h No Especifica la hora de inicio de la consulta. Valor predeterminado: -24 h
Resultados para String ahora No Especifica la hora de finalización de la consulta. Valor predeterminado: now.
Campos de resultados CSV N/A No

Especifica una lista de campos separados por comas que deben devolverse.
Nota: Este parámetro agrega la palabra clave "fields" a la consulta proporcionada.

Clave de entidad de IP String N/A No Especifica qué clave se debe usar con las entidades de IP. Consulta la documentación de la acción para obtener más detalles.
Clave de entidad del nombre de host String N/A No Especifica qué clave se debe usar con las entidades de nombre de host cuando prepares el . Consulta la documentación de la acción para obtener más detalles.
Clave de entidad de hash de archivo String N/A No Especifica qué clave se debe usar con las entidades de hash de archivo. Consulta la documentación de la acción para obtener más detalles.
Clave de entidad del usuario String N/A No Especifica qué clave se debe usar con las entidades User. Consulta la documentación de la acción para obtener más detalles.
Clave de entidad de URL String N/A No Especifica qué clave se debe usar con las entidades de URL. Consulta la documentación de la acción para obtener más detalles.
Clave de entidad de dirección de correo electrónico String N/A No Especifica qué clave se debe usar con las entidades de dirección de correo electrónico. Consulta la documentación de la acción para obtener más detalles.
Detener si no hay suficientes entidades Casilla de verificación Marcado Sí Si está habilitada, la acción no comenzará a ejecutarse, a menos que todos los tipos de entidades estén disponibles para las ".. claves de entidad" especificadas. Por ejemplo, si se especifican "IP Entity Key" y "File Hash Entity Key", pero en el alcance no hay hashes de archivos, si este parámetro está habilitado, la acción no ejecutará la consulta.
Operador entre entidades DDL

O

Valores posibles:

O

Y

Sí Especifica cuál debe ser el operador lógico que se use entre los diferentes tipos de entidades.

Fecha de ejecución

Esta acción se ejecuta en las siguientes entidades:

  • Dirección IP
  • Host
  • Usuario
  • Hash
  • URL

Resultados de la acción

Resultado de secuencia de comandos
Nombre del resultado de la secuencia de comandos Opciones de valor Ejemplo
is_succeed Verdadero o falso is_succeed:False
Resultado de JSON
[{
    "app": "SA-AccessProtection",
    "_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
    "_cd": "425:9087674",
    "_indextime": "1612231318",
    "_kv": "1",
    "_raw": "02-02-2021 04:01:58.404 +0200 INFO  SavedSplunker - savedsearch_id=\"nobody;SA-AccessProtection;Access - Default Account Usage - Rule\", search_type=\"\", user=\"admin\", app=\"SA-AccessProtection\", savedsearch_name=\"Access - Default Account Usage - Rule\", priority=default, status=success, digest_mode=1, scheduled_time=1612179932, window_time=0, dispatch_time=1612179969, run_time=51348.242, result_count=0, alert_actions=\"\", sid=\"rt_scheduler__admin_U0EtQWNjZXNzUHJvdGVjdGlvbg__RMD509c859ea7b9951b8_at_1612179932_61.40533\", suppressed=1, thread_id=\"AlertNotifierWorker-0\", workload_pool=\"\"",
    "_serial": "0",
    "_si": [
        "splunk",
        "_internal"
    ],
    "_sourcetype": "scheduler",
    "_subsecond": ".404",
    "_time": "2021-02-02T04:01:58.404+02:00"
},
{
    "_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
    "_cd": "425:9087731",
    "_indextime": "1612231318",
    "_kv": "1",
    "_raw": "127.0.0.1 - admin [02/Feb/2021:04:01:58.172 +0200] \"POST /servicesNS/nobody/SA-AccessProtection/saved/searches/Access%20-%20Default%20Account%20Usage%20-%20Rule/notify?trigger.condition_state=1 HTTP/1.1\" 200 1985 - - - 3ms",
    "_serial": "1",
    "_si": [
        "splunk",
        "_internal"
    ],
    "_sourcetype": "splunkd_access",
    "_subsecond": ".172",
    "_time": "2021-02-02T04:01:58.172+02:00"
},
{
    "app": "SA-EndpointProtection",
    "_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
    "_cd": "425:9087653",
    "_indextime": "1612231318",
    "_kv": "1",
    "_raw": "02-02-2021 04:01:57.804 +0200 INFO  SavedSplunker - savedsearch_id=\"nobody;SA-EndpointProtection;Endpoint - Should Timesync Host Not Syncing - Rule\", search_type=\"\", user=\"admin\", app=\"SA-EndpointProtection\", savedsearch_name=\"Endpoint - Should Timesync Host Not Syncing - Rule\", priority=default, status=success, digest_mode=1, scheduled_time=1612179932, window_time=300, dispatch_time=1612179970, run_time=51347.420, result_count=0, alert_actions=\"\", sid=\"rt_scheduler__admin_U0EtRW5kcG9pbnRQcm90ZWN0aW9u__RMD5ef3c08822811b7cd_at_1612179932_62.25751\", suppressed=1, thread_id=\"AlertNotifierWorker-0\", workload_pool=\"\"",
    "_serial": "2",
    "_si": [
        "splunk",
        "_internal"
    ],
    "_sourcetype": "scheduler",
    "_subsecond": ".804",
    "_time": "2021-02-02T04:01:57.804+02:00"
}]
Muro de casos
Tipo de resultado Valor/Descripción Tipo
Mensaje de salida*

La acción no debe fallar ni detener la ejecución de una guía:

Si se ejecuta correctamente y hay resultados disponibles: "Successfully returned results for the query "{0}" in Splunk".format(query)

Si la operación se realiza correctamente y no hay resultados disponibles: "No se encontraron resultados para la búsqueda "{0}" en Splunk".format(query)

Mensaje asíncrono: "Waiting for query {0} to finish execution.".format(query name)

Si la opción "Detener si no hay suficientes entidades" está habilitada y no hay suficientes tipos de entidades disponibles para las "Claves de entidad" proporcionadas (is_success=false): La acción no pudo compilar la consulta porque no se proporcionaron suficientes tipos de entidades para las "Claves de entidad" especificadas. Inhabilita el parámetro "Detener si no hay suficientes entidades" o proporciona al menos una entidad para cada "Clave de entidad…" especificada.

La acción debería fallar y detener la ejecución de una guía:

Si se produce un error grave, como credenciales incorrectas, falta de conexión con el servidor, entre otros: "Error executing action "Execute Entity Query". Reason: {0}''.format(error.Stacktrace)

Si es 400: "Error executing action "Execute Entity Query". Reason: {0}''.format(messages/text)

General
Tabla del muro de casos

Nombre: Resultados de la consulta de Splunk

Columnas: Se basan en los resultados.

General

Conectores

Para obtener más información sobre cómo configurar conectores en Google SecOps, consulta Transferir tus datos (conectores).

Conector de consultas de Splunk

El conector envía consultas que forman parte de la lista dinámica (whitelist), recupera resultados y crea un caso basado en los resultados recuperados.

Consultas de Splunk de muestra para ver los registros

  1. Las consultas se deben ingresar como las reglas de la lista dinámica (whitelist).

  2. Las consultas de búsqueda con varios filtros deben usar un espacio como delimitador entre los filtros de búsqueda, por ejemplo, index=cim_modactions sourcetype=modular_alerts:risk.

  3. Si usas varias reglas de lista dinámica (whitelist) en lugar de ingresar varios filtros de búsqueda delimitados por espacios en la misma regla, se ejecutará una búsqueda independiente para cada regla agregada.

    • index=cim_modactions
    • sourcetype=modular_alerts:send_data_to_siemplify
    • index=_internal sourcetype=splunkd
    • component=sendmodalert
    • action=send_data_to_siemplify
    • index=_internal source=/opt/splunk/var/log/splunk/send_data_to_siemplify_modalert.log

Parámetros del conector

Para configurar el conector, usa los siguientes parámetros:

Parámetros
Product Field Name Obligatorio

Ingresa el nombre del campo de origen para recuperar el nombre de Product Field.

El valor predeterminado es device_product.

Event Field Name Obligatorio

Ingresa el nombre del campo de origen para recuperar el nombre de Event Field.

El valor predeterminado es app.

API Root Obligatorio

Es la raíz de la API de la instancia de Splunk.

El valor predeterminado es https://IP:8089.

Username Obligatorio

Nombre de usuario de la cuenta de Splunk.

Password Obligatorio

Contraseña de la cuenta de Splunk.

API Token Optional

Es el token de la API de Splunk.

Si este campo tiene algún valor, el token de la API tiene prioridad sobre otros métodos de autenticación.

Verify SSL Obligatorio

Si se marca, se verifica que el certificado SSL para la conexión al servidor de CrowdStrike sea válido.

Esta opción no está marcada de forma predeterminada.

Environment Field Name Optional

Es el nombre del campo en el que se almacena el nombre del entorno.

Rule Generator Field Obligatorio

Es el nombre del campo que se usa para asignar el valor del generador de reglas.

Alert Name Field Name Obligatorio

Nombre de la alerta.

Events Count Limit Per Query Optional

Es la cantidad máxima de eventos que se recuperarán por consulta.

Max Day Backwards Optional

Es la cantidad de días desde los que se recuperarán los eventos.

Aggregate Events Query Optional

Si se habilita, el conector combinará todos los eventos en una sola alerta.

Está inhabilitado de forma predeterminada.

PythonProcessTimeout (Seconds) Obligatorio

Es el límite de tiempo de espera para el proceso de Python que ejecuta la secuencia de comandos actual.

El valor predeterminado es 60 segundos.

Proxy Server Address Optional

Dirección del servidor proxy que se usará.

Proxy Username Optional

Es el nombre de usuario del proxy con el que se autenticará.

Proxy Password Optional

Es la contraseña del proxy con la que se realizará la autenticación.

Environment Regex Pattern Optional

Es un patrón de expresión regular que se ejecuta en el valor que se encuentra en el campo Environment Field Name.

El valor predeterminado .* detecta todo y devuelve el valor sin cambios.

El parámetro te permite manipular el campo de entorno con la lógica de expresiones regulares.

Si el patrón de expresión regular es nulo o está vacío, o si el valor del entorno es nulo, el resultado final del entorno es el entorno predeterminado.

Reglas del conector

El conector admite proxy.

Splunk Pull Connector

Extrae alertas y eventos de Splunk a Google SecOps.

Parámetros del conector

Para configurar el conector, usa los siguientes parámetros:

Parámetros
Product Field Name Obligatorio

Ingresa el nombre del campo de origen para recuperar el nombre de Product Field.

El valor predeterminado es device_product.

Event Field Name Obligatorio

Ingresa el nombre del campo de origen para recuperar el nombre de Event Field.

El valor predeterminado es name.

Environment Field Name Optional

Nombre del campo en el que se almacena el nombre del entorno.

Si no se encuentra el campo de entorno, el entorno de resultado es "" .

El valor predeterminado es "".

Environment Regex Pattern Optional

Es un patrón de expresión regular que se ejecuta en el valor que se encuentra en el campo Environment Field Name.

El valor predeterminado .* detecta todo y devuelve el valor sin cambios.

El parámetro te permite manipular el campo del entorno con la lógica de la expresión regular.

Si el patrón de expresión regular es nulo o está vacío, o el valor del entorno es nulo, el resultado final del entorno es "".

PythonProcessTimeout (Seconds) Obligatorio

Es el límite de tiempo de espera para el proceso de Python que ejecuta la secuencia de comandos actual.

El valor predeterminado es 60 segundos.

Server Address Obligatorio

Dirección IP del servidor de la API de Splunk.

Port Obligatorio

Es el puerto de la instancia de Splunk.

El valor predeterminado es 8089.

Username Obligatorio

Nombre de usuario de la cuenta de Splunk.

Password Obligatorio

Contraseña de la cuenta de Splunk.

Time Frame Optional

Es el período para recuperar las alertas.

El valor predeterminado es 1 hora.

Ejemplos:

Si el valor se establece en 1 minuto, el conector recupera las alertas a partir de hace 1 minuto.

Si el valor se establece en 3 horas, el conector recupera las alertas que se generaron en las últimas 3 horas.

Si el valor se establece en 1 día o semana, el conector recupera las alertas a partir de 1 día (24 horas) o 1 semana atrás, respectivamente.

Alerts Count Limit Optional

Cantidad de alertas que devuelve el conector por iteración.

El valor predeterminado es 100.

Use SSL Optional

Marca la casilla para habilitar la conexión SSL o TLS.

No está marcada de forma predeterminada.

Proxy Server Address Optional

Dirección del servidor proxy que se usará.

Proxy Username Optional

Es el nombre de usuario del proxy con el que se autenticará.

Proxy Password Optional

Es la contraseña del proxy con la que se realizará la autenticación.

Reglas de conector

El conector admite proxy.

Splunk ES - Notable Events Connector

Transferir eventos notables de Splunk ES

Define la prioridad del caso

La prioridad del caso se define con el parámetro Urgency en el evento notable. Solo se tiene en cuenta este parámetro cuando se transfiere el evento notable a Google SecOps.

Parámetros del conector

Para configurar el conector, usa los siguientes parámetros:

Parámetros
Product Field Name Obligatorio

Ingresa el nombre del campo de origen para recuperar el nombre de Product Field.

El valor predeterminado es Product Name.

Event Field Name Obligatorio

Ingresa el nombre del campo de origen para recuperar el nombre de Event Field.

El valor predeterminado es index.

Environment Field Name Optional

Es el nombre del campo en el que se almacena el nombre del entorno.

Si no se encuentra el campo de entorno, se usa el entorno predeterminado.

El valor predeterminado es "".

Environment Regex Pattern Optional

Es un patrón de expresión regular que se ejecuta en el valor que se encuentra en el campo Environment Field Name.

El valor predeterminado .* detecta todo y devuelve el valor sin cambios.

El parámetro te permite manipular el campo de entorno con la lógica de expresiones regulares.

Si el patrón de expresión regular es nulo o está vacío, o si el valor del entorno es nulo, el resultado final del entorno es el entorno predeterminado.

Script Timeout (Seconds) Obligatorio

Es el límite de tiempo de espera para el proceso de Python que ejecuta la secuencia de comandos actual.

El valor predeterminado es 180 segundos.

Server Address Obligatorio

Es la dirección del servidor de la instancia de Splunk.

El valor predeterminado es https://:8089.

Username Optional

Nombre de usuario de la cuenta de Splunk.

Password Optional

Contraseña de la cuenta de Splunk.

API Token Obligatorio

Es el token de la API de Splunk.

Si este campo tiene algún valor, el token de API tiene prioridad sobre otros métodos de autenticación.

Lowest Urgency To Fetch Obligatorio

Es la urgencia más baja que se usa para recuperar eventos notables.

Los valores posibles son:

  • Informational
  • Low
  • Medium
  • High
  • Critical

El valor predeterminado es Medium.

Fetch Max Hours Backwards Optional

Es la cantidad de horas desde las que se recuperarán los eventos notables.

El valor predeterminado es 1 hora.

Only Drilldown Events Optional

Si se habilita, el conector intenta recuperar eventos de desglose sin recuperar eventos base. Este parámetro requiere que se habilite la opción Fetch Base Events .

Está inhabilitado de forma predeterminada.

Padding Time Optional

Cantidad de horas que se usarán como relleno.

Si no se proporciona ningún valor, este parámetro no se aplica.

El valor máximo es de 12 horas.

Max Notable Events To Fetch Optional

Es la cantidad de eventos notables que se procesarán por iteración del conector.

El valor predeterminado es 10.

Use whitelist as a blacklist Obligatorio

Si se habilita, la lista dinámica se usa como lista de entidades bloqueadas.

Está inhabilitado de forma predeterminada.

Verify SSL Obligatorio

Si se marca, se verifica que el certificado SSL para la conexión al servidor de CrowdStrike sea válido.

Esta opción no está marcada de forma predeterminada.

Proxy Server Address Optional

Dirección del servidor proxy que se usará.

Proxy Username Optional

Es el nombre de usuario del proxy con el que se autenticará.

Proxy Password Optional

Es la contraseña del proxy con la que se realizará la autenticación.

Query Filter Optional

Es el filtro de consulta adicional que se envía a Splunk para obtener eventos notables.

El valor que se proporciona aquí se agrega a la cláusula de consulta WHERE.

Extract Base Events Optional

Si está habilitado, el conector extrae los eventos base relacionados con el evento notable con información sobre el trabajo. En otro caso, el conector crea un evento de Google SecOps basado en el evento notable.

Si este parámetro se establece en True, pero el conector no puede trabajar con trabajos, el conector usa información sobre eventos notables como mecanismo de resguardo.

Habilitada de forma predeterminada.

Multivalue Fields Optional

Es una lista separada por comas de campos que contienen varias entidades.

Por ejemplo, si un campo contiene dos nombres de host, el evento notable se divide en dos eventos de Google SecOps para asignar las entidades correctamente.

Notable Event Data Along Base Event Optional

Si está habilitado, el conector agrega eventos de Google SecOps basados en el evento notable, además de los eventos base.

Está inhabilitado de forma predeterminada.

Rule Generator Field Name Optional

Es el nombre del campo que se usa para asignar el valor del generador de reglas.

Solo se usa la información sobre el evento notable para la asignación, los eventos se ignoran. Si se proporciona un valor no válido, el conector establece el campo en el valor rule_name.

Alert Name Source Optional

Es la fuente del nombre de la alerta.

Los valores posibles son:

  • Search Name
  • Rule Name

El valor predeterminado es Search Name.

Alert Start Time Field Optional

Es un campo del evento notable de Splunk que se usará como el start_time de la alerta.

Si el campo está vacío, no es válido o no se puede analizar como una marca de tiempo, el conector recurre al comportamiento predeterminado con el campo _time.

Cómo usar el parámetro Query Filter

Si es necesario reducir la cantidad de eventos destacados según parámetros específicos, usa el parámetro Query Filter. El valor proporcionado en este parámetro se agrega a la cláusula WHERE de la consulta que se envía para obtener eventos destacados.

El ejemplo de la búsqueda enviada es el siguiente:

(`get_notable_index` OR `get_sequenced_index`) | eval `get_event_id_meval`,
rule_id=event_id | tags outputfield=tag | `mvappend_field(tag,orig_tag)` |
`notable_xref_lookup` | `get_correlations` | `get_current_status` | `get_owner`
| `get_urgency` | typer | where (urgency="medium" AND urgency="low") AND
(status_label="Unassigned" OR status_label="New")  | tail 50 | fields *

Por ejemplo, si es Query Filter = isTesting = True, la búsqueda aparecerá de la siguiente manera:

search (`get_notable_index` OR `get_sequenced_index`) | eval epoch=_time | eval
`get_event_id_meval`,rule_id=event_id | tags outputfield=tag |
`mvappend_field(tag,orig_tag)` | `notable_xref_lookup` | `get_correlations` |
`get_current_status` | `get_owner` | `get_urgency` | typer | where
(urgency!="informational" AND urgency!="low" **AND isTesting = "True"**) |
fields *

Reglas de conector

El conector de Splunk ES usa listas dinámicas y listas de bloqueo (whitelist y blacklist). El conector usa el campo search_name del evento para compararlo con la lista dinámica.

Evento del conector

[{
    "indicator": "2012/06/29_21:50", 
    "tlp": "TLP:RED", 
    "itype": "mal_url", 
    "severity": "very-high", 
    "classification": "public", 
    "detail": "", 
    "confidence": 50, 
    "actor": "", 
    "feed_name": "import", 
    "source": "admin", 
    "feed_site_netloc": "localhost", 
    "campaign": "", 
    "type": "url", 
    "id": "anomali:indicator-578a9be5-0e03-4ec0-940d-4b1842f40fd0", 
    "date_last": "2020-07-15 08:12:07 AM",
"Url": "indicator"
  },{
    "indicator": "2010/12/19_16:35", 
    "tlp": "TLP:RED", 
    "itype": "mal_url", 
    "severity": "very-high", 
    "classification": "public", 
    "detail": "", 
    "confidence": 50, 
    "actor": "", 
    "feed_name": "import", 
    "source": "admin", 
    "feed_site_netloc": "localhost", 
    "campaign": "", 
    "type": "url", 
    "id": "anomali:indicator-52cadd07-330a-45fd-962f-32e22d36a89a", 
    "date_last": "2020-07-15 08:12:07 AM"
  }]

Trabajos

Para obtener más información sobre los trabajos, consulta Configura un trabajo nuevo y Programación avanzada.

Sincroniza los eventos cerrados de Splunk ES

Sincroniza los eventos notables cerrados de Splunk ES y las alertas de Google SecOps.

Parámetros

Nombre visible del parámetro Tipo Valor predeterminado Es obligatorio Descripción
Dirección del servidor String https://IP:8089 Sí Es la dirección del servidor de la instancia de Splunk.
Nombre de usuario String N/A No Nombre de usuario de la cuenta de Splunk.
Contraseña Contraseña N/A No Contraseña de la cuenta de Splunk.
Token de API Contraseña N/A Sí Es el token de la API de Splunk. El token de API tiene prioridad sobre otros métodos de autenticación cuando este campo no está vacío.
Horas máximas hacia atrás Número entero 24 Sí Especifica cuántas horas hacia atrás se sincronizarán los estados. Valor predeterminado: 24 horas.
Verificar SSL Casilla de verificación Marcado Sí Si está habilitada, verifica que el certificado SSL para la conexión al servidor de Splunk sea válido.

Sincroniza los comentarios de Splunk ES

Este trabajo sincronizará los comentarios en los eventos de Splunk ES y los casos de Google SecOps.

Parámetros

Nombre visible del parámetro Tipo Valor predeterminado Es obligatorio Descripción
Dirección del servidor String https://IP:8089 Sí Es la dirección del servidor de la instancia de Splunk.
Nombre de usuario String N/A No Nombre de usuario de la cuenta de Splunk.
Contraseña Contraseña N/A No Contraseña de la cuenta de Splunk.
Token de API Contraseña N/A Sí Es el token de la API de Splunk. El token de API tiene prioridad sobre otros métodos de autenticación cuando este campo no está vacío.
Verificar SSL Casilla de verificación Marcado Sí Si está habilitada, verifica que el certificado SSL para la conexión al servidor de Splunk sea válido.

¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.