Recopila registros de Jenkins

Se admite en los siguientes países:

Descripción general

Este analizador extrae información clave, como marcas de tiempo, IDs de usuario, IPs de origen, acciones y IDs de objetos de los registros con formato JSON y SYSLOG. Usa patrones de grok para hacer coincidir varios formatos de mensajes de registro, controlar las variaciones en la estructura y propagar un modelo de datos unificado (UDM) con los campos extraídos. El analizador también clasifica los eventos según la presencia de información del usuario o de la IP.

Antes de comenzar

  • Asegúrate de tener una instancia de Google SecOps.
  • Asegúrate de tener acceso con privilegios a IAM de Google Cloud.
  • Asegúrate de tener acceso con privilegios a Google Cloud Storage.
  • Asegúrate de tener acceso con privilegios a Jenkins.

Crea un bucket de Google Cloud Storage.

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

Crea una cuenta de servicio de Google Cloud

  1. Ve a IAM y administración > Cuentas de servicio.
  2. Cree una cuenta de servicio nueva Asóciale un nombre descriptivo (por ejemplo, jenkins-logs).
  3. Otorga a la cuenta de servicio el rol de Creador de objetos de almacenamiento en el bucket de GCS que creaste en el paso anterior.
  4. Crea una clave SSH para tu cuenta de servicio: Crea y borra claves de cuentas de servicio.
  5. Descarga un archivo de claves JSON para la cuenta de servicio.

Instala el complemento de Google Cloud Storage en Jenkins

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

Instala el complemento de credenciales de OAuth de Google en Jenkins

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

Configura Jenkins para que se autentique con Google Cloud

  1. Ve a Manage Jenkins > Credentials > System.

  2. Haz clic en añadir Agregar credenciales.

  3. Tipo: Selecciona Cuenta de servicio de Google desde una clave privada.

  4. Nombre del proyecto: Establece un nombre para las credenciales.

  5. Sube el archivo de claves JSON que obtuviste durante la creación de la cuenta de servicio de Google Cloud.

  6. Haz clic en Crear.

Configura los registros de Jenkins para subir Google SecOps

  1. En la configuración del trabajo de Jenkins, agrega Google Storage Build Log Upload en las acciones posteriores a la compilación, con los siguientes parámetros:
    • Credenciales de Google: Es el nombre de las credenciales de Google que creaste en el paso anterior.
    • Nombre del registro: Es el 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: Es el nombre del bucket al que deseas subir los registros. La cuenta de servicio que creaste debe poder acceder al bucket.
  2. Prueba la carga de registros.

Configura un feed en Google SecOps para transferir registros de Jenkins

  1. Ve a Configuración de SIEM > Feeds.
  2. Haz clic en Agregar nueva.
  3. En el campo Nombre del feed, ingresa un nombre para el feed (por ejemplo, Registros de Jenkins).
  4. Selecciona Google Cloud Storage como el Tipo de fuente.
  5. Selecciona Jenkins como el Tipo de registro.
  6. Haz clic en Obtener cuenta de servicio como la cuenta de servicio de Chronicle.
  7. Haz clic en Siguiente.
  8. Especifica valores para los siguientes parámetros de entrada:

    • URI del bucket de almacenamiento: Es la URL del bucket de almacenamiento de Google Cloud en formato gs://my-bucket/<value>.
    • El URI es un: selecciona Directorio que incluye subdirectorios.
    • Opciones de eliminación de fuentes: Selecciona la opción de eliminación según tus preferencias.
    • Espacio de nombres de recursos: Es el espacio de nombres de recursos.
    • Etiquetas de transferencia: Es la etiqueta que se aplica a los eventos de este feed.
  9. Haz clic en Siguiente.

  10. Revisa la configuración de tu nuevo feed en la pantalla Finalizar y, luego, haz clic en Enviar.

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 que se realizó. Se quitan los espacios en blanco iniciales.
datos principal.user.userid O 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 object y act. Si hay un /, se divide en object y act. Si hay un », se divide en object y act. De lo contrario, se considera act y, posiblemente, se analiza más.
msg2 metadata.description O security_result.action_details Si está presente, se asigna inicialmente a metadata.description. Si contiene "completed:", el valor posterior se extrae y se asigna a security_result.action_details.
objeto target.asset.product_object_id Se extrae de msg1. Representa el objeto en el que se actúa.
object_id target.resource.attribute.labels.value Se extrae de object si hay un / presente. Representa un identificador de objeto más específico. La clave está codificada como "Nombre del complemento".
src_ip principal.ip Se extraen de message o data. Representa la dirección IP de origen.
usuario principal.user.userid Se extraen de message o data. Representa al usuario asociado con el evento.
metadata.event_timestamp Se copia del campo @timestamp calculado.
metadata.event_type Se determina según la lógica del analizador. Establece el valor en USER_UNCATEGORIZED si está presente user, en STATUS_UNCATEGORIZED si está presente src_ip y en GENERIC_EVENT en caso contrario.
metadata.product_name Se codifica como Jenkins.
metadata.product_version Se codifica como Jenkins.
metadata.vendor_name Se codifica como JENKINS.
metadata.event_timestamp Se construye a partir de los campos year, month, day, time y ampm.

Cambios

2023-11-27

  • Sin embargo, el analizador se creó recientemente.