Collecter les données syslog Apple macOS
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
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres SIEM > Agent de collecte.
- Téléchargez le fichier d'authentification d'ingestion.
Obtenir l'ID client Google SecOps
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres SIEM > Profil.
- Copiez et enregistrez le numéro client de la section Informations sur l'organisation.
Installer l'agent BindPlane
- Pour installer Windows, exécutez le script suivant :
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
. - 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
. - 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
- Accédez à la machine sur laquelle l'agent Bindplane est installé.
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
Redémarrez l'agent Bindplane pour appliquer les modifications à l'aide de la commande suivante :
sudo systemctl bindplane restart
Exporter Syslog depuis macOS
Installez
syslog-ng
à l'aide de Homebrew :brew install syslog-ng
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 surudp
. - Remplacez
<BindPlaneAgent_IP>
et<BindPlaneAgent_Port>
par l'adresse IP et le port réels de votre agent Bindplane :
- Selon la configuration de Bindplane, vous pouvez remplacer la méthode de livraison par
source s_local { system(); internal(); }; destination d_secops { tcp("<BindPlaneAgent_IP>:<BindPlaneAgent_Port>"); }; log { source(s_local); destination(d_secops); };
- Modifiez le fichier
Redémarrez le service
syslog-ng
:brew services restart syslog-ng
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.