Collecter les journaux ManageEngine AD360

Compatible avec :

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

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres du SIEM > Agents de collecte.
  3. 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

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres SIEM> Profil.
  3. 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

  1. Ouvrez l'invite de commandes ou PowerShell en tant qu'administrateur.
  2. Exécutez la commande suivante :

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Installation de Linux

  1. Ouvrez un terminal avec les droits root ou sudo.
  2. 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

  1. 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).
  2. 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

  1. Connectez-vous à l'interface utilisateur Web AD360.
  2. Accédez à Admin > Administration > Intégration SIEM.
  3. Cliquez sur le lien Configurer maintenant à côté du composant ADSelfService.
  4. 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.
  5. 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.