Collecter les données syslog Apple macOS
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
- Connectez-vous à la console Google SecOps.
- Accédez à SIEM Settings (Paramètres du SIEM) > Collection Agent (Agent de collecte).
- Téléchargez le fichier d'authentification d'ingestion.
Obtenir le numéro client Google SecOps
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres du SIEM > Profil.
- Copiez et sauvegardez l'ID client dans la section Détails de l'organisation.
Installer l'agent BindPlane
- 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
. - 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
. - 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
- Accédez à la machine sur laquelle 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
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 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 définir la méthode de diffusion sur
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 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éé.