Recopilar registros de Jenkins

Disponible en:

Información general

Este analizador extrae información clave, como marcas de tiempo, IDs de usuario, IPs de origen, acciones e IDs de objeto, de registros con formato JSON y SYSLOG. Usa patrones grok para que coincidan con varios formatos de mensajes de registro, gestiona las variaciones en la estructura y rellena un modelo de datos unificado (UDM) con los campos extraídos. El analizador también clasifica los eventos en función de si incluyen información de usuario o de IP.

Antes de empezar

Asegúrate de que cumples los siguientes requisitos previos:

  • Instancia de Google SecOps.
  • Acceso privilegiado a Google Cloud IAM.
  • Acceso privilegiado a Google Cloud Storage.
  • Acceso privilegiado a Jenkins.

Crea un Google Cloud segmento de almacenamiento

  1. Ve a Cloud Storage.
  2. Crea un segmento. Elige un nombre único y la región adecuada.
  3. Asegúrate de que el segmento tenga los controles de acceso adecuados (por ejemplo, que solo las cuentas de servicio autorizadas puedan escribir en él).

Crea una Google Cloud cuenta de servicio

  1. Ve a IAM y administración > Cuentas de servicio.
  2. Crear una nueva cuenta de servicio. Asigna un nombre descriptivo (por ejemplo, registros-jenkins).
  3. Asigna a la cuenta de servicio el rol Creador de objetos de Storage en el segmento de GCS que has creado en el paso anterior.
  4. Crea una clave SSH para tu cuenta de servicio: Crear y eliminar claves de cuenta de servicio.
  5. Descarga un archivo de clave JSON de la cuenta de servicio.

Instalar el complemento Google Cloud Storage en Jenkins

  1. Ve a Gestionar Jenkins > Complementos.
  2. Selecciona Complementos disponibles.
  3. Busca el complemento Google Cloud Storage.
  4. Instala el complemento y reinicia Jenkins si es necesario.

Instalar el complemento de credenciales de OAuth de Google en Jenkins

  1. Ve a Gestionar Jenkins > Complementos.
  2. Selecciona Complementos disponibles.
  3. Busca el complemento Google OAuth Credentials.
  4. Instala el complemento y reinicia Jenkins si es necesario.

Configurar Jenkins para autenticar con Google Cloud

  1. Ve a Manage Jenkins > Credentials > System.

  2. Haz clic en Añadir Añadir credenciales.

  3. Tipo: selecciona Cuenta de servicio de Google a partir de una clave privada.

  4. Nombre del proyecto: asigna un nombre a las credenciales.

  5. Sube el archivo de clave JSON que has obtenido durante la Google Cloud creación de la cuenta de servicio.

  6. Haz clic en Crear.

Configurar los registros de Jenkins para subirlos a Google SecOps

  1. En la configuración del trabajo de Jenkins, añade Google Storage Build Log Upload (Subida de registro de compilación de Google Storage) en las acciones posteriores a la compilación con los siguientes parámetros:
    • Credenciales de Google: el nombre de las credenciales de Google que has creado en el paso anterior.
    • Nombre del registro: nombre del archivo en el que se almacenará el registro de compilación de Jenkins, en la ruta de almacenamiento especificada.
    • Ubicación de almacenamiento: el nombre del segmento al que quieres subir los registros. La cuenta de servicio que has creado debe tener acceso al segmento.
  2. Prueba la subida de registros.

Configurar feeds

Para configurar un feed, sigue estos pasos:

  1. Ve a Configuración de SIEM > Feeds.
  2. Haz clic en Añadir feed.
  3. En la página siguiente, haga clic en Configurar un solo feed.
  4. En el campo Nombre del feed, escribe un nombre para el feed (por ejemplo, Registros de Jenkins).
  5. Selecciona Google Cloud Storage V2 como Tipo de origen.
  6. Seleccione Jenkins como Tipo de registro.
  7. Haz clic en Obtener cuenta de servicio en Cuenta de servicio de Chronicle.
  8. Especifique los valores de los siguientes parámetros de entrada:

    • URI de segmento de almacenamiento: URL de segmento de almacenamiento en formato gs://my-bucket/<value>/. Google Cloud Esta URL debe terminar con una barra inclinada (/).
    • Opciones de eliminación de la fuente: selecciona la opción de eliminación que prefieras.
  9. Haga clic en Crear feed.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
act security_result.action_details Se extrae de los campos msg1 o msg2. Representa la acción realizada. Se eliminan los espacios iniciales.
datos principal.user.userid, principal.ip o metadata.description Si data coincide con un patrón de dirección IP, se asigna a principal.ip. Si coincide con un patrón de nombre de usuario, se asigna a principal.user.userid. De lo contrario, se asigna a metadata.description.
msg1 target.asset.product_object_id O security_result.action_details Se usa para extraer objeto y acción. Si hay un /, se divide en objeto y acción. Si hay un », se divide en objeto y acción. De lo contrario, se trata como acción y se analiza más a fondo.
msg2 metadata.description O security_result.action_details Si está presente, se asigna inicialmente a metadata.description. Si contiene "completed:", se extrae el valor posterior y se asigna a security_result.action_details.
object target.asset.product_object_id Extraído de msg1. Representa el objeto sobre el que se ha actuado.
object_id target.resource.attribute.labels.value Se extrae de object si hay un /. Representa un identificador de objeto más específico. La clave se codifica como "Plugin Name".
src_ip principal.ip Extraído de un mensaje o datos. Representa la dirección IP de origen.
usuario principal.user.userid Extraído de un mensaje o datos. Representa al usuario asociado al evento.
metadata.event_timestamp Copiado del campo calculado @timestamp.
metadata.event_type Determinado por la lógica del analizador. Se asigna el valor USER_UNCATEGORIZED si está presente user, STATUS_UNCATEGORIZED si está presente src_ip y GENERIC_EVENT en los demás casos.
metadata.product_name Codificado como Jenkins.
metadata.product_version Codificado como Jenkins.
metadata.vendor_name Codificado como JENKINS.
metadata.event_timestamp Se construye a partir de los campos año, mes, día, hora y ampm.

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