Collecter les journaux Jenkins

Compatible avec :

Cet analyseur extrait des informations clés telles que les codes temporels, les ID utilisateur, les adresses IP sources, les actions et les ID d'objet des journaux au format JSON et SYSLOG. Il utilise des modèles grok pour correspondre à différents formats de messages de journal, en gérant les variations de structure, et remplit un modèle de données unifié (UDM) avec les champs extraits. L'analyseur catégorise également les événements en fonction de la présence d'informations sur l'utilisateur ou l'adresse IP.

Avant de commencer

Assurez-vous de remplir les conditions préalables suivantes :

  • Instance Google SecOps.
  • Accès privilégié à Google Cloud IAM.
  • Accès privilégié à Google Cloud Storage.
  • Accès privilégié à Jenkins.

Créer un bucket Google Cloud Cloud Storage

  1. Accédez à Cloud Storage.
  2. Créez un bucket. Choisissez un nom unique et une région appropriée.
  3. Assurez-vous que le bucket dispose des contrôles d'accès appropriés (par exemple, seuls les comptes de service autorisés peuvent y écrire).

Créer un compte de service Google Cloud

  1. Accédez à IAM et administration > Comptes de service.
  2. Créez un compte de service. Attribuez-lui un nom descriptif (par exemple, jenkins-logs).
  3. Attribuez au compte de service le rôle Créateur d'objets de l'espace de stockage sur le bucket GCS que vous avez créé à l'étape précédente.
  4. Créez une clé SSH pour votre compte de service : Créer et supprimer des clés de compte de service.
  5. Téléchargez un fichier de clé JSON pour le compte de service.

Installer le plug-in Google Cloud Storage dans Jenkins

  1. Accédez à Manage Jenkins > Plugins (Gérer Jenkins > Plug-ins).
  2. Sélectionnez Plug-ins disponibles.
  3. Recherchez le plug-in Google Cloud Storage.
  4. Installez le plug-in et redémarrez Jenkins si nécessaire.

Installer le plug-in Google OAuth Credentials dans Jenkins

  1. Accédez à Manage Jenkins > Plugins (Gérer Jenkins > Plug-ins).
  2. Sélectionnez Plug-ins disponibles.
  3. Recherchez le plug-in Google OAuth Credentials.
  4. Installez le plug-in et redémarrez Jenkins si nécessaire.

Configurer Jenkins pour s'authentifier auprès de Google Cloud

  1. Accédez à Manage Jenkins > Credentials > System (Gérer Jenkins > Identifiants > Système).

  2. Cliquez sur add Ajouter des identifiants.

  3. Kind (Type) : sélectionnez Google Service Account from private key (Compte de service Google à partir d'une clé privée).

  4. Nom du projet : définissez un nom pour les identifiants.

  5. Importez le fichier de clé JSON que vous avez obtenu lors de la création du compte de service Google Cloud .

  6. Cliquez sur Créer.

Configurer les journaux Jenkins pour importer Google SecOps

  1. Dans la configuration du job Jenkins, ajoutez Google Storage Build Log Upload (Importation du journal de compilation Google Storage) dans les actions post-compilation, avec les paramètres suivants :
    • Identifiants Google : nom des identifiants Google que vous avez créés à l'étape précédente.
    • Nom du journal : nom du fichier dans lequel stocker le journal de compilation Jenkins, sous le chemin de stockage spécifié.
    • Emplacement de stockage : nom du bucket dans lequel vous souhaitez importer vos journaux. Le bucket doit être accessible au compte de service que vous avez créé.
  2. Testez l'importation des journaux.

Configurer des flux

Pour configurer un flux, procédez comme suit :

  1. Accédez à Paramètres > Gestion des données > Flux. Si vous utilisez une plate-forme SIEM uniquement, accédez à Paramètres > Flux.
  2. Cliquez sur Ajouter un flux d'actualités.
  3. Sur la page suivante, cliquez sur Configurer un seul flux.
  4. Dans le champ Nom du flux, saisissez un nom pour le flux, par exemple Journaux Jenkins.
  5. Sélectionnez Google Cloud Storage V2 comme Type de source.
  6. Sélectionnez Jenkins comme type de journal.
  7. Cliquez sur Obtenir un compte de service pour le compte de service Chronicle.
  8. Spécifiez les valeurs des paramètres d'entrée suivants :

    • URI du bucket de stockage : Google Cloud URL du bucket de stockage au format gs://my-bucket/<value>/. Cette URL doit se terminer par une barre oblique (/).
    • Options de suppression de la source : sélectionnez l'option de suppression de votre choix.
  9. Cliquez sur Créer un flux.

Table de mappage UDM

Champ du journal Mappage UDM Logique
act security_result.action_details Extrait des champs msg1 ou msg2. Représente l'action effectuée. Les espaces blancs de début sont supprimés.
données principal.user.userid OU principal.ip OU metadata.description Si les données correspondent à un modèle d'adresse IP, elles sont mappées à principal.ip. S'il correspond à un modèle de nom d'utilisateur, il est mappé à principal.user.userid. Sinon, il est mappé sur metadata.description.
msg1 target.asset.product_object_id OU security_result.action_details Utilisé pour extraire object et act. Si un / est présent, il est divisé en object et act. Si » est présent, il est divisé en object et act. Sinon, il est traité comme act et potentiellement analysé plus en détail.
msg2 metadata.description OU security_result.action_details Si elle est présente, elle est initialement mappée à metadata.description. S'il contient "completed:", la valeur qui suit est extraite et mappée à security_result.action_details.
object target.asset.product_object_id Extrait de msg1. Représente l'objet sur lequel l'action est effectuée.
object_id target.resource.attribute.labels.value Extrait de l'objet si un / est présent. Représente un identifiant d'objet plus spécifique. La clé est codée en dur en tant que "Plugin Name".
src_ip principal.ip Extrait de message ou data. Représente l'adresse IP source.
Utilisateur principal.user.userid Extrait de message ou data. Représente l'utilisateur associé à l'événement.
metadata.event_timestamp Copié à partir du champ @timestamp calculé.
metadata.event_type Déterminé par la logique de l'analyseur. Définissez sur USER_UNCATEGORIZED si user est présent, sur STATUS_UNCATEGORIZED si src_ip est présent, et sur GENERIC_EVENT sinon.
metadata.product_name Codé en dur en tant que Jenkins.
metadata.product_version Codé en dur en tant que Jenkins.
metadata.vendor_name Codé en dur en tant que JENKINS.
metadata.event_timestamp Construit à partir des champs year, month, day, time et ampm.

Journal des modifications

Afficher le journal des modifications de cet analyseur

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.