Collecter les journaux CA ACF2

Compatible avec :

Ce document explique comment ingérer des journaux CA ACF2 dans Google Security Operations à l'aide de l'agent Bindplane.

Broadcom ACF2 (Access Control Facility 2) pour z/OS est un produit de sécurité pour mainframe qui fournit un contrôle des accès, une authentification et un audit pour les systèmes IBM z/OS. ACF2 consigne les événements de sécurité dans les enregistrements IBM System Management Facility (SMF) (type 230 par défaut), y compris les tentatives d'authentification, les violations d'accès aux ensembles de données, les événements d'accès aux ressources, la journalisation des commandes TSO et les modifications de la base de données. Ces enregistrements SMF doivent être transférés à Chronicle à l'aide d'un agent tiers tel que BMC AMI Defender for z/OS.

Avant de commencer

Assurez-vous de remplir les conditions suivantes :

  • Une instance Google SecOps
  • Windows Server 2016 ou version ultérieure, ou hôte Linux avec systemd
  • Connectivité réseau entre l'agent Bindplane et l'agent BMC AMI Defender for z/OS
  • Si vous exécutez l'agent derrière un proxy, assurez-vous que les ports de pare-feu sont ouverts conformément aux exigences de l'agent Bindplane.
  • BMC AMI Defender for z/OS installé et en cours d'exécution sur la LPAR z/OS où ACF2 est actif
  • Accès permettant de modifier les fichiers de paramètres BMC AMI Defender dans l'ensemble de données amihlq.CZAGENT.PARM
  • Autorisation de démarrer ou de modifier la tâche démarrée CZAGENT sur z/OS

Obtenir le fichier d'authentification d'ingestion Google SecOps

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres du SIEM > Agents de collecte.
  3. Téléchargez le fichier d'authentification d'ingestion. Enregistrez le fichier de manière sécurisée sur le système sur lequel Bindplane doit être installé.

Obtenir l'ID client Google SecOps

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres SIEM> Profil.
  3. Copiez et enregistrez le numéro client de la section Informations sur l'organisation.

Installer l'agent Bindplane

Installez l'agent Bindplane sur votre système d'exploitation Windows ou Linux en suivant les instructions ci-dessous.

  • Installation de fenêtres

    1. Ouvrez l'invite de commandes ou PowerShell en tant qu'administrateur.
    2. Exécutez la commande suivante :

      msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
      
    3. Attendez la fin de l'installation.

    4. Vérifiez l'installation en exécutant la commande suivante :

      sc query observiq-otel-collector
      

      Le service doit être indiqué comme RUNNING (EN COURS D'EXÉCUTION).

  • Installation de Linux

    1. Ouvrez un terminal avec les droits root ou sudo.
    2. Exécutez la commande suivante :

      sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
      
    3. Attendez la fin de l'installation.

    4. Vérifiez l'installation en exécutant la commande suivante :

      sudo systemctl status observiq-otel-collector
      

      Le service doit être indiqué comme actif (en cours d'exécution).

Autres ressources d'installation

Pour obtenir d'autres options d'installation et de dépannage, consultez le guide d'installation de l'agent Bindplane.

Configurer l'agent Bindplane pour ingérer les journaux syslog et les envoyer à Google SecOps

Localiser le fichier de configuration

  • Linux :

    sudo nano /etc/bindplane-agent/config.yaml
    
  • Windows :

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Modifiez le fichier de configuration

  1. Remplacez l'intégralité du contenu de config.yaml par la configuration suivante :

    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/acf2_logs:
        compression: gzip
        creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
        customer_id: 'YOUR_CUSTOMER_ID'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: CA_ACF2
        raw_log_field: body
        ingestion_labels:
          env: production
          source: acf2
    
    service:
      pipelines:
        logs/acf2_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/acf2_logs
    
  2. Remplacez les espaces réservés suivants :

    • Configuration du récepteur :

      • listen_address : définissez sur 0.0.0.0:514 pour écouter sur toutes les interfaces sur le port UDP 514.

        • Pour les systèmes Linux exécutés en tant que non-root, utilisez le port 1514 ou un port supérieur.
        • Faites correspondre ce port à la configuration de l'instruction BMC AMI Defender SERVER.
    • Configuration de l'exportateur :

      • creds_file_path : chemin d'accès complet au fichier d'authentification de l'ingestion :

        • Linux : /etc/bindplane-agent/ingestion-auth.json
        • Windows : C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
      • customer_id : remplacez YOUR_CUSTOMER_ID par votre customer ID. Pour en savoir plus, consultez Obtenir l'ID client Google SecOps.

      • endpoint : URL du point de terminaison régional :

        • États-Unis : malachiteingestion-pa.googleapis.com
        • Europe : europe-malachiteingestion-pa.googleapis.com
        • Asie : asia-southeast1-malachiteingestion-pa.googleapis.com
        • Pour obtenir la liste complète, consultez Points de terminaison régionaux.
      • log_type : défini sur CA_ACF2 (libellé d'ingestion Chronicle pour les journaux ACF2)

      • ingestion_labels : libellés facultatifs pour catégoriser les journaux (personnalisez-les selon vos besoins)

Enregistrez le fichier de configuration.

Après avoir modifié le fichier, enregistrez-le :

  • Linux : appuyez sur Ctrl+O, puis sur Enter, puis sur Ctrl+X.
  • Windows : cliquez sur Fichier > Enregistrer.

Redémarrez l'agent Bindplane pour appliquer les modifications.

  • Pour redémarrer l'agent Bindplane sous Linux :

    1. Exécutez la commande suivante :

      sudo systemctl restart observiq-otel-collector
      
    2. Vérifiez que le service est en cours d'exécution :

      sudo systemctl status observiq-otel-collector
      
    3. Recherchez les erreurs dans les journaux :

      sudo journalctl -u observiq-otel-collector -f
      
  • Pour redémarrer l'agent Bindplane sous Windows :

    1. Choisissez l'une des options suivantes :

      • Invite de commandes ou PowerShell en tant qu'administrateur :

        net stop observiq-otel-collector && net start observiq-otel-collector
        
      • Console Services :

        1. Appuyez sur Win+R, saisissez services.msc, puis appuyez sur Entrée.
        2. Localisez observIQ OpenTelemetry Collector.
        3. Effectuez un clic droit, puis sélectionnez Redémarrer.
    2. Vérifiez que le service est en cours d'exécution :

      sc query observiq-otel-collector
      
    3. Recherchez les erreurs dans les journaux :

      type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
      

Configurer BMC AMI Defender for z/OS pour transférer les enregistrements SMF ACF2

Modifiez le membre $$$SERVR parameter member

  1. Sign in to the z/OS system using TSO/ISPF or a 3270 emulator.
  2. Navigate to the BMC AMI Defender parameter library:
    1. Enter ISPF at the TSO READY prompt.
    2. Select option 2 (Edit).
    3. In the ISPF Library field, enter the data set name: amihlq.CZAGENT.PARM (replace amihlq with your installation high-level qualifier).
    4. Press Enter.
  3. Edit the $$$SERVR :
    1. Saisissez E à côté du membre du paramètre $$$SERVR member.
    2. Press Enter.
  4. Locate the SERVER statement section (approximately line 40-60).
  5. Uncomment one of the SERVER statements by removing the leading semicolon (;).
  6. Configure the SERVER statement with the Bindplane agent IP address and port:

    SERVER bindplane-host-ip:514 TRANS(UDP) MAXMSG(2000)
    
    • Replace bindplane-host-ip with the IP address of the Bindplane agent host (for example, 192.168.1.100).
    • If using a non-standard port (for example, 1514), specify: bindplane-host-ip:1514.
    • TRANS(UDP) specifies UDP transport protocol (recommended for syslog).
    • MAXMSG(2000) sets the maximum message length to 2000 bytes (ACF2 records may require larger sizes).
  7. Verify the OPTIONS statement for syslog format:

    1. Scroll up to locate the OPTIONS statements (approximately line 10-30).
    2. Ensure one of the following OPTIONS statements is uncommented based on your preferred format:

      OPTIONS IF(RFC3164) SIEM(RFC3164) TIMESTAMP INSTNAME(SIEM.Agent)
      
      • RFC3164: Standard syslog format (recommended for Chronicle)
      • CEF: Common Event Format (alternative)
      • LEEF: Log Event Extended Format (alternative)
      • JSON: JSON format (alternative)
  8. Save the changes:

    1. Press F3 to exit the editor.
    2. Type SAVE when prompted.
    3. Press Enter.

Edit the $$$CONFG pour activer la collecte des enregistrements SMF ACF2.

  1. Dans la liste des membres de l'ensemble de données amihlq.CZAGENT.PARM, modifiez le membre $$$CONFG member:

    1. Type E next to the $$$CONFG.

    2. Appuyez sur Entrée.
  2. Localisez le sélecteur d'enregistrement ACF2 SMF (recherchez ACF2 ou SMF 230).

  3. Décommentez l'instruction SELECT pour ACF2 :

    SELECT IF(ACF2) SMF(ACF2)
    
    • Cela permet de collecter les enregistrements ACF2 SMF (type 230 par défaut).
    • Si votre site utilise un autre type d'enregistrement SMF pour ACF2, vérifiez le type avec la commande ACF SHOW SYSTEMS dans TSO.
  4. Enregistrez les modifications :

    1. Appuyez sur F3 pour quitter l'éditeur.
    2. Saisissez SAVE lorsque vous y êtes invité.
    3. Appuyez sur Entrée.
  5. Créer ou modifier le membre du paramètre de l'instruction SMF ACF2

    1. Dans la liste des membres de l'ensemble de données amihlq.CZAGENT.PARM, vérifiez si un membre nommé $$$ACF2 or SMFACF2 exists.
    2. If the member does not exist, create it:

      1. Type C (Create) on the command line.
      2. Enter the member name: $$$ACF2.
      3. Appuyez sur Entrée.
    3. Modifiez le membre et ajoutez l'instruction SMF ACF2 suivante :

      SMF ACF2(230) FACILITY(SECURITY4) SEVERITY(INFORMATIONAL)
      
      • ACF2(230) : spécifie le type d'enregistrement SMF pour ACF2 (la valeur par défaut est 230 ; vérifiez avec ACF SHOW SYSTEMS).
      • FACILITY(SECURITY4) : définit la fonctionnalité syslog sur "Security" (Sécurité, 4).
      • SEVERITY(INFORMATIONAL) : définit la gravité par défaut sur "Informationnel".

        • Les mots de passe non valides ou les cas de non-respect de l'autorité sont automatiquement envoyés avec le niveau de gravité ERROR.
        • Les cas de non-respect des règles concernant les ressources sont automatiquement envoyés avec le niveau de gravité ERROR.
    4. Vous pouvez également configurer des sous-types et des niveaux de gravité ACF2 spécifiques :

      SMF ACF2(230) +
        FACILITY(SECURITY4) +
        SEVERITY(INFORMATIONAL) +
        SUBTYPES(P SEV(ERROR)) +
        SUBTYPES(V SEV(ERROR)) +
        SUBTYPES(D SEV(ERROR))
      
      • Sous-type P : événements liés à un mot de passe ou à une autorisation non valides (niveau d'erreur)
      • Sous-type V : non-respect des règles concernant les ressources (niveau d'erreur : ERROR)
      • Sous-type D : non-respect des règles d'accès aux ensembles de données (niveau d'erreur)
    5. Enregistrez les modifications :

      1. Appuyez sur F3 pour quitter l'éditeur.
      2. Saisissez SAVE lorsque vous y êtes invité.
      3. Appuyez sur Entrée.
    6. Actualiser le fichier de paramètres BMC AMI Defender

      1. Quittez ISPF et revenez à l'invite TSO READY.
      2. Exécutez la commande MODIFY pour recharger le fichier de paramètres :

        F CZAGENT,PARMS
        
        • Remplacez CZAGENT par le nom de la tâche démarrée de votre BMC AMI Defender, le cas échéant.
        • Cette commande recharge le fichier de paramètres sans arrêter l'agent.
      3. Vérifiez la configuration en examinant le résultat de CZAPRINT :

        1. Dans ISPF, sélectionnez l'option 3.4 (DSLIST).
        2. Saisissez le modèle de nom de l'ensemble de données : CZAGENT.CZAPRINT (ou votre convention de dénomination spécifique au site).
        3. Appuyez sur Entrée.
        4. Saisissez B (Parcourir) à côté de l'ensemble de données CZAPRINT le plus récent.
        5. Appuyez sur Entrée.
        6. Recherchez les messages indiquant que la connexion au serveur syslog a réussi :

          • CZA0070I Connected to server bindplane-host-ip:514
          • CZA0100I SMF ACF2 statement processed
      4. Si la tâche démarrée CZAGENT n'est pas en cours d'exécution, démarrez-la :

        S CZAGENT
        

      Vérifier le transfert des journaux ACF2

      1. Générez des événements de sécurité ACF2 de test :

        1. Dans TSO, essayez d'accéder à un ensemble de données auquel vous n'êtes pas autorisé à accéder.
        2. Essayez de vous connecter avec un mot de passe non valide (utilisez un compte de test).
        3. Exécutez une commande TSO enregistrée par ACF2.
      2. Consultez les journaux de l'agent Bindplane pour vérifier que les messages syslog ACF2 ont bien été reçus :

        • Linux :

          sudo journalctl -u observiq-otel-collector -f | grep ACF2
          
        • Windows :

          type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log" | findstr ACF2
          
      3. Connectez-vous à la console Google SecOps et vérifiez que les journaux ACF2 sont ingérés :

        1. Accédez à Rechercher > Recherche UDM.
        2. Saisissez la requête suivante :

          metadata.log_type = "CA_ACF2"
          
        3. Vérifiez que les événements de sécurité ACF2 s'affichent dans les résultats de recherche.

      Table de mappage UDM

      Champ de journal Mappage UDM Logique
      extensions.auth.mechanism Mécanisme d'authentification utilisé.
      extensions.auth.type Type d'authentification.
      pondérée metadata.description Description de l'événement.
      metadata.event_type Type d'événement.
      event_type, cat metadata.product_event_type Type d'événement spécifique au produit.
      product_version metadata.product_version Version du produit.
      terminal principal.hostname Nom d'hôte associé au principal.
      nom principal.user.user_display_name Nom à afficher de l'utilisateur.
      usrName principal.user.userid ID utilisateur.
      security_result.action Action effectuée par le système de sécurité.
      security_result.category Catégorie du résultat de sécurité.
      classe security_result.category_details Informations supplémentaires sur la catégorie de résultat de sécurité.
      reason security_result.severity Niveau de gravité du résultat de sécurité.
      reason security_result.severity_details Informations détaillées sur la gravité.
      logstr security_result.summary Résumé du résultat de sécurité.
      job_id target.application Application ciblée.
      job_group target.group.group_display_name Nom à afficher du groupe.
      target.namespace Espace de noms de la cible.
      dsn target.resource.name Nom de la ressource.
      vol target.resource.parent Ressource parente.
      res, dsn target.resource.product_object_id Identifiant d'objet spécifique au produit.
      target.resource.resource_type Type de ressource.
      nom target.user.user_display_name Nom à afficher de l'utilisateur cible.
      usrName target.user.userid ID utilisateur de l'utilisateur cible.
      product_name metadata.product_name Nom du produit qui génère l'événement.
      vendor_name metadata.vendor_name Nom du fournisseur.

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