Collecter les journaux Microsoft LAPS
Ce document explique comment ingérer les journaux Microsoft LAPS (Local Administrator Password Solution) dans Google Security Operations à l'aide de Bindplane. Le parseur extrait d'abord les données au format JSON du champ message
, puis analyse le champ EventData
dans le JSON extrait. Il mappe ensuite les champs extraits au schéma UDM (Unified Data Model), catégorise le type d'événement en fonction de EventId
et fusionne enfin toutes les données traitées dans l'événement de sortie.
Avant de commencer
Assurez-vous de remplir les conditions préalables suivantes :
- Instance Google SecOps
- si vous exécutez le programme derrière un proxy, les ports du pare-feu sont ouverts.
- Accès privilégié à un serveur Microsoft Windows avec LAPS
Obtenir le fichier d'authentification d'ingestion Google SecOps
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres du SIEM > Agents de collecte.
- 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
- 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
Installation de fenêtres
- Ouvrez l'invite de commandes ou PowerShell en tant qu'administrateur.
Exécutez la commande suivante :
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Ressources d'installation supplémentaires
Pour plus d'options d'installation, consultez le guide d'installation.
Configurer l'agent Bindplane pour ingérer Syslog et l'envoyer à Google SecOps
- Accédez au fichier de configuration :
- Recherchez le fichier
config.yaml
. Il se trouve généralement dans le répertoire d'installation sous Windows. - Ouvrez le fichier à l'aide d'un éditeur de texte (Bloc-notes, par exemple).
- Recherchez le fichier
Modifiez le fichier
config.yaml
comme suit :receivers: windowseventlog/laps_operational: channel: Microsoft-Windows-LAPS/Operational max_reads: 100 poll_interval: 5s raw: true start_at: end processors: batch: exporters: chronicle/laps: # Adjust the path to the credentials file you downloaded in Step 1 creds: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization log_type: 'WINDOWS_LAPS' override_log_type: false raw_log_field: body service: pipelines: logs/laps: receivers: - windowseventlog/laps_operational processors: [batch] exporters: [chronicle/laps]
Remplacez
<customer_id>
par le numéro client réel.Mettez à jour
/path/to/ingestion-authentication-file.json
en indiquant le chemin d'accès 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 Windows, vous pouvez utiliser la console Services ou saisir la commande suivante :
net stop BindPlaneAgent && net start BindPlaneAgent
Configurer Microsoft Windows LAPS
- Saisissez
eventvwr.msc
dans une invite de commande avec élévation de privilèges, puis appuyez sur ENTRÉE pour ouvrir la Visionneuse d'événements. - Accédez à Journaux des applications et services > Microsoft > Windows > LAPS.
- Développez LAPS.
- Effectuez un clic droit sur LAPS, puis cliquez sur Propriétés.
- Cochez la case Activer la journalisation.
- Cliquez sur OK lorsque vous êtes invité à confirmer que le journal est activé.
- Cliquez sur OK.
Table de mappage UDM
Champ de journal | Mappage UDM | Logique |
---|---|---|
Version | read_only_udm.additional.fields.key | La valeur est extraite du champ Channel du journal brut et attribuée au champ key . |
Version | read_only_udm.additional.fields.value.string_value | La valeur est extraite du champ Channel du journal brut et attribuée au champ string_value . |
Ordinateur | read_only_udm.principal.hostname | La valeur est extraite du champ Computer du journal brut. |
Ordinateur | read_only_udm.principal.asset.hostname | La valeur est extraite du champ Computer du journal brut. |
EventData.%1 | read_only_udm.additional.fields.value.string_value | La valeur est extraite du champ EventData.%1 du journal brut et attribuée au champ string_value . |
EventId | read_only_udm.metadata.product_event_type | La valeur est extraite du champ EventId du journal brut. |
EventId | read_only_udm.security_result.rule_name | La valeur est extraite du champ EventId du journal brut et ajoutée à EventID: . |
EventRecordID | read_only_udm.metadata.product_log_id | La valeur est extraite du champ EventRecordID du journal brut. |
Mots clés | read_only_udm.additional.fields.key | La valeur est extraite du champ Keywords du journal brut et attribuée au champ key . |
Mots clés | read_only_udm.additional.fields.value.string_value | La valeur est extraite du champ Keywords du journal brut et attribuée au champ string_value . |
Niveau | read_only_udm.security_result.severity | La valeur est extraite du champ Level du journal brut et mappée sur : INFORMATIONAL pour INFO , Informational , Information , Normal , NOTICE ; ERROR pour ERROR , Error ; CRITICAL pour Critical . |
Code opération | read_only_udm.additional.fields.key | La valeur est extraite du champ Opcode du journal brut et attribuée au champ key . |
Code opération | read_only_udm.additional.fields.value.string_value | La valeur est extraite du champ Opcode du journal brut et attribuée au champ string_value . |
ProcessID | read_only_udm.principal.process.pid | La valeur est extraite du champ ProcessID du journal brut. |
ProviderName | read_only_udm.metadata.product_name | La valeur est extraite du champ ProviderName du journal brut. |
Tâche | read_only_udm.additional.fields.key | La valeur est extraite du champ Task du journal brut et attribuée au champ key . |
Tâche | read_only_udm.additional.fields.value.string_value | La valeur est extraite du champ Task du journal brut et attribuée au champ string_value . |
ThreadID | read_only_udm.additional.fields.key | La valeur est extraite du champ ThreadID du journal brut et attribuée au champ key . |
ThreadID | read_only_udm.additional.fields.value.string_value | La valeur est extraite du champ ThreadID du journal brut et attribuée au champ string_value . |
TimeCreated | read_only_udm.metadata.event_timestamp | La valeur est extraite du champ TimeCreated du journal brut et analysée en tant que code temporel UNIX_MS. |
TimeCreated | events.timestamp | La valeur est extraite du champ TimeCreated du journal brut et analysée en tant que code temporel UNIX_MS. |
Version | read_only_udm.additional.fields.key | La valeur est extraite du champ Version du journal brut et attribuée au champ key . |
Version | read_only_udm.additional.fields.value.string_value | La valeur est extraite du champ Version du journal brut et attribuée au champ string_value . |
read_only_udm.additional.fields.key | La valeur EventData_P1 a été attribuée. |
|
read_only_udm.metadata.event_type | STATUS_UNCATEGORIZED est attribué de manière conditionnelle si EventId est 7 ou 2 , sinon GENERIC_EVENT . |
|
read_only_udm.metadata.vendor_name | La valeur Microsoft a été attribuée. |
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.