GitSync
GitSync es una integración sólida creada por el equipo de servicios profesionales de SOAR de Google Security Operations y diseñada para sincronizar los componentes de SOAR de Google Security Operations con un repositorio de Git. Usa las operaciones internas de Git para escribir directamente en el repositorio, lo que hace que actúe como un servicio de almacenamiento de archivos. Proporciona métodos para hacer lo siguiente:
Migrar recursos entre instancias de Google Security Operations SOAR
Crear copias de seguridad de los recursos de Google Security Operations SOAR
Documentación automática
Crea una "tienda" para compartir recursos o conocimientos
Control de versiones
La integración consta de varios trabajos de SOAR de Google Security Operations: trabajos de inserción y extracción para cada recurso compatible, y trabajos de inserción y extracción para toda la instancia de SOAR de Google Security Operations. No es necesario que estos trabajos se ejecuten periódicamente, ya que se han creado para que se ejecuten manualmente desde el IDE, pero se pueden usar como trabajos normales (por ejemplo, para subir una confirmación diaria).
GitSync usará la API SOAR de Google Security Operations para obtener el recurso pertinente, como una integración o una familia visual, y analizar toda la información disponible de ese recurso. Esta información se renderizará más adelante en un archivo README.md que suele mostrarse al examinar el repositorio. A continuación, escribe la definición JSON del recurso y el archivo README renderizado en el repositorio local y lo inserta en el repositorio remoto.
Otro uso de GitSync es compartir conocimientos. Con esta integración, un repositorio de Git puede actuar como "almacén" de recursos, como guías o ajustes de ontología, que se hayan diseñado previamente y que aprovechen las prácticas recomendadas de SOAR de Google Security Operations para optimizar la plataforma.
Requisitos previos
Enviar o extraer datos de un repositorio:
Método de autenticación en Git. Se admiten combinaciones de nombre de usuario y contraseña (no recomendado), tokens de acceso (recomendado) y claves privadas SSH codificadas en base64 (recomendado). Si usas los dos últimos, no es necesario el parámetro "username".
Un usuario local de Google Security Operations SOAR. Se usa para importar recursos. Este usuario debe tener permiso para escribir el módulo de destino (por ejemplo, un usuario sin acceso al IDE no podría extraer integraciones).
Crear un repositorio
Todos los puntos mencionados en la sección Enviar o extraer un repositorio ya creado.
Un repositorio remoto. Se recomienda que haya al menos un archivo en el repositorio. La mayoría de los servicios de Git ofrecen la opción de crear un archivo README al crear el repositorio.
Configurar la integración
Debe configurar la integración como instancia compartida. No se puede conectar a un entorno de Google SecOps SOAR.
Propiedades de integración
Nombre del parámetro | Descripción |
URL del repositorio | URL del repositorio. Si usas la autenticación con nombre de usuario y contraseña, este valor debe empezar por https://. Si usas la autenticación SSH, este valor debe empezar por git@ o ssh://. Consulta la sección Configurar la URL del repositorio y la rama más abajo. |
Rama | Rama del repositorio con la que se va a sincronizar. |
Contraseña, token o clave SSH de Git | Método de autenticación en Git. Este valor puede ser una contraseña, un token o una clave privada SSH de Git. Las claves privadas deben estar codificadas en Base64. Se admiten RSA y Ed25519. |
Nombre de usuario de Git | Nombre de usuario de Git. Este valor no es obligatorio cuando se usa la autenticación SSH. |
Autor de la confirmación |
No es obligatorio. Permite especificar el autor de la confirmación. Este valor debe tener el formato siguiente: nombre de usuario |
Verificar SSL de Google Security Operations SOAR | Verificar SSL en la API de Google Security Operations SOAR |
Verificar SSL de Git | Verificar SSL con el servicio Git de destino |
Configurar la URL del repositorio y la rama
En esta guía, mostraremos cómo obtener los valores correctos en Bitbucket (ten en cuenta que el proceso es el mismo en GitHub).
Busca el repositorio en Bitbucket.
Haz clic en el botón de clonar, situado en la esquina superior derecha (Código en GitHub).
Autenticación con usuario y contraseña o con token: la URL del repositorio es https://bitbucket.org/siemplifyproserv/connectors.git . (El nombre de usuario se puede ignorar)
Comprueba la rama actual (master en la imagen de abajo)
Ejemplo de uso
Todos los trabajos de GitSync contienen los siguientes parámetros:
Nombre | Descripción |
Específicos de la tarea: nombre del conector, identificador de integración, lista de permitidos de runbook, etc. | Estos parámetros sirven para especificar qué se envía o se extrae del repositorio. En GitSync, los recursos se identifican por sus identificadores. En estos valores se distingue entre mayúsculas y minúsculas. |
URL del repositorio y rama | Añade compatibilidad con varios repositorios con las mismas credenciales. Una vez que se hayan definido estos parámetros, se ignorará el repositorio configurado en la instancia de integración. |
Mensaje de confirmación | Cuando se insertan recursos en el repositorio, se requiere un mensaje para la confirmación. Aquí puedes especificar el motivo del envío e indicar qué se ha corregido, cambiado o añadido al recurso. |
Complemento Readme | Añade la posibilidad de ampliar la documentación de los recursos cuando se insertan. En este valor, puede usar lo siguiente:
La plantilla se añade al final de la documentación y se guarda en el archivo de metadatos GitSync.json, en la raíz del repositorio. |
Obtener recursos
En este ejemplo, vamos a extraer un conector con las asignaciones y las familias visuales correctas.
- Primero, asegúrate de que el recurso se encuentre en el repositorio configurado. Solo tienes que buscar en los directorios del repositorio y copiar el identificador del recurso (normalmente es el nombre del directorio o el título del archivo README).
Ejemplo de un repositorio de Bitbucket, en el directorio Connectors. Ten en cuenta que los directorios son los nombres de las integraciones y que, dentro de ellos, se encuentran los identificadores reales de los conectores. Busca el trabajo adecuado en el IDE de SOAR de Google Security Operations. En este ejemplo, usaremos el trabajo Pull Connector.
Nota: Cuando extraigas un conector, comprueba que la integración del conector también esté instalada.
Haz clic en la pestaña de pruebas y configura los parámetros. Como vamos a usar un repositorio y ya está configurado en la instancia de integración, dejaremos vacíos los parámetros URL del repositorio y Rama, y asignaremos a los demás parámetros los valores que necesitemos.
Ejecuta la tarea.
Consulta la salida de depuración para ver el registro de la operación. Si todo va bien, el registro lo indicará.
- Ve a Google Security Operations SOAR -> Connectors y configura el conector.
Enviar recursos
En este ejemplo, vamos a enviar un playbook y un bloque al repositorio.
Identifica los manuales que quieras enviar. Aquí publicaremos un nuevo bloque llamado "Failed Login" (Inicio de sesión fallido) y un manual actualizado llamado "Malicious Activity" (Actividad maliciosa).
Busca el trabajo adecuado en el IDE de SOAR de Google Security Operations. En este ejemplo, usaremos el trabajo Push Playbook.
Haz clic en la pestaña de pruebas y configura los parámetros.
- Como ambos están en la misma carpeta (Default), también puedes usar la lista de permitidos de carpetas.
Ejecuta la tarea.
Consulta la salida de depuración para ver el registro de la operación. Si todo va bien, el registro lo indicará.
Valida que el repositorio contiene las versiones más recientes de los playbooks.
Crear un repositorio
Para crear un repositorio, solo es importante incluir un archivo en el repositorio antes de configurarlo con GitSync. Puedes hacerlo rápidamente incluyendo un archivo README en la raíz del repositorio al crearlo.
Bitbucket

GitHub

Limitaciones y problemas conocidos
Una vez que se ha configurado el repositorio por primera vez, utiliza una estructura de directorios predefinida para asegurarse de que sabe dónde se encuentra cada recurso. Si no se sigue la estructura de directorios con una confirmación personalizada o se hacen cambios en el repositorio, la integración no funcionará correctamente. Puedes consultar el esquema de la estructura del directorio del repositorio al final de este documento.
Ten cuidado al usar esta integración con repositorios públicos. Los recursos de SOAR de Google Security Operations usan parámetros que contienen IDs de aplicaciones, IDs de clientes, nombres de usuario y otra información sensible. GitSync no puede saber si el parámetro es sensible o no, por lo que todos los parámetros que no sean de tipo "Password" se subirán al repositorio. Además, al enviar una instancia de SOAR de Google Security Operations (trabajo de Push Environment), hay una opción para confirmar contraseñas. Esta opción indica a GitSync que intente exportar todos los parámetros de contraseña de la configuración de la integración. No asignes el valor true a este campo si el repositorio es público, ya que todas las credenciales se filtrarán online.
Al extraer una instancia de SOAR de Google Security Operations (trabajo Pull Environment), la instalación de todas las integraciones puede tardar más de 5 minutos y el trabajo fallará por tiempo de espera agotado. Te recomendamos que instales manualmente todas las integraciones comerciales de Google Security Operations Marketplace con antelación para evitar problemas. Sin embargo, también puedes volver a ejecutar el trabajo si falla por un tiempo de espera agotado.
Las integraciones comerciales y las personalizadas se gestionan de forma diferente. La integración personalizada se enviará como la exportación completa en formato ZIP de la integración para una operación de importación o exportación. Las integraciones comerciales se enviarán solo con el código personalizado. Una vez extraída, GitSync instalará la versión más reciente de la integración desde Google SecOps Marketplace y guardará el código personalizado en la integración oficial.
Cuando se extraen las asignaciones, no aparecen en la tabla Configuración -> Ontología -> Estado de la ontología hasta que los eventos se hayan insertado en Google Security Operations SOAR, ya que aún no se han indexado.
El repositorio local se guarda en /opt/siemplify/siemplify_server/GitSyncFiles/{RepoName}. Como la integración escribe objetos de Git y no archivos, esta carpeta no representa el repositorio y se sobrescribe con los cambios que se hagan cada vez que se ejecute un trabajo. Te recomendamos que uses otro clon del repositorio y no el que ha creado GitSync.
Los cuadernos de estrategias con permisos restringidos (por ejemplo, los permisos predeterminados definidos como Puede ver) requieren una configuración de permisos específica en el sistema de origen para que la sincronización a través de GitSync se realice correctamente. Para obtener más información, consulta Trabajar con permisos de cuadernos de estrategias.
Google SecOps admite el uso de GitSync para crear copias de seguridad de los recursos de SOAR. Sin embargo,Google SecOps no admite el uso de GitSync para *distribuir* recursos de SOAR entre sistemas. Esto puede dar lugar a resultados inesperados, ya que los objetos de la base de datos podrían no ser únicos.
Trabajar con permisos de guías
Si usas GitSync para sincronizar guías con permisos restringidos (por ejemplo, si los permisos predeterminados están configurados como Puede ver u otros ajustes no predeterminados), es posible que se produzca un error en el sistema de destino si no tiene autorización para modificar la guía. Esto ocurre porque GitSync usa una clave de API del sistema interna con el rol Administrator
SOC para realizar acciones. Para que las guías con permisos restringidos se sincronicen correctamente, otorga el rol de Administrator
SOC Puede editar en el sistema de origen de esas guías.
Habilitar GitSync para extraer playbooks con permisos restringidos
- En el sistema de origen:
- Ve al manual que quieras sincronizar con GitSync.
- Abre la configuración de permisos del libro de jugadas.
- Asegúrate de que el rol de
Administrator
SOC se haya añadido a la lista de entidades con el permiso Puede editar.
- Después de ajustar los permisos en el sistema de origen, ejecuta la acción Insertar Playbook en GitSync para actualizar el repositorio de Git con el playbook y sus permisos.
- En el sistema de destino, ejecuta la acción Pull Playbook (Extraer guía) en GitSync.
Crear claves SSH para usar con GitSync
Primero, genera un par de claves. Cuando se te pida una frase de contraseña, pulsa Intro:
ssh-keygen -b 2048 -t rsa -f ./id_rsa
.Se crearán dos archivos: id_rsa (clave privada) e id_rsa.pub (clave pública). Guarda la clave privada en un lugar seguro.
Define la clave pública en el repositorio. Por ejemplo, en Bitbucket, introduce la configuración del repositorio y haz clic en Claves de acceso. Haz clic en Añadir clave y pega el contenido de id_rsa.pub en el parámetro Key.
Antes de añadir la clave privada a la configuración de la integración, debe codificarse en Base64.
Usa estos comandos para codificar el archivo:
- Linux:
cat id_rsa | base64 -w 0
- Windows:
Abre PowerShell en la ubicación de id_rsa y pega lo siguiente (es una sola línea):
Write-Output [System.Text.Encoding]::ASCII.GetString([convert]::ToBase64String(([IO.File]::ReadAllBytes((Join-Path (pwd) 'id_rsa')))))
- Linux:
- Copia el valor impreso en la propiedad de integración Contraseña/Token/Clave SSH y prueba la conectividad de la integración.
Estructura de directorios del repositorio de GitSync
Esta es la estructura de directorios esperada en el repositorio remoto.
* Este es el resultado del comando tree de un repositorio de ejemplo. Los comentarios están en rojo.


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