Raccogliere i log Jenkins

Supportato in:

Panoramica

Questo parser estrae informazioni chiave come timestamp, ID utente, IP di origine, azioni e ID oggetto dai log formattati in JSON e SYSLOG. Utilizza i pattern grok per trovare corrispondenze con vari formati di messaggi di log, gestendo le variazioni nella struttura e compilando un modello UDM (Unified Data Model) con i campi estratti. Il parser classifica anche gli eventi in base alla presenza di informazioni sull'utente o sull'IP.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Istanza Google SecOps.
  • Accesso privilegiato a Google Cloud IAM.
  • Accesso privilegiato a Google Cloud Storage.
  • Accesso con privilegi a Jenkins.

Crea un Google Cloud bucket di archiviazione

  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 dell'accesso appropriati (ad esempio, solo gli account di servizio autorizzati possono scriverci).

Crea un Google Cloud service account

  1. Vai a IAM e amministrazione > Service Accounts.
  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 Storage nel bucket GCS creato nel passaggio precedente.
  4. Crea una chiave SSH per il account di servizio: Crea ed elimina le account di servizio account.
  5. Scarica un file della chiave JSON per il account di servizio.

Installa Google Cloud il plug-in Storage in Jenkins

  1. Vai a Manage Jenkins (Gestisci Jenkins) > Plugins (Plug-in).
  2. Seleziona Plug-in 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 Manage Jenkins (Gestisci Jenkins) > Plugins (Plug-in).
  2. Seleziona Plug-in disponibili.
  3. Cerca il plug-in Google OAuth Credentials.
  4. Installa il plug-in e riavvia Jenkins, se necessario.

Configura Jenkins per l'autenticazione con Google Cloud

  1. Vai a Manage Jenkins > Credentials > System.

  2. Fai clic su aggiungi Aggiungi credenziali.

  3. Kind: seleziona Google Service Account from private key.

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

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

  6. Fai clic su Crea.

Configura i log di Jenkins per il caricamento di Google SecOps

  1. Nella configurazione del job Jenkins, aggiungi Google Storage Build Log Upload nelle azioni post-build, 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 build 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 del log.

Configurare i feed

Esistono due diversi punti di accesso per configurare i feed nella piattaforma Google SecOps:

  • Impostazioni SIEM > Feed
  • Hub dei contenuti > Pacchetti di contenuti

Configura i feed da Impostazioni SIEM > Feed

Per configurare un feed:

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

    • URI bucket di archiviazione: Google Cloud URL del bucket di archiviazione nel formato gs://my-bucket/<value>.
    • L'URI è un: seleziona Directory che include sottodirectory.
    • Opzioni di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze.
  10. Fai clic su Avanti.

  11. Controlla la nuova configurazione del feed nella schermata Finalizza e poi fai clic su Invia.

Configurare i feed dall'hub dei contenuti

Specifica i valori per i seguenti campi:

  • URI bucket di archiviazione: Google Cloud URL del bucket di archiviazione nel formato gs://my-bucket/<value>.
  • L'URI è un: seleziona Directory che include sottodirectory.
  • Opzioni di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze.

Opzioni avanzate

  • Nome feed: un valore precompilato che identifica il feed.
  • Tipo di origine: metodo utilizzato per raccogliere i log in Google SecOps.
  • Spazio dei nomi dell'asset: lo spazio dei nomi associato al feed.
  • Etichette di importazione: etichette applicate a tutti gli eventi di questo feed.

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
act security_result.action_details Estratto dai campi msg1 o msg2. Rappresenta l'azione eseguita. Lo spazio vuoto iniziale viene rimosso.
dati principal.user.userid O principal.ip O metadata.description Se data corrisponde a un pattern di indirizzo IP, viene mappato a principal.ip. Se corrisponde a un pattern del nome utente, viene mappato a principal.user.userid. In caso contrario, viene mappato su metadata.description.
msg1 target.asset.product_object_id O security_result.action_details Utilizzato per estrarre oggetto e azione. Se è presente un /, viene suddiviso in oggetto e azione. Se è presente », viene suddiviso in oggetto e azione. In caso contrario, viene trattato come azione e potenzialmente analizzato ulteriormente.
msg2 metadata.description O security_result.action_details Se presente, inizialmente mappato su metadata.description. Se contiene "completed:", il valore successivo viene estratto e mappato a security_result.action_details.
oggetto target.asset.product_object_id Estratto da msg1. Rappresenta l'oggetto su cui è stata eseguita l'azione.
object_id target.resource.attribute.labels.value Estratto dall'oggetto se è presente un /. Rappresenta un identificatore dell'oggetto più specifico. La chiave è codificata come "Plugin Name".
src_ip principal.ip Estratto dal messaggio o dai dati. Rappresenta l'indirizzo IP di origine.
user principal.user.userid Estratto dal messaggio o dai dati. Rappresenta l'utente associato all'evento.
metadata.event_timestamp Copiato dal campo calcolato @timestamp.
metadata.event_type Determinato dalla logica del parser. Imposta USER_UNCATEGORIZED se è presente user, STATUS_UNCATEGORIZED se è presente src_ip e GENERIC_EVENT altrimenti.
metadata.product_name Codificato come Jenkins.
metadata.product_version Codificato come Jenkins.
metadata.vendor_name Codificato come JENKINS.
metadata.event_timestamp Costruito a partire dai campi anno, mese, giorno, ora e am/pm.

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