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:

  • Ingesta basada en la transmisión: Splunk evalúa las alertas de forma local y transmite los eventos directamente a Google SecOps con el complemento TA-Siemplify y las acciones de activación de alertas. No se requiere configuración de conectores en Google SecOps.

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

Transferencia basada en envíos

La transferencia basada en la transmisión requiere conectividad HTTPS saliente directa desde Splunk a Google SecOps, así como configuraciones específicas del complemento en tus encabezados 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 de administrador 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 transformadoras (como búsquedas que usan stats, chart o timechart), asegúrate de que dispatch.buckets = 1 esté configurado en savedsearches.conf en tus encabezados de búsqueda.

Transferencia basada en extracciones

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

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

  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 de portador de Splunk (para habilitar este método de autenticación en la plataforma de Splunk, se requiere la autenticación con token).

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

    • search
    • schedule_search
    • edit_tcp (obligatorio solo si se usa la acción Enviar evento)
    • edit_notable_events (solo se requiere si se usa la acción Update Notable Events o los trabajos de sincronización de Splunk ES)
  5. Permisos de almacén de datos y búsqueda: 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 TA-Siemplify se instala y configura en el modo de extracción).
    • Conector y acciones de consultas de Splunk:
      • Permisos de búsqueda en los índices de eventos objetivo (no requiere TA-Siemplify).
      • Permisos de escritura y entrada en el índice de destino si se usa la acción Submit Event
    • 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} Dirección del servidor de Splunk.
Nombre de usuario String N/A No Dirección de correo electrónico del usuario que se debe usar para conectarse a Splunk.
Contraseña Contraseña N/A No Contraseña del usuario correspondiente.
Token de API Contraseña N/A No 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 SSL (no está marcada de forma predeterminada).
Archivo del certificado de CA String N/A No Archivo de certificado de la AC codificado en Base64.

Si quieres obtener instrucciones para configurar una integración en Google SecOps, consulta Configura integraciones.

Si es necesario, puedes hacer cambios más adelante. Después de configurar una instancia de integración, puedes usarla en los playbooks. Para obtener más información sobre cómo configurar y admitir varias instancias, consulta Compatibilidad con varias instancias.

Acciones

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

Obtén eventos del 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 Especifica cuántos eventos se devolverán por host.
Resultados de String -24 h Especifica la hora de inicio de los eventos.
Resultados hasta String ahora Especifica la hora de finalización de los eventos.
Campos de resultados CSV N/A No Especifica una lista de campos separados por comas 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.

Ejecutar en

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 o 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: "Successfully returned events for the following hosts in 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: "No se encontraron eventos para los hosts proporcionados en Splunk"

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

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

Si es 400, significa que se produjo un error al ejecutar la acción "Get Host Events". Motivo: {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 a Splunk con los parámetros proporcionados en la página de configuración de la integración en la pestaña Google Security Operations Marketplace.

Parámetros

N/A

Ejecutar en

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 o descripción Tipo
Mensaje de salida*

La acción no debe fallar ni detener la ejecución de un playbook:
Si se ejecuta correctamente: "Se conectó correctamente al servidor de Splunk con los parámetros de conexión proporcionados"

La acción debería fallar y detener la ejecución de la guía:
Si no se realiza correctamente: "No se pudo conectar al servidor de Splunk. 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 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

Ejecuta 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 de ejecución de la búsqueda.
Consulta String 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 búsqueda proporcionada. El valor predeterminado es 100.

Resultados de String -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 búsqueda. Valor predeterminado: now.
Campos de resultados CSV No

Especifica una lista de campos separados por comas 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 la operación se realiza correctamente y hay resultados disponibles: "Se devolvieron correctamente los resultados de la búsqueda "{0}" en 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 o algún otro problema, se mostrará el mensaje "Error al ejecutar la acción "SplunkQuery". Reason: {0}''.format(error.Stacktrace)

Si es 400: "Error al ejecutar la acción "SplunkQuery". Motivo: {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 Especifica el índice en el que se debe crear el evento.
Evento String N/A 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 realiza correctamente: "Se agregó correctamente un evento nuevo al índice "{0}" en 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 al ejecutar la acción "Enviar evento". Motivo: {0}''.format(messages/text)

General

Actualiza los eventos destacados

Actualiza los 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 Especifica los IDs de los eventos destacados. 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

Especifica el nuevo estado para los eventos destacados.
Urgencia DDL

Selecciona una opción

Valores posibles:

Selecciona una opción

Crítico

Alta

Media

Baja

Informativa

Especifica la nueva urgencia del evento notable.
Propietario nuevo String N/A Especifica el nuevo propietario del evento destacado.
Comentario String N/A 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 o 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 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 la 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 la consulta de entidad

Ejecuta una búsqueda de entidades en Splunk.

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

Esta acción permite recuperar fácilmente 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 necesidad de crear consultas complicadas. Para resolver este problema en Splunk, deberás 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 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 de entidades cruzadas Y

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

Si el caso de uso es ver cuántos endpoints 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 de varias entidades" no tendrá impacto, ya que solo afecta la búsqueda 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 de ejecución de la búsqueda.
Consulta String 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 devolverán. Nota: Este parámetro agrega la palabra clave "head" a la búsqueda proporcionada. El valor predeterminado es 100.
Resultados de String -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 búsqueda. Valor predeterminado: now.
Campos de resultados CSV N/A No

Especifica una lista de campos separados por comas que se deben devolver.
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 Hostname cuando se prepara el objeto . 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 la entidad del usuario String N/A No Especifica qué clave se debe usar con las entidades de usuario. 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 Si está habilitada, la acción no comenzará a ejecutarse, a menos que todos los tipos de entidades estén disponibles para las ".. Entity Keys" especificadas. Ejemplo: Si se especifican "Clave de entidad de IP" y "Clave de entidad de hash de archivo", pero no hay hashes de archivo en el alcance, si este parámetro está habilitado, la acción no ejecutará la búsqueda.
Operador de entidades cruzadas DDL

O

Valores posibles:

O

Y

Especifica qué operador lógico se debe usar entre los diferentes tipos de entidades.

Ejecutar en

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 la operación se realiza correctamente y hay resultados disponibles: "Se devolvieron correctamente los resultados de la búsqueda "{0}" en 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): No se pudo compilar la búsqueda 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 la guía:

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

Si es 400: "Error al ejecutar la acción "Ejecutar consulta de entidad". Motivo: {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 Ingiere 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 en función de los resultados recuperados.

Ejemplos de consultas de Splunk para ver los registros

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

  2. Las búsquedas 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 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

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

Rule Generator Field Obligatorio

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

Cantidad de días desde los que se recuperarán los eventos.

Aggregate Events Query Optional

Si está habilitado, 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

Nombre de usuario del proxy para la autenticación.

Proxy Password Optional

Contraseña del proxy para la autenticación.

Environment Regex Pattern Optional

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

El valor predeterminado .* captura todos los valores y los devuelve sin cambios.

El parámetro te permite manipular el campo del 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.

Conector de extracción de Splunk

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 del entorno, el entorno del resultado es "" .

El valor predeterminado es "".

Environment Regex Pattern Optional

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

El valor predeterminado .* captura todos los valores y los devuelve sin cambios.

El parámetro te permite manipular el campo del 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 "".

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 a partir de hace 3 horas.

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

Alerts Count Limit Optional

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

El valor predeterminado es 100.

Use SSL Optional

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

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

Proxy Server Address Optional

Dirección del servidor proxy que se usará.

Proxy Username Optional

Nombre de usuario del proxy para la autenticación.

Proxy Password Optional

Contraseña del proxy para la autenticación.

Reglas del conector

El conector admite proxy.

Splunk ES: conector de eventos notables

Transfiere eventos notables desde Splunk ES.

Cómo definir 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 incorpora el evento notable en 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

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

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

El valor predeterminado es "".

Environment Regex Pattern Optional

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

El valor predeterminado .* captura todos los valores y los devuelve sin cambios.

El parámetro te permite manipular el campo del 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

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 destacados.

Los valores posibles son:

  • Informational
  • Low
  • Medium
  • High
  • Critical

El valor predeterminado es Medium.

Fetch Max Hours Backwards Optional

Cantidad de horas desde las que se recuperan los eventos destacados.

El valor predeterminado es 1 hora.

Only Drilldown Events Optional

Si está habilitado, el conector intenta recuperar eventos de desglose sin recuperar eventos básicos. 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 bloqueo.

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

Nombre de usuario del proxy para la autenticación.

Proxy Password Optional

Contraseña del proxy para la autenticación.

Query Filter Optional

Es un filtro de búsqueda adicional que se envía a Splunk para obtener eventos destacados.

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 eventos básicos relacionados con el evento notable a partir de la información del trabajo. En otros casos, 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 básicos.

Está inhabilitado de forma predeterminada.

Rule Generator Field Name Optional

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

Solo se usa la información sobre el evento notable en sí para la asignación, y 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.

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 Query Filter = isTesting = True, la consulta se verá 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 del 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 SecOps de Google.

Parámetros

Nombre visible del parámetro Tipo Valor predeterminado Es obligatorio Descripción
Dirección del servidor String https://IP:8089 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 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áx. hacia atrás Número entero 24 Especifica cuántas horas hacia atrás se sincronizarán los estados. El valor predeterminado es de 24 horas.
Verificar SSL Casilla de verificación Marcado 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 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 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 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.