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:
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.
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.
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.
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.
Si planeas transferir eventos sin procesar de búsquedas transformadoras (como búsquedas que usan
stats,chartotimechart), asegúrate de quedispatch.buckets = 1esté configurado ensavedsearches.confen 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:
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).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.
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).
Capacidades del rol de Splunk: Asegúrate de que la cuenta de Splunk que se autentica tenga un rol con las siguientes capacidades:
searchschedule_searchedit_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)
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 cuandoTA-Siemplifyse 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
- Permisos de búsqueda en los índices de eventos objetivo (no requiere
- Splunk ES: Conector y trabajos de eventos notables: Una instalación activa de Splunk Enterprise Security (ES), permisos de lectura para el índice
notabley acceso a la macroget_notable_index(no requiereTA-Siemplify).
- Conector de extracción de Splunk: Permisos de lectura para la tabla de consulta
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í | 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 | Sí | Especifica cuántos eventos se devolverán por host. |
| Resultados de | String | -24 h | Sí | Especifica la hora de inicio de los eventos. |
| Resultados hasta | String | ahora | Sí | 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: La acción debería fallar y detener la ejecución de la guía: |
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
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:
|
No | Especifica el modo de ejecución de 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. |
| 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. |
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 | 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 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 | Sí | 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 |
Sí | 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 |
Sí | Especifica la nueva urgencia del evento notable. |
| Propietario nuevo | String | N/A | Sí | Especifica el nuevo propietario del evento destacado. |
| 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 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:
|
No | Especifica el modo de ejecución de 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 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. |
| 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 | Sí | 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 |
Sí | 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
Las consultas deben ingresarse como las reglas de la lista dinámica (
whitelist).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.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_modactionssourcetype=modular_alerts:send_data_to_siemplifyindex=_internal sourcetype=splunkdcomponent=sendmodalertaction=send_data_to_siemplifyindex=_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 El valor predeterminado es |
Event Field Name |
Obligatorio
Ingresa el nombre del campo de origen para recuperar el nombre de El valor predeterminado es |
API Root |
Obligatorio
Es la raíz de la API de la instancia de Splunk. El valor predeterminado es |
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 El valor predeterminado 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 El valor predeterminado es |
Event Field Name |
Obligatorio
Ingresa el nombre del campo de origen para recuperar el nombre de El valor predeterminado es |
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 El valor predeterminado 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 |
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 El valor predeterminado es |
Event Field Name |
Obligatorio
Ingresa el nombre del campo de origen para recuperar el nombre de El valor predeterminado es |
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 El valor predeterminado 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 |
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:
El valor predeterminado es |
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 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 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 |
Alert Name Source |
Optional
Es la fuente del nombre de la alerta. Los valores posibles son:
El valor predeterminado es |
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 |
Sí | 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áx. hacia atrás | Número entero | 24 | Sí | 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 | 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í | 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.