Collecter les journaux ManageEngine AD360
Ce document explique comment ingérer des journaux ManageEngine AD360 dans Google Security Operations à l'aide de Bindplane. Le parseur nettoie et prépare d'abord les données de journaux entrantes, puis utilise une série de modèles grok
pour extraire les champs pertinents en fonction de types d'événements et de formats de messages spécifiques. Après l'extraction, le code mappe les champs extraits au modèle de données unifié (UDM), gère les transformations de données spécifiques et enrichit les données avec un contexte supplémentaire tel que la géolocalisation et le niveau de gravité de la sécurité.
Avant de commencer
Assurez-vous de remplir les conditions suivantes :
- Instance Google SecOps
- Windows 2016 ou version ultérieure, ou un hôte Linux avec
systemd
- Si vous exécutez le programme derrière un proxy, les ports du pare-feu sont ouverts.
- Accès privilégié à ManageEngine AD360
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
Installez l'agent Bindplane sur votre système d'exploitation Windows ou Linux en suivant les instructions ci-dessous.
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
Installation de Linux
- Ouvrez un terminal avec les droits root ou sudo.
Exécutez la commande suivante :
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
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
. En règle générale, il se trouve dans le répertoire/etc/bindplane-agent/
sous Linux ou dans le répertoire d'installation sous Windows. - Ouvrez le fichier à l'aide d'un éditeur de texte (par exemple,
nano
,vi
ou le Bloc-notes).
- Recherchez le fichier
Modifiez le fichier
config.yaml
comme suit :receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds_file_path: '/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 ingestion_labels: log_type: 'MANAGE_ENGINE_AD360' raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels
- Remplacez le port et l'adresse IP selon les besoins de votre infrastructure.
- 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 Linux, exécutez la commande suivante :
sudo systemctl restart bindplane-agent
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 l'exportation Syslog ManageEngine AD360
- Connectez-vous à l'interface utilisateur Web AD360.
- Accédez à Admin > Administration > Intégration SIEM.
- Cliquez sur le lien Configurer maintenant à côté du composant ADSelfService.
- Fournissez les informations de configuration suivantes :
- Type de serveur : sélectionnez Syslog.
- Nom/Adresse IP du serveur : saisissez l'adresse IP de l'agent Bindplane.
- Port : saisissez le numéro de port de l'agent Bindplane.
- Protocole : sélectionnez UDP.
- Norme Syslog : sélectionnez RFC5 424.
- Cliquez sur la liste Advanced (Avancé).
- Gravité : sélectionnez Informationnel.
- Cliquez sur Configurer pour enregistrer.
Table de mappage UDM
Champ de journal | Mappage UDM | Logique |
---|---|---|
AccessControlRuleName | security_result.rule_name | Valeur extraite du champ AccessControlRuleName , si elle existe, ou du champ rule_name |
ACPolicy | security_result.rule_labels.value | Valeur extraite du champ ACPolicy |
action | security_result.action_details | Mappé directement sur l'UDM |
action_id | security_result.detection_fields.value | Valeur extraite du champ action_id |
application_protocol | network.application_protocol | Mappé directement sur l'UDM |
bytes | network.sent_bytes | Mappé directement sur l'UDM |
client_ip | principal.ip | Mappé directement sur l'UDM |
ConnectionID | network.session_id | Valeur extraite du champ connection_id , si elle existe, sinon du champ ConnectionID , sinon du champ ses |
destination_ip | target.ip | Mappé directement sur l'UDM |
destination_port | target.port | Mappé directement sur l'UDM |
DeviceUUID | target.asset_id | Valeur extraite du champ DeviceUUID , si elle existe, ou du champ distinguished_name_device_id |
distinguished_name_device_id | target.asset_id | Valeur extraite du champ DeviceUUID , si elle existe, ou du champ distinguished_name_device_id |
distinguished_name_user | target.user.userid | Mappé directement sur l'UDM |
DST | target.ip | Valeur extraite du champ DST , si elle existe, ou du champ DstIP |
DPT | target.port | Valeur extraite du champ DPT , si elle existe, sinon du champ DstPort , sinon du champ destination_port |
DstIP | target.ip | Valeur extraite du champ DST , si elle existe, ou du champ DstIP |
DstPort | target.port | Valeur extraite du champ DPT , si elle existe, sinon du champ DstPort , sinon du champ destination_port |
EgressInterface | additional.fields.value.string_value | Mappé directement sur l'UDM |
EgressZone | target.location.name | Mappé directement sur l'UDM |
EventPriority | security_result.severity | Elles sont associées à différents niveaux de gravité en fonction de la valeur du champ EventPriority . |
exe | principal.process.command_line | Mappé directement sur l'UDM |
geoip.city_name | principal.location.city | Mappé directement sur l'UDM |
geoip.country_name | principal.location.country_or_region | Mappé directement sur l'UDM |
geoip.latitude | principal.location.region_latitude | Mappé directement sur l'UDM |
geoip.longitude | principal.location.region_longitude | Mappé directement sur l'UDM |
http_status | network.http.response_code | Mappé directement sur l'UDM |
id | metadata.product_log_id | Mappé directement sur l'UDM |
IngressInterface | additional.fields.value.string_value | Mappé directement sur l'UDM |
IngressZone | principal.location.name | Mappé directement sur l'UDM |
LEN | additional.fields.value.string_value | Mappé directement sur l'UDM |
message_number | Non mappé | |
NAPPolicy | security_result.rule_labels.value | Valeur extraite du champ NAPPolicy |
network_direction | network.direction | Mappé directement sur l'UDM |
OUT | additional.fields.value.string_value | Mappé directement sur l'UDM |
pid | target.process.pid | Mappé directement sur l'UDM |
ppid | target.process.parent_process.pid | Mappé directement sur l'UDM |
PREC | additional.fields.value.string_value | Mappé directement sur l'UDM |
principal_hostname | principal.hostname | Mappé directement sur l'UDM |
product_event_type | metadata.product_event_type | Mappé directement sur l'UDM |
protocol | network.ip_protocol | Utilisé pour remplir le champ PROTO , puis mappé à l'UDM à l'aide d'une table de correspondance. |
PROTO | network.ip_protocol | Mappé à UDM à l'aide d'une table de conversion basée sur le numéro de protocole. |
request_method | network.http.method | Mappé directement sur l'UDM |
rule_name | security_result.rule_name | Valeur extraite du champ AccessControlRuleName , si elle existe, ou du champ rule_name |
ses | network.session_id | Valeur extraite du champ connection_id , si elle existe, sinon du champ ConnectionID , sinon du champ ses |
source_ip | principal.ip | Mappé directement sur l'UDM |
source_port | principal.port | Mappé directement sur l'UDM |
SPT | principal.port | Valeur extraite du champ SPT , si elle existe, sinon du champ SrcPort , sinon du champ source_port |
SRC | principal.ip | Valeur extraite du champ SRC , si elle existe, sinon du champ SrcIP , sinon du champ client_ip |
SrcIP | principal.ip | Valeur extraite du champ SRC , si elle existe, sinon du champ SrcIP , sinon du champ client_ip |
SrcPort | principal.port | Valeur extraite du champ SPT , si elle existe, sinon du champ SrcPort , sinon du champ source_port |
timestamp | metadata.event_timestamp | Mappé directement sur l'UDM |
TOS | additional.fields.value.string_value | Mappé directement sur l'UDM |
TTL | additional.fields.value.string_value | Mappé directement sur l'UDM |
URL | target.url | Mappé directement sur l'UDM |
user_agent | network.http.user_agent | Mappé directement sur l'UDM |
WINDOW | additional.fields.value.string_value | Mappé directement sur l'UDM |
metadata.vendor_name | La valeur est codée en dur sur MANAGE_ENGINE_AD360 |
|
metadata.product_name | La valeur est codée en dur sur MANAGE_ENGINE_AD360 |
|
metadata.log_type | La valeur est codée en dur sur MANAGE_ENGINE_AD360 |
|
metadata.event_type | La valeur est définie sur NETWORK_CONNECTION si les champs SRC et DST sont présents. Sinon, elle est définie sur STATUS_UPDATE si SRC ou principal_hostname sont présents. Si aucune de ces conditions n'est remplie, la valeur par défaut est GENERIC_EVENT . |
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.