Jenkins-Logs erfassen

Unterstützt in:

Übersicht

Dieser Parser extrahiert wichtige Informationen wie Zeitstempel, Nutzer-IDs, Quell-IPs, Aktionen und Objekt-IDs aus Logs im JSON- und SYSLOG-Format. Dabei werden Grok-Muster verwendet, um verschiedene Logmeldungsformate abzugleichen und Abweichungen in der Struktur zu berücksichtigen. Außerdem wird ein einheitliches Datenmodell (Unified Data Model, UDM) mit den extrahierten Feldern gefüllt. Der Parser kategorisiert Ereignisse auch anhand von Nutzer- oder IP-Informationen.

Hinweise

Prüfen Sie, ob die folgenden Voraussetzungen erfüllt sind:

  • Google SecOps-Instanz.
  • Privilegierter Zugriff auf Google Cloud IAM.
  • Privilegierter Zugriff auf Google Cloud Storage.
  • Privilegierter Zugriff auf Jenkins.

Google Cloud Storage-Bucket erstellen

  1. Cloud Storage aufrufen
  2. Erstellen Sie einen neuen Bucket. Wählen Sie einen eindeutigen Namen und eine geeignete Region aus.
  3. Achten Sie darauf, dass der Bucket über die richtigen Zugriffssteuerungen verfügt (z. B. dass nur autorisierte Dienstkonten in den Bucket schreiben können).

Google Cloud Dienstkonto erstellen

  1. Rufen Sie IAM und Verwaltung > Dienstkonten auf.
  2. Erstellen Sie ein neues Dienstkonto. Geben Sie ihm einen beschreibenden Namen, z. B. jenkins-logs.
  3. Weisen Sie dem Dienstkonto die Rolle Storage-Objekt-Ersteller für den GCS-Bucket zu, den Sie im vorherigen Schritt erstellt haben.
  4. Erstellen Sie einen SSH-Schlüssel für Ihr Dienstkonto: Dienstkontoschlüssel erstellen und löschen.
  5. Laden Sie eine JSON-Schlüsseldatei für das Dienstkonto herunter.

Google Cloud Storage-Plug-in in Jenkins installieren

  1. Gehen Sie zu Jenkins verwalten > Plug-ins.
  2. Wählen Sie Verfügbare Plug-ins aus.
  3. Suchen Sie nach dem Google Cloud Storage-Plug-in.
  4. Installieren Sie das Plug-in und starten Sie Jenkins bei Bedarf neu.

Google OAuth-Anmeldedaten-Plug-in in Jenkins installieren

  1. Gehen Sie zu Jenkins verwalten > Plug-ins.
  2. Wählen Sie Verfügbare Plug-ins aus.
  3. Suchen Sie nach dem Plug-in Google OAuth Credentials.
  4. Installieren Sie das Plug-in und starten Sie Jenkins bei Bedarf neu.

Jenkins für die Authentifizierung bei Google Cloudkonfigurieren

  1. Rufen Sie Jenkins verwalten > Anmeldedaten > System auf.

  2. Klicken Sie auf add Anmeldedaten hinzufügen.

  3. Art: Wählen Sie Google-Dienstkonto von privatem Schlüssel aus.

  4. Projektname: Legen Sie einen Namen für die Anmeldedaten fest.

  5. Laden Sie die JSON-Schlüsseldatei hoch, die Sie beim Erstellen des Dienstkontos erhalten haben. Google Cloud

  6. Klicken Sie auf Erstellen.

Jenkins-Logs für den Upload in Google SecOps konfigurieren

  1. Fügen Sie in der Jenkins-Jobkonfiguration Google Storage Build Log Upload in den Post-Build-Aktionen mit den folgenden Parametern hinzu:
    • Google Credentials (Google-Anmeldedaten): Der Name der Google-Anmeldedaten, die Sie im vorherigen Schritt erstellt haben.
    • Log Name (Protokollname): Der Name der Datei, in der das Jenkins-Build-Protokoll unter dem angegebenen Speicherpfad gespeichert werden soll.
    • Speicherort: Der Name des Buckets, in den Sie Ihre Logs hochladen möchten. Der Bucket muss für das von Ihnen erstellte Dienstkonto zugänglich sein.
  2. Testen Sie den Protokoll-Upload.

Feeds einrichten

Es gibt zwei verschiedene Einstiegspunkte zum Einrichten von Feeds in der Google SecOps-Plattform:

  • SIEM-Einstellungen > Feeds
  • Content Hub> Content-Pakete

Feeds über „SIEM-Einstellungen“ > „Feeds“ einrichten

So konfigurieren Sie einen Feed:

  1. Rufen Sie die SIEM-Einstellungen > Feeds auf.
  2. Klicken Sie auf Neuen Feed hinzufügen.
  3. Klicken Sie auf der nächsten Seite auf Einen einzelnen Feed konfigurieren.
  4. Geben Sie im Feld Feed name (Feedname) einen Namen für den Feed ein, z. B. Jenkins Logs (Jenkins-Protokolle).
  5. Wählen Sie Google Cloud Storage als Quelltyp aus.
  6. Wählen Sie Jenkins als Logtyp aus.
  7. Klicken Sie auf Dienstkonto abrufen als Chronicle-Dienstkonto.
  8. Klicken Sie auf Weiter.
  9. Geben Sie Werte für die folgenden Eingabeparameter an:

    • Storage-Bucket-URI: Google Cloud Storage-Bucket-URL im Format gs://my-bucket/<value>.
    • URI ist ein: Wählen Sie Verzeichnis mit Unterverzeichnissen aus.
    • Optionen zum Löschen von Quellen: Wählen Sie die gewünschte Option aus.
  10. Klicken Sie auf Weiter.

  11. Prüfen Sie die neue Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.

Feeds über den Content Hub einrichten

Geben Sie Werte für die folgenden Felder an:

  • Storage-Bucket-URI: Google Cloud Storage-Bucket-URL im Format gs://my-bucket/<value>.
  • URI ist ein: Wählen Sie Verzeichnis mit Unterverzeichnissen aus.
  • Optionen zum Löschen von Quellen: Wählen Sie die gewünschte Option aus.

Erweiterte Optionen

  • Feedname: Ein vorausgefüllter Wert, der den Feed identifiziert.
  • Quelltyp: Methode, die zum Erfassen von Logs in Google SecOps verwendet wird.
  • Asset-Namespace: Der Namespace, der dem Feed zugeordnet ist.
  • Aufnahmelabels: Labels, die auf alle Ereignisse aus diesem Feed angewendet werden.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
act security_result.action_details Aus den Feldern msg1 oder msg2 extrahiert. Stellt die ausgeführte Aktion dar. Vorangehende Leerzeichen werden entfernt.
Daten principal.user.userid ODER principal.ip ODER metadata.description Wenn data mit einem IP-Adressmuster übereinstimmt, wird es principal.ip zugeordnet. Wenn sie mit einem Nutzernamenmuster übereinstimmt, wird sie principal.user.userid zugeordnet. Andernfalls wird sie metadata.description zugeordnet.
msg1 target.asset.product_object_id ODER security_result.action_details Wird verwendet, um object und act zu extrahieren. Wenn / vorhanden ist, wird es in object und act aufgeteilt. Wenn » vorhanden ist, wird es in object und act aufgeteilt. Andernfalls wird es als act behandelt und möglicherweise weiter aufgeschlüsselt.
msg2 metadata.description ODER security_result.action_details Falls vorhanden, wird sie anfangs metadata.description zugeordnet. Wenn sie „completed:“ enthält, wird der Wert danach extrahiert und security_result.action_details zugeordnet.
Objekt target.asset.product_object_id Aus msg1 extrahiert. Stellt das Objekt dar, auf das sich die Aktion bezieht.
object_id target.resource.attribute.labels.value Wird aus object extrahiert, wenn ein / vorhanden ist. Stellt eine genauere Objektkennung dar. Der Schlüssel ist als „Plugin Name“ hartcodiert.
src_ip principal.ip Aus Nachricht oder Daten extrahiert. Stellt die Quell-IP-Adresse dar.
Nutzer principal.user.userid Aus Nachricht oder Daten extrahiert. Der Nutzer, der mit dem Ereignis verknüpft ist.
metadata.event_timestamp Kopiert aus dem berechneten Feld @timestamp.
metadata.event_type Wird durch die Parserlogik bestimmt. Auf USER_UNCATEGORIZED setzen, wenn user vorhanden ist, auf STATUS_UNCATEGORIZED, wenn src_ip vorhanden ist, und andernfalls auf GENERIC_EVENT.
metadata.product_name Fest codiert als Jenkins.
metadata.product_version Fest codiert als Jenkins.
metadata.vendor_name Fest codiert als JENKINS.
metadata.event_timestamp Wird aus den Feldern year, month, day, time und ampm erstellt.

Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten