Recopila registros de Jenkins
Descripción general
Este analizador extrae información clave, como marcas de tiempo, IDs de usuario, IPs de origen, acciones y IDs de objeto de los registros con formato JSON y SYSLOG. Utiliza patrones de Grok para hacer coincidir varios formatos de mensajes de registro, controlar las variaciones en la estructura y completar un modelo de datos unificado (UDM) con los campos extraídos. El analizador también categoriza los eventos según la presencia de información del usuario o de la IP.
Antes de comenzar
Asegúrate de cumplir con los siguientes requisitos previos:
- Instancia de Google SecOps.
- Acceso privilegiado a Google Cloud IAM.
- Acceso privilegiado a Google Cloud Storage.
- Acceso con privilegios a Jenkins
Crea un Google Cloud bucket de Storage
- Ve a Cloud Storage.
- Crea un bucket nuevo. Elige un nombre único y una región adecuada.
- Asegúrate de que el bucket tenga los controles de acceso adecuados (por ejemplo, solo las cuentas de servicio autorizadas pueden escribir en él).
Crea una cuenta de servicio Google Cloud
- Ve a IAM y administración > Cuentas de servicio.
- Cree una cuenta de servicio nueva Asigna un nombre descriptivo (por ejemplo, jenkins-logs).
- 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.
- Crea una clave SSH para tu cuenta de servicio: Crea y borra claves de cuentas de servicio.
Descarga un archivo de claves JSON para la cuenta de servicio.
Instala el complemento Google Cloud Storage en Jenkins
- Ve a Administrar Jenkins > Complementos.
- Selecciona Plugins disponibles.
- Busca el complemento Google Cloud Storage.
- Instala el complemento y reinicia Jenkins si es necesario.
Instala el complemento de credenciales de OAuth de Google en Jenkins
- Ve a Administrar Jenkins > Complementos.
- Selecciona Complementos disponibles.
- Busca el complemento Google OAuth Credentials.
- Instala el complemento y reinicia Jenkins si es necesario.
Configura Jenkins para que se autentique con Google Cloud
Ve a Administrar Jenkins > Credenciales > Sistema.
Haz clic en add Agregar credenciales.
Tipo: Selecciona Cuenta de servicio de Google desde una clave privada.
Nombre del proyecto: Establece un nombre para las credenciales.
Sube el archivo de claves JSON que obtuviste durante la Google Cloud creación de la cuenta de servicio.
Haz clic en Crear.
Configura los registros de Jenkins para subir Google SecOps
- 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 de 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 en el que deseas subir tus registros. El bucket debe ser accesible para la cuenta de servicio que creaste.
- Prueba la carga de registros.
Configura feeds
Existen dos puntos de entrada diferentes para configurar feeds en la plataforma de Google SecOps:
- Configuración de SIEM > Feeds
- Centro de contenido > Paquetes de contenido
Configura feeds en Configuración del SIEM > Feeds
Para configurar un feed, sigue estos pasos:
- Ve a Configuración del SIEM > Feeds.
- Haz clic en Agregar feed nuevo.
- En la siguiente página, haz clic en Configurar un solo feed.
- En el campo Nombre del feed, ingresa un nombre para el feed, por ejemplo, Registros de Jenkins.
- Selecciona Google Cloud Storage como el Tipo de fuente.
- Selecciona Jenkins como el Tipo de registro.
- Haz clic en Obtener cuenta de servicio como la Cuenta de servicio de Chronicle.
- Haz clic en Siguiente.
Especifica valores para los siguientes parámetros de entrada:
- URI del bucket de almacenamiento:URL del bucket de almacenamiento en formato
gs://my-bucket/<value>
Google Cloud - URI is a: Selecciona Directory which includes subdirectories.
- Opciones de borrado de la fuente: Selecciona la opción de borrado según tu preferencia.
- URI del bucket de almacenamiento:URL del bucket de almacenamiento en formato
Haz clic en Siguiente.
Revisa la nueva configuración del feed en la pantalla Finalizar y, luego, haz clic en Enviar.
Configura feeds desde el Centro de contenido
Especifica valores para los siguientes campos:
- URI del bucket de almacenamiento:URL del bucket de almacenamiento en formato
gs://my-bucket/<value>
Google Cloud - URI is a: Selecciona Directory which includes subdirectories.
- Opciones de borrado de la fuente: Selecciona la opción de borrado según tu preferencia.
Opciones avanzadas
- Nombre del feed: Es un valor completado previamente que identifica el feed.
- Tipo de fuente: Es el método que se usa para recopilar registros en Google SecOps.
- Espacio de nombres del activo: Es el espacio de nombres asociado con el feed.
- Etiquetas de transferencia: Son las etiquetas que se aplican a todos los eventos de este 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 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 trata como 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:", se extrae el valor posterior y se asigna a security_result.action_details. |
objeto | target.asset.product_object_id | Se extrajo de msg1. Representa el objeto sobre el que se actuó. |
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 "Plugin Name". |
src_ip | principal.ip | Se extrae de message o data. Representa la dirección IP de origen. |
usuario | principal.user.userid | Se extrae 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. Se establece en USER_UNCATEGORIZED si está presente user, en STATUS_UNCATEGORIZED si está presente src_ip y en GENERIC_EVENT en los demás casos. | |
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. |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.