Collecter les journaux système macOS

Compatible avec :

Ce document explique comment ingérer des journaux système macOS dans Google Security Operations à l'aide de Bindplane. macOS utilise le système Apple Unified Logging pour capturer les événements au niveau du système, y compris l'authentification, l'exécution des processus, l'activité du noyau et le comportement des applications. Ces journaux peuvent être transférés via syslog vers un collecteur distant pour une surveillance et une analyse centralisées de la sécurité.

Avant de commencer

Assurez-vous de remplir les conditions suivantes :

  • Une instance Google SecOps.
  • Un hôte Windows 2016 ou version ultérieure, ou Linux avec systemd.
  • 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.
  • Accès administrateur aux points de terminaison macOS qui transféreront les journaux.
  • macOS 10.12 (Sierra) ou version ultérieure avec prise en charge de la journalisation unifiée.

Obtenir le fichier d'authentification d'ingestion Google SecOps

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres du SIEM > Agent 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 sera 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
    

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
    

Autres ressources d'installation

Pour plus d'options d'installation, consultez ce guide d'installation.

Configurer l'agent Bindplane pour ingérer Syslog et l'envoyer à Google SecOps

  1. Accédez au fichier de configuration :

    • Trouvez le fichier config.yaml. Il se trouve généralement dans le répertoire /observiq-otel-collector/ sous Linux ou dans le répertoire d'installation sous Windows.
    • Ouvrez le fichier à l'aide d'un éditeur de texte (par exemple, nano, vi ou le Bloc-notes).
  2. Modifiez le fichier config.yaml comme suit :

    receivers:
      udplog:
        # Replace the port and IP address as required
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/chronicle_w_labels:
        compression: gzip
        # Adjust the path to the credentials file you downloaded in Step 1
        creds_file_path: '/path/to/ingestion-authentication-file.json'
        # Replace with your actual customer ID from Step 2
        customer_id: <PLACEHOLDER_CUSTOMER_ID>
        endpoint: malachiteingestion-pa.googleapis.com
        # Add optional ingestion labels for better organization
        log_type: 'MACOS'
        raw_log_field: body
        ingestion_labels:
    
    service:
      pipelines:
        logs/source0__chronicle_w_labels-0:
          receivers:
            - udplog
          exporters:
            - chronicle/chronicle_w_labels
    
  • Remplacez le port et l'adresse IP selon les besoins de votre infrastructure.
  • Remplacez <PLACEHOLDER_CUSTOMER_ID> par le numéro client réel.
  • Mettez à jour /path/to/ingestion-authentication-file.json avec le chemin d'accès au fichier où le fichier d'authentification a été enregistré dans la section Obtenir le fichier d'authentification pour l'ingestion Google SecOps.

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 commande 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 macOS

macOS utilise le système de journalisation unifié. Pour transférer les journaux à l'agent Bindplane via syslog, configurez le service syslogd intégré sur chaque point de terminaison macOS.

Option 1 : Configurer le transfert syslog à l'aide de syslog.conf

  1. Ouvrez Terminal sur le point de terminaison macOS.
  2. Modifiez le fichier de configuration syslog :

    sudo nano /etc/syslog.conf
    
  3. Ajoutez la ligne suivante à la fin du fichier pour transférer tous les journaux via UDP à l'agent Bindplane :

    *.*     @<BINDPLANE_IP_ADDRESS>:514
    
    • Remplacez <BINDPLANE_IP_ADDRESS> par l'adresse IP de l'hôte de l'agent Bindplane (par exemple, 192.168.1.100).
  4. Enregistrez et fermez le fichier.

  5. Redémarrez le daemon syslog :

    sudo launchctl unload /System/Library/LaunchDaemons/com.apple.syslogd.plist
    sudo launchctl load /System/Library/LaunchDaemons/com.apple.syslogd.plist
    

Option 2 : Configurer le transfert syslog à l'aide d'asl.conf

  1. Ouvrez Terminal sur le point de terminaison macOS.
  2. Modifiez le fichier de configuration ASL :

    sudo nano /etc/asl.conf
    
  3. Ajoutez la ligne suivante pour transférer les journaux vers le serveur syslog distant :

    ? [= Sender kernel] forward <BINDPLANE_IP_ADDRESS>:514
    ? [<= Level notice] forward <BINDPLANE_IP_ADDRESS>:514
    
    • Remplacez <BINDPLANE_IP_ADDRESS> par l'adresse IP de l'hôte de l'agent Bindplane.
  4. Enregistrez et fermez le fichier.

  5. Redémarrez le daemon syslog :

    sudo launchctl unload /System/Library/LaunchDaemons/com.apple.syslogd.plist
    sudo launchctl load /System/Library/LaunchDaemons/com.apple.syslogd.plist
    

Vérifier le transfert de journaux

  1. Sur le point de terminaison macOS, générez un message de journal de test :

    logger -p user.notice "Test syslog message for Bindplane"
    
  2. Sur l'hôte de l'agent Bindplane, vérifiez les journaux de l'agent pour les messages entrants :

    sudo journalctl -u observiq-otel-collector -f
    

Table de mappage UDM

Champ de journal Mappage UDM Logique
activityIdentifier_label additional.fields Fusionné
backtrace_label additional.fields Fusionné
bootUUID_label additional.fields Fusionné
category_label additional.fields Fusionné
chronicle_log_type_label additional.fields Fusionné
formatString_label additional.fields Fusionné
log_type_label additional.fields Fusionné
machTimestamp_label additional.fields Fusionné
messageType_label additional.fields Fusionné
parentActivityIdentifier_label additional.fields Fusionné
processImageUUID_label additional.fields Fusionné
senderImageUUID_label additional.fields Fusionné
senderProgramCounter_label additional.fields Fusionné
subprocess_label additional.fields Fusionné
subsystem_label additional.fields Fusionné
threadID_label additional.fields Fusionné
traceID_label additional.fields Fusionné
intermediary_host intermediary.hostname Mappé directement
attributes.message metadata.description Mappé directement
description metadata.description Mappé directement
eventMessage metadata.description Mappé directement
timestamp metadata.event_timestamp Analysé comme ISO8601
has_principal metadata.event_type Mappé : trueSTATUS_UPDATE
has_user metadata.event_type Mappé : trueUSER_UNCATEGORIZED
attributes.process metadata.product_event_type Mappé directement
eventType metadata.product_event_type Mappé directement
attributes.host principal.asset.hostname Mappé directement
hostname principal.asset.hostname Mappé directement
source principal.asset.hostname Mappé directement
senderImagePath principal.file.full_path Mappé directement
attributes.host principal.hostname Mappé directement
hostname principal.hostname Mappé directement
source principal.hostname Mappé directement
command_line principal.process.command_line Mappé directement
processImagePath principal.process.file.full_path Mappé directement
attributes.pid principal.process.pid Mappé directement
processID principal.process.pid Mappé directement
process_id principal.process.pid Mappé directement
userID principal.user.userid Mappé directement
N/A metadata.event_type Constante : USER_UNCATEGORIZED
N/A metadata.product_name Constante : MacOS
N/A metadata.vendor_name Constante : Apple
N/A principal.platform Constante : MAC

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