Raccogliere i log di Jenkins

Supportato in:

Panoramica

Questo parser estrae informazioni chiave come timestamp, ID utente, IP di origine, azioni e ID oggetto dai log in formato JSON e SYSLOG. Utilizza pattern grok per abbinare vari formati di messaggi di log, gestire le variazioni nella struttura e compilare un modello di dati unificato (UDM) con i campi estratti. Il parser classifica inoltre gli eventi in base alla presenza di informazioni sull'utente o sull'IP.

Prima di iniziare

  • Assicurati di avere un'istanza Google SecOps.
  • Assicurati di disporre dell'accesso con privilegi a Google Cloud IAM.
  • Assicurati di disporre dell'accesso con privilegi a Google Cloud Storage.
  • Assicurati di disporre dell'accesso privilegiato a Jenkins.

Crea un bucket Google Cloud Storage

  1. Vai a Cloud Storage.
  2. Crea un nuovo bucket. Scegli un nome univoco e una regione appropriata.
  3. Assicurati che il bucket disponga di controlli di accesso adeguati (ad esempio, solo gli account di servizio autorizzati possono scrivere al suo interno).

Creare un account di servizio Google Cloud

  1. Vai a IAM e amministrazione > Account di servizio.
  2. Crea un nuovo account di servizio. Assegna un nome descrittivo (ad esempio jenkins-logs).
  3. Concedi all'account di servizio il ruolo Creatore oggetti archiviazione nel bucket GCS creato nel passaggio precedente.
  4. Crea una chiave SSH per il tuo account di servizio: Crea ed elimina le chiavi dell'account di servizio.
  5. Scarica un file della chiave JSON per l'account di servizio.

Installa il plug-in Google Cloud Storage in Jenkins

  1. Vai a Gestisci Jenkins > Plug-in.
  2. Seleziona Componenti aggiuntivi disponibili.
  3. Cerca il plug-in Google Cloud Storage.
  4. Installa il plug-in e riavvia Jenkins, se necessario.

Installare il plug-in delle credenziali OAuth di Google in Jenkins

  1. Vai a Gestisci Jenkins > Plug-in.
  2. Seleziona Plug-in disponibili.
  3. Cerca il plug-in Credenziali OAuth di Google.
  4. Installa il plug-in e riavvia Jenkins, se necessario.

Configurare Jenkins per l'autenticazione con Google Cloud

  1. Vai a Gestisci Jenkins > Credenziali > Sistema.

  2. Fai clic su Aggiungi Aggiungi credenziali.

  3. Tipo: seleziona Account di servizio Google dalla chiave privata.

  4. Nome progetto: imposta un nome per le credenziali.

  5. Carica il file della chiave JSON ottenuto durante la creazione dell'account di servizio Google Cloud.

  6. Fai clic su Crea.

Configura i log di Jenkins per caricare Google SecOps

  1. Nella configurazione del job di Jenkins, aggiungi Caricamento dei log di compilazione di Google Storage nelle azioni post-compilazione, con i seguenti parametri:
    • Credenziali Google: il nome delle credenziali Google che hai creato nel passaggio precedente.
    • Nome log: il nome del file in cui archiviare il log di compilazione di Jenkins nel percorso di archiviazione specificato.
    • Posizione di archiviazione: il nome del bucket in cui vuoi caricare i log. Il bucket deve essere accessibile all'account di servizio che hai creato.
  2. Testa il caricamento dei log.

Configura un feed in Google SecOps per importare i log di Jenkins

  1. Vai a Impostazioni SIEM > Feed.
  2. Fai clic su Aggiungi nuovo.
  3. Nel campo Nome feed, inserisci un nome per il feed (ad esempio Log di Jenkins).
  4. Seleziona Google Cloud Storage come Tipo di origine.
  5. Seleziona Jenkins come Tipo di log.
  6. Fai clic su Ottieni account di servizio come Account di servizio Chronicle.
  7. Fai clic su Avanti.
  8. Specifica i valori per i seguenti parametri di input:

    • URI del bucket di archiviazione: URL del bucket di archiviazione Google Cloud in formato gs://my-bucket/<value>.
    • L'URI è una: seleziona Directory che include sottodirectory.
    • Opzioni di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze.
    • Spazio dei nomi degli asset: lo spazio dei nomi degli asset.
    • Etichette di importazione: l'etichetta applicata agli eventi di questo feed.
  9. Fai clic su Avanti.

  10. Rivedi la configurazione del nuovo feed nella schermata Concludi e poi fai clic su Invia.

Tabella di mappatura UDM

Campo log Mappatura UDM Logica
agire security_result.action_details Estratto dai campi msg1 o msg2. Rappresenta l'azione eseguita. Lo spazio vuoto iniziale viene rimosso.
dati principal.user.userid OPPURE principal.ip OPPURE metadata.description Se data corrisponde a un pattern di indirizzo IP, viene mappato a principal.ip. Se corrisponde a un pattern di nome utente, viene mappato a principal.user.userid. In caso contrario, viene mappato a metadata.description.
msg1 target.asset.product_object_id OPPURE security_result.action_details Utilizzato per estrarre object e act. Se è presente un /, viene suddiviso in object e act. Se è presente », viene suddiviso in object e act. In caso contrario, viene trattato come act e potenzialmente analizzato ulteriormente.
msg2 metadata.description OPPURE security_result.action_details Se presente, inizialmente mappato a metadata.description. Se contiene "completed:", il valore successivo viene estratto e mappato a security_result.action_details.
object target.asset.product_object_id Estratto da msg1. Rappresenta l'oggetto su cui viene eseguita l'azione.
object_id target.resource.attribute.labels.value Estratto da object se è presente un /. Rappresenta un identificatore di oggetti più specifico. La chiave è hardcoded come "Nome del plug-in".
src_ip principal.ip Estratto da message o data. Rappresenta l'indirizzo IP di origine.
user principal.user.userid Estratto da message o data. Rappresenta l'utente associato all'evento.
metadata.event_timestamp Copiato dal campo calcolato @timestamp.
metadata.event_type Determinato dalla logica del parser. Impostato su USER_UNCATEGORIZED se è presente user, STATUS_UNCATEGORIZED se è presente src_ip e GENERIC_EVENT in caso contrario.
metadata.product_name Hardcoded come Jenkins.
metadata.product_version Hardcoded come Jenkins.
metadata.vendor_name Hardcoded come JENKINS.
metadata.event_timestamp Costruito dai campi year, month, day, time e ampm.

Modifiche

2023-11-27

  • Parser appena creato.

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.