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 renseigne 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 classe l'événement en tant que STATUS_UPDATE si un nom d'hôte est présent. Sinon, il lui attribue la catégorie GENERIC_EVENT. 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 Linux avec systemd.
  • Si vous exécutez l'application 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 à SIEM Settings (Paramètres du SIEM) > Collection Agent (Agent de collecte).
  3. Téléchargez le fichier d'authentification d'ingestion.

Obtenir le numéro client Google SecOps

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres du SIEM > Profil.
  3. Copiez et sauvegardez l'ID client dans la section Détails de l'organisation.

Installer l'agent BindPlane

  1. Pour l'installation sous Windows, exécutez le script suivant:
    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet.
  2. Pour l'installation sous 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. Pour en savoir plus sur les options d'installation, consultez ce guide d'installation.

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

  1. Accédez à la machine sur laquelle 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. Configurez syslog-ng:

    • Modifiez le fichier syslog-ng.conf (généralement situé dans /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 définir la méthode de diffusion sur 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 défini sur "start"):

    brew services list
    

Tableau 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 de 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 format grok et converti en objet horodatage. Codé en dur sur "MacOS" dans l'analyseur. "Apple" est codé en dur dans l'analyseur. Définissez ce paramètre sur "STATUS_UPDATE" si un nom d'hôte est extrait des journaux, sinon sur "GENERIC_EVENT".
log_type read_only_udm.metadata.log_type Mappé directement à partir du champ log_type du journal brut.

Modifications

2022-05-04

  • Analyseur nouvellement créé.