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. Utiliza las operaciones internas de Git para escribir directamente en el repositorio, lo que lo convierte en un servicio de almacenamiento de archivos. Proporciona métodos para realizar las siguientes acciones:
Migra activos entre instancias de Google Security Operations SOAR
Crea 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 envío y extracción para cada activo compatible, y trabajos de envío y extracción para toda la instancia de SOAR de Google Security Operations. Estos trabajos no necesitan ejecutarse de forma periódica, ya que se crearon para ejecutarse manualmente desde el IDE, pero se pueden usar como trabajos regulares (por ejemplo, subir una confirmación diaria).
GitSync usará la API de SOAR de Operaciones de seguridad de Google para recuperar el activo pertinente, como una integración o una familia visual, y analizar toda la información disponible de ese activo (esta información se renderizará más adelante en un archivo README.md que suele mostrarse cuando se explora el repositorio). Luego, escribe la definición JSON del recurso y el README renderizado en el repositorio local, y lo envía al repositorio remoto.
Otro uso de GitSync es el intercambio de conocimientos. Con esta integración, un repositorio de Git puede actuar como un "almacén" de recursos, como guías o parámetros de configuración de la ontología, que se diseñaron previamente y aprovechan las prácticas recomendadas de SOAR de Google Security Operations para llevar la plataforma a su mejor nivel.
Requisitos previos
Envía o extrae un repositorio existente:
Método de autenticación en Git. Se admite una combinación de nombre de usuario y contraseña (no se recomienda), un token de acceso (se recomienda) y una clave privada SSH codificada en Base64 (se recomienda). Cuando se usan los dos últimos, no se requiere el parámetro username.
Es un usuario local de Google Security Operations SOAR. Se usa para importar recursos. Este usuario debe tener permiso para escribir en el módulo de destino (por ejemplo, un usuario sin acceso al IDE no podría extraer integraciones).
Crea un repositorio nuevo
Todos los puntos mencionados anteriormente en Cómo enviar o extraer un repositorio existente.
Es un repositorio remoto. Se recomienda tener al menos 1 archivo en el repositorio. La mayoría de los servicios de Git ofrecen la opción de crear un archivo README cuando se crea el repositorio.
Configura la integración
Debes configurar la integración como una instancia compartida. No se puede conectar a un entorno existente en Google SecOps SOAR.
Propiedades de integración
Nombre del parámetro | Descripción |
URL del repositorio | Es la URL del repositorio. Cuando se usa la autenticación con usuario y contraseña, este valor debe comenzar con https://. Si usas la autenticación SSH, este valor debe comenzar con git@ o ssh://. (Consulta Configuración de la URL y la rama del repositorio a continuación). |
Rama | Rama del repositorio con la que se realizará la sincronización. |
Contraseña, token o clave SSH de Git | Es el método de autenticación en Git. Este valor puede ser la contraseña, el token o la clave privada de SSH de Git. Las claves privadas deben codificarse 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 siguiente formato: Nombre de usuario |
Google Security Operations SOAR Verify SSL | Verifica la SSL en la API de Google Security Operations SOAR |
Verificación de SSL de Git | Verifica la SSL con el servicio de Git de destino |
Configura la URL y la rama del repositorio
En esta guía, demostraremos 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 Clonar 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 . (Se puede ignorar el nombre de usuario)
Verifica la rama actual (principal en la siguiente imagen).
Ejemplo de uso
Cada trabajo en GitSync contiene los siguientes parámetros:
Nombre | Descripción |
Específicos del trabajo: Nombre del conector, identificador de integración, lista de entidades permitidas del manual, etcétera | Estos parámetros se usan para especificar qué se envía o extrae del repositorio. En GitSync, los activos se identifican por sus identificadores. Estos valores distinguen entre mayúsculas y minúsculas. |
URL y rama del repositorio | Se agregó compatibilidad para varios repositorios con las mismas credenciales. Una vez que se establezcan estos parámetros, se ignorará el repositorio configurado en la instancia de integración. |
Mensaje de confirmación | Cuando se envían recursos al repositorio, se requiere un mensaje para la confirmación. Aquí puedes especificar el motivo de la confirmación, indicando qué se corrigió, cambió o agregó al activo. |
Complemento de Readme | Se agregó la capacidad de extender la documentación de los recursos cuando se envían. En este valor, puedes usar lo siguiente:
La plantilla se agrega al final de la documentación y se guarda en el archivo de metadatos GitSync.json en la raíz del repositorio. |
Cómo extraer recursos
En este ejemplo, extraeremos un conector con las asignaciones y las familias visuales correctas.
- Primero, asegúrate de que el recurso se encuentre en el repositorio configurado. Simplemente explora los directorios del repositorio y copia el identificador del recurso (por lo general, es el nombre del directorio o el título del archivo README).
Ejemplo de un repositorio en Bitbucket, en el directorio Connectors. Ten en cuenta que los directorios son los nombres de integración y, 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 conector de extracción de trabajos.
Nota: Cuando tires de un conector, verifica que la integración del conector también esté instalada.
Haz clic en la pestaña de prueba y configura los parámetros. Como usamos un repositorio y ya está configurado en la instancia de integración, dejaremos vacíos los parámetros URL del repositorio y Rama, y estableceremos los demás parámetros en los valores que necesitamos.
Ejecute el trabajo.
Consulta el resultado de la depuración para ver el registro de la operación. Si todo sale bien, el registro lo indicará.
- Ve a Google Security Operations SOAR -> Connectors y configura el conector.
Envío de recursos
En este ejemplo, enviaremos un playbook y un bloque al repositorio.
Identifica las guías que deseas enviar. Aquí, enviaremos un nuevo bloque llamado Failed Login y un manual actualizado llamado Malicious Activity.
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 prueba y configura los parámetros.
- Como ambos están en la misma carpeta (predeterminada), también puedes usar la lista de carpetas permitidas.
Ejecute el trabajo.
Consulta el resultado de la depuración para ver el registro de la operación. Si todo sale bien, el registro lo indicará.
Valida que el repositorio contenga las versiones más recientes de los playbooks.
Crea un repositorio nuevo
Para crear un repositorio nuevo, solo es importante incluir un archivo en el repositorio antes de configurarlo con GitSync. Puedes hacerlo rápidamente si incluyes un archivo README en la raíz del repositorio cuando lo crees.
Bitbucket

GitHub

Problemas conocidos y limitaciones
Después de configurar el repositorio por primera vez, se usa una estructura de directorios predefinida para garantizar que se sepa dónde se encuentra cada recurso. Si no se sigue la estructura de directorios con una confirmación personalizada o cambios en el repositorio, la integración no funcionará correctamente. Puedes encontrar el esquema de la estructura de directorios del repositorio al final de este documento.
Ten cuidado cuando uses esta integración con repositorios públicos. Los activos 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 determinar 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, cuando se envía una instancia de SOAR de Google Security Operations (trabajo de Push Environment), hay una opción para confirmar contraseñas. Esta opción le indica a GitSync que intente exportar todos los parámetros de contraseña de la configuración de integración. No establezcas este valor como verdadero si el repositorio es público, ya que se filtrarán todas las credenciales en línea.
Cuando se extrae 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á con un tiempo de espera agotado. Se recomienda instalar manualmente todas las integraciones comerciales de Google Security Operations Marketplace de antemano para evitar problemas, pero también es posible volver a ejecutar el trabajo si falla con un tiempo de espera.
Las integraciones comerciales y las personalizadas se manejan de manera diferente. La integración personalizada se enviará como la exportación zip completa 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 que se extraiga, 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 aparecerán en la tabla Configuración -> Ontología -> Estado de la ontología hasta que los eventos se hayan transferido realmente a Google Security Operations SOAR, ya que aún no se indexaron.
El repositorio local se guarda en /opt/siemplify/siemplify_server/GitSyncFiles/{RepoName}. Dado que la integración escribe objetos Git y no archivos, esta carpeta no representa el repositorio y se reemplaza con cualquier cambio que se realice cada vez que se ejecuta un trabajo. Se recomienda usar otro clon del repositorio, no el que creó GitSync.
Los instructivos con permisos restringidos (por ejemplo, permisos predeterminados establecidos en Puede ver) requieren una configuración de permisos específica en el sistema fuente para que la sincronización a través de GitSync se realice correctamente. Para obtener más información, consulta Cómo trabajar con permisos de la guía.
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* activos de SOAR entre sistemas. Esto puede generar resultados inesperados porque los objetos de la base de datos podrían no ser únicos.
Trabaja con permisos de guías
Cuando usas GitSync para sincronizar guías con permisos restringidos (por ejemplo, permisos predeterminados establecidos en Can View o cualquier otro parámetro de configuración no predeterminado), es posible que encuentres un error en el sistema de destino si no tiene autorización para modificar la guía. Esto sucede porque GitSync usa una clave de API interna del sistema con el rol de Administrator
SOC para realizar acciones. Para garantizar la sincronización correcta de las guías con permisos restringidos, otorga al rol de SOC Administrator
los permisos de Can Edit en el sistema fuente para esas guías.
Habilita GitSync para extraer guías con permisos restringidos
- En el sistema de origen, haz lo siguiente:
- Ve al playbook que deseas sincronizar con GitSync.
- Abre la configuración de permisos del manual.
- Asegúrate de que el rol de SOC de
Administrator
se agregue a la lista de entidades con permisos de Can Edit.
- Después de ajustar los permisos en el sistema fuente, ejecuta la acción Push Playbook en GitSync para actualizar el repositorio de Git con la guía y sus permisos.
- En el sistema de destino, ejecuta la acción Pull Playbook en GitSync.
Crea claves SSH para usar con GitSync
Primero, genera un par de claves. Cuando se te solicite una frase de contraseña, presiona Intro:
ssh-keygen -b 2048 -t rsa -f ./id_rsa
Se crearán dos archivos: id_rsa (clave privada) y id_rsa.pub (clave pública). Guarda la clave privada en una ubicación segura.
Establece la clave pública en el repositorio. Por ejemplo, en Bitbucket, ingresa la configuración del repositorio y haz clic en Access Keys. Haz clic en Add Key y pega el contenido de id_rsa.pub en el parámetro Key.
Antes de que se pueda agregar la clave privada a la configuración de la integración, se debe codificar en Base64.
Usa estos comandos para codificar el archivo:
- Linux:
cat id_rsa | base64 -w 0
- Windows:
Abre PowerShell donde se encuentra id_rsa y pega (esta 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
A continuación, se muestra la estructura de directorios esperada en el repositorio remoto.
* Este es el resultado del comando tree para un repositorio de ejemplo. Los comentarios aparecen en rojo.


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