Collecter les données syslog Apple macOS

Compatible avec :

Cet analyseur utilise des modèles Grok pour extraire des champs des messages syslog Apple macOS et remplir le modèle de données unifié (UDM) avec les valeurs extraites, y compris le code temporel, le nom d'hôte, l'hôte intermédiaire, la ligne de commande, l'ID de processus et la description. L'analyseur catégorise l'événement comme STATUS_UPDATE si un nom d'hôte est présent. Sinon, il attribue la catégorie GENERIC_EVENT à l'événement. Enfin, l'analyseur enrichit l'événement UDM avec des informations sur le fournisseur et le produit.

Avant de commencer

  • Assurez-vous de disposer d'une instance Google Security Operations.
  • Assurez-vous de disposer d'un accès racine à l'hôte Auditd.
  • Assurez-vous d'avoir installé rsyslog sur l'hôte Auditd.
  • Assurez-vous de disposer d'un hôte Windows 2012 SP2 ou version ultérieure, ou d'un hôte Linux avec systemd.
  • Si vous exécutez le programme derrière un proxy, assurez-vous que les ports du pare-feu sont ouverts.

Obtenir le fichier d'authentification d'ingestion Google SecOps

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres SIEM > Agent de collecte.
  3. Téléchargez le fichier d'authentification d'ingestion.

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

  1. Pour installer Windows, exécutez le script suivant :
    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet.
  2. Pour installer sur Linux, exécutez le script suivant :
    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh.
  3. Vous trouverez d'autres options d'installation dans ce guide d'installation.

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

  1. Accédez à la machine sur laquelle l'agent Bindplane est installé.
  2. Modifiez le fichier config.yaml comme suit :

    receivers:
      tcplog:
        # Replace the below port <54525> and IP <0.0.0.0> with your specific values
        listen_address: "0.0.0.0:54525" 
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the creds location below according the placement of the credentials file you downloaded
            creds: '{ json file for creds }'
            # Replace <customer_id> below with your actual ID that you copied
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # You can apply ingestion labels below as preferred
            ingestion_labels:
            log_type: SYSLOG
            namespace: auditd
            raw_log_field: body
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - tcplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Redémarrez l'agent Bindplane pour appliquer les modifications à l'aide de la commande suivante : sudo systemctl bindplane restart

Exporter Syslog depuis macOS

  1. Installez syslog-ng à l'aide de Homebrew :

    brew install syslog-ng
    
  2. Configurer syslog-ng :

    • Modifiez le fichier syslog-ng.conf (généralement situé à l'emplacement /usr/local/etc/syslog-ng/syslog-ng.conf) :
    sudo vi /usr/local/etc/syslog-ng/syslog-ng.conf
    
    • Ajoutez le bloc de configuration suivant.
      • Selon la configuration de Bindplane, vous pouvez remplacer la méthode de livraison par tcp ou la laisser sur udp.
      • Remplacez <BindPlaneAgent_IP> et <BindPlaneAgent_Port> par l'adresse IP et le port réels de votre agent Bindplane :
    source s_local { system(); internal(); };
    destination d_secops { tcp("<BindPlaneAgent_IP>:<BindPlaneAgent_Port>"); };
    log { source(s_local); destination(d_secops); };
    
  3. Redémarrez le service syslog-ng :

    brew services restart syslog-ng
    
  4. Vérifiez l'état de syslog-ng (syslog-ng doit être indiqué comme démarré) :

    brew services list
    

Table de mappage UDM

Champ de journal Mappage UDM Logique
données read_only_udm.metadata.description La valeur du champ description est extraite du champ data du journal brut à l'aide d'un modèle Grok.
données read_only_udm.principal.hostname Le nom d'hôte est extrait du champ data à l'aide d'un modèle Grok.
données read_only_udm.intermediary.hostname Le nom d'hôte intermédiaire est extrait du champ data à l'aide d'un modèle grok.
données read_only_udm.principal.process.command_line La ligne de commande du processus est extraite du champ data à l'aide d'un modèle Grok.
données read_only_udm.principal.process.pid L'ID du processus est extrait du champ data à l'aide d'un modèle Grok.
données read_only_udm.metadata.event_timestamp L'horodatage de l'événement est extrait du champ data à l'aide d'un modèle Grok et converti en objet d'horodatage. Codé en dur sur "MacOS" dans l'analyseur. Codé en dur sur "Apple" dans l'analyseur. Définissez la valeur sur "STATUS_UPDATE" si un nom d'hôte est extrait des journaux, sinon définissez-la sur "GENERIC_EVENT".
log_type read_only_udm.metadata.log_type Mappé directement à partir du champ log_type du journal brut.

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