Collecter les journaux BMC AMI Defender

Compatible avec :

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

BMC AMI Datastream for z/OS est un programme d'agent de mainframe qui surveille l'activité du système z/OS, et collecte, traite et fournit les enregistrements SMF (System Management Facility) aux systèmes SIEM distribués en temps réel. L'agent reformate les enregistrements SMF provenant de RACF, ACF2, Top Secret, TCP/IP, CICS, IMS et d'autres événements système et d'application z/OS en messages syslog conformes à la norme RFC 3164, puis les transmet via les protocoles UDP, TCP ou TLS.

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 pour l'agent Bindplane
  • Connectivité réseau entre l'hôte de l'agent Bindplane et la LPAR z/OS exécutant BMC AMI Datastream
  • 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 Datastream pour z/OS version 6.1 ou ultérieure installé et en cours d'exécution sur la LPAR z/OS
  • Accès à la modification des fichiers de paramètres dans l'ensemble de données amihlq.PARM sur z/OS (nécessite généralement un accès TSO/ISPF ou une autorisation d'envoi de tâches par lot)
  • Autorisation de modifier la configuration de BMC AMI Datastream (nécessite généralement un accès RACF READ aux ensembles de données de paramètres)

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:
      tcplog:
        listen_address: "0.0.0.0:1514"
    
    exporters:
      chronicle/bmc_datastream:
        compression: gzip
        creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
        customer_id: 'your-customer-id-here'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: BMC_AMI_DEFENDER
        raw_log_field: body
    
    service:
      pipelines:
        logs/datastream_to_chronicle:
          receivers:
            - tcplog
          exporters:
            - chronicle/bmc_datastream
    
  2. Remplacez les espaces réservés suivants :

    • Configuration du récepteur :

      listen_address : adresse IP et port à écouter :

      • 0.0.0.0:1514 pour écouter sur toutes les interfaces sur le port 1514 (recommandé pour Linux non root)
      • 0.0.0.0:514 pour écouter sur toutes les interfaces sur le port syslog standard (nécessite l'accès root sur Linux)
      • Adresse IP spécifique à écouter sur une interface
    • 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 : votre customer ID. Pour en savoir plus, consultez Obtenir le numéro 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 : BMC_AMI_DEFENDER

Exemple de configuration pour UDP syslog

  • Si vous préférez le transport UDP (latence plus faible, fire-and-forget) :

    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/bmc_datastream:
        compression: gzip
        creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
        customer_id: 'a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: BMC_AMI_DEFENDER
        raw_log_field: body
    
    service:
      pipelines:
        logs/datastream_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/bmc_datastream
    

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 le transfert Syslog de BMC AMI Defender

Modifier le fichier de paramètres à l'aide de TSO/ISPF

  1. Connectez-vous à TSO/ISPF sur la LPAR z/OS où BMC AMI Datastream est installé.
  2. Dans le menu principal des options ISPF, saisissez 2 pour sélectionner EDIT (MODIFIER).
  3. Sur la page Modifier – Panneau d'entrée, saisissez les informations suivantes :

    • Bibliothèque ISPF : saisissez le nom de l'ensemble de données de paramètre au format 'amihlq.PARM', où amihlq est le qualificatif de haut niveau choisi lors de l'installation (par exemple, 'PROD.CZAGENT.PARM').
    • Membre : saisissez le membre $$$CONFG.
  4. Press Enter to open the member for editing.

Configure the SIEM type

  1. In the $$$CONFG, puis recherchez la section intitulée Switches for setting the SIEM type (Boutons pour définir le type de SIEM).
  2. Décommentez un type de SIEM en supprimant le point-virgule en début de ligne :

    • Pour le format syslog standard, supprimez le commentaire : SWITCH ON(RFC3164)
    • Pour le format d'événement commun, supprimez la mise en commentaire de : SWITCH ON(CEF)
    • Pour le format JSON, supprimez le commentaire : SWITCH ON(JSON)
    • Pour le format IBM QRadar LEEF, supprimez le commentaire : SWITCH ON(LEEF)
    • Pour le format Splunk, supprimez le commentaire : SWITCH ON(Splunk)
  3. Appuyez sur F3 pour enregistrer et quitter le membre.

Configurer le serveur syslog

  1. Dans le panneau de saisie "Modifier", saisissez les informations suivantes :

    • Bibliothèque ISPF : saisissez 'amihlq.PARM' (comme précédemment).
    • Membre : saisissez $$$SERVR.
  2. Press Enter to open the member for editing.

  3. Locate the section corresponding to your selected SIEM type. For example:

    • For RFC3164: Locate the section labeled ; RFC3164
    • For CEF: Locate the section labeled ; CEF - TRANS(TCP) Recommended
    • For JSON: Locate the section labeled ; JSON - TRANS(TCP) Recommended
  4. Uncomment the SERVER statement by removing the leading semicolon.

  5. Edit the SERVER statement with the following values:

    • Replace ip.addr.example with the IP address of the Bindplane agent host (for example, 192.168.1.100).
    • If using TCP (recommended), the statement should look like:

      SERVER 192.168.1.100:1514 TRANS(TCP) MAXMSG(2000)
      
    • If using UDP, the statement should look like:

      SERVER 192.168.1.100:514 TRANS(UDP) MAXMSG(2000)
      
  6. If you selected CEF, JSON, or Splunk format and are using TCP transport, locate the OPTIONS statement section and uncomment the FRAMING parameter:

    OPTIONS FRAMING(OCTETCOUNT)
    
  7. Press F3 to save and exit the member.

Refresh the BMC AMI Datastream configuration

  1. From the ISPF Primary Option Menu, enter 6 to select COMMAND.
  2. On the TSO Command Processor screen, enter the following MVS console command:

    F czagentname,PARMS
    

    Replace czagentname with the name of the BMC AMI Datastream started task (typically CZAGENT or the instance name configured during installation).

  3. Press Enter to execute the command.

  4. Verify the configuration was refreshed by checking the system log for message CZA0001I indicating the parameter file was successfully processed.

Verify syslog transmission

  1. From the ISPF Primary Option Menu, enter 6 to select COMMAND.
  2. Enter the following command to display BMC AMI Datastream statistics:

    F czagentname,STATS
    
  3. Press Enter to execute the command.

  4. Check the system log for message CZA0350I showing the number of messages sent to the syslog server.

  5. Verify the Bindplane agent is receiving messages by checking the Bindplane agent logs:

    • Linux: sudo journalctl -u observiq-otel-collector -f
    • Windows: Check C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log

Alternative: Edit parameter file using batch job

If you do not have TSO/ISPF access, you can edit the parameter files using a batch job:

  1. Create a batch job with the following JCL:

    //EDITPARM JOB (ACCT),'EDIT DATASTREAM PARMS',
    //         CLASS=A,MSGCLASS=X,NOTIFY=&SYSUID
    //STEP1    EXEC PGM=IEBGENER
    //SYSPRINT DD SYSOUT=*
    //SYSIN    DD DUMMY
    //SYSUT1   DD *
    SWITCH ON(RFC3164)
    /*
    //SYSUT2   DD DSN=amihlq.PARM($$$CONFG),DISP=SHR
    //STEP2    EXEC PGM=IEBGENER
    //SYSPRINT DD SYSOUT=*
    //SYSIN    DD DUMMY
    //SYSUT1   DD *
    SERVER 192.168.1.100:1514 TRANS(TCP) MAXMSG(2000)
    /*
    //SYSUT2   DD DSN=amihlq.PARM($$$SERVR),DISP=SHR
    .
  2. Remplacez amihlq par le qualificatif de haut niveau pour votre installation BMC AMI Datastream.

  3. Remplacez 192.168.1.100:1514 par l'adresse IP et le port de l'hôte de votre agent Bindplane.

  4. Envoyez le job et vérifiez qu'il s'est terminé correctement (code de retour 0).

  5. Exécutez la commande MODIFY pour actualiser la configuration, comme décrit dans la section précédente.

Table de mappage UDM

Champ de journal Mappage UDM Logique
aceeadsp security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
aceeaudt security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
aceeflg1 security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
aceelogu security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
aceeoper security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
aceepriv security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
aceeracf security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
aceeroa security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
aceespec security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
additional.fields additional.fields Informations supplémentaires sur l'événement
auth security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
auth_audit security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
auth_bypass security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
auth_exit security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
auth_normal security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
auth_oper security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
auth_soft security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
auth_special security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
auth_trusted security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
authinfo security_result.description Description du résultat de sécurité
événement metadata.product_event_type Type d'événement spécifique au produit
event_type metadata.event_type Type d'événement (par exemple, USER_LOGIN, NETWORK_CONNECTION)
eventdesc metadata.description Description de l'événement
groupe additional.fields Informations supplémentaires sur l'événement
nom d'hôte principal.hostname, principal.asset.hostname Nom d'hôte du principal, nom d'hôte de l'élément
jobid security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
jobnm additional.fields Informations supplémentaires sur l'événement
jsauth security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
nom principal.user.user_display_name Nom à afficher de l'utilisateur
pgm security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
privstatd security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
reas_always security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
reas_audit security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
reas_cmdviol security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
reas_globalaudit security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
reas_setropts security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
reas_special security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
reas_user security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
reas_verify security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
rtype additional.fields Informations supplémentaires sur l'événement
saf additional.fields Informations supplémentaires sur l'événement
safd additional.fields Informations supplémentaires sur l'événement
security_result.detection_fields security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
de gravité, security_result.severity, security_result.severity_details Niveau de gravité du résultat de sécurité, informations détaillées sur le niveau de gravité
sid additional.fields Informations supplémentaires sur l'événement
timestamp metadata.event_timestamp Code temporel de l'événement
tokflg1 security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
tokflg3 security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
tokpriv security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
toksus security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
tokudus security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
userid principal.user.userid ID utilisateur
violation security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
user_warning security_result.detection_fields Champs utilisés pour déterminer le résultat de sécurité
worktyped additional.fields Informations supplémentaires sur l'événement
metadata.product_name Nom du produit
metadata.vendor_name Nom du fournisseur/de l'entreprise

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