ManageEngine ADAudit Plus-Protokolle erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie ManageEngine ADAudit Plus-Protokolle mithilfe eines Bindplane-Agents in Google Security Operations aufnehmen. Der Parser verarbeitet Logs aus ADAudit Plus und konvertiert sie in das UDM-Format. Dabei werden Grok-Muster verwendet, um Felder sowohl aus SYSLOG (CEF) als auch aus Nachrichten im Schlüssel/Wert-Format zu extrahieren. Diese werden dann anhand von Ereignistypen, die aus Benachrichtigungs- und Berichtsprofilen abgeleitet werden, UDM-Feldern zugeordnet und die Daten mit zusätzlichem Kontext angereichert. Der Parser verarbeitet auch bestimmte Szenarien wie Anmeldefehle, Nutzeränderungen und Dateiänderungen und passt die UDM-Zuordnung entsprechend an.

Hinweise

  • Sie benötigen eine Google SecOps-Instanz.
  • Sie müssen Windows 2016 oder höher oder einen Linux-Host mit systemd verwenden.
  • Wenn die Ausführung hinter einem Proxy erfolgt, müssen die Firewallports geöffnet sein.
  • Sie benötigen Berechtigungen für ManageEngine ADAudit.

Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen

  1. Melden Sie sich in der Google SecOps Console an.
  2. Gehen Sie zu SIEM-Einstellungen > Erfassungsagenten.
  3. Lade die Datei zur Authentifizierung der Datenaufnahme herunter. Speichern Sie die Datei sicher auf dem System, auf dem BindPlane installiert wird.

Google SecOps-Kundennummer abrufen

  1. Melden Sie sich in der Google SecOps Console an.
  2. Gehen Sie zu SIEM-Einstellungen > Profil.
  3. Kopieren und speichern Sie die Kundennummer aus dem Bereich Organisationsdetails.

Bindplane-Agent installieren

Windows-Installation

  1. Öffnen Sie die Eingabeaufforderung oder die PowerShell als Administrator.
  2. Führen Sie dazu diesen Befehl aus:

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

Linux-Installation

  1. Öffnen Sie ein Terminal mit Root- oder Sudo-Berechtigungen.
  2. Führen Sie dazu diesen Befehl aus:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

Weitere Installationsressourcen

Bindplane-Agent so konfigurieren, dass er Syslog-Daten aufnimmt und an Google SecOps sendet

  1. Rufen Sie die Konfigurationsdatei auf:

    1. Suchen Sie die Datei config.yaml. Normalerweise befindet es sich unter Linux im Verzeichnis /etc/bindplane-agent/ oder unter Windows im Installationsverzeichnis.
    2. Öffnen Sie die Datei mit einem Texteditor, z. B. nano, vi oder Notepad.
  2. Bearbeiten Sie die Datei config.yamlso:

    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: '/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: ADAUDIT_PLUS
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Ersetzen Sie den Port und die IP-Adresse nach Bedarf in Ihrer Infrastruktur.

  4. Ersetzen Sie <customer_id> durch die tatsächliche Kundennummer.

  5. Aktualisieren Sie /path/to/ingestion-authentication-file.json im Abschnitt Authentifizierungsdatei für die Datenaufnahme von Google SecOps abrufen auf den Pfad, unter dem die Authentifizierungsdatei gespeichert wurde.

Starten Sie den Bindplane-Agent neu, um die Änderungen anzuwenden

  • Führen Sie den folgenden Befehl aus, um den Bindplane-Agenten unter Linux neu zu starten:

    sudo systemctl restart bindplane-agent
    
  • Sie können den Bindplane-Agenten unter Windows entweder über die Dienste-Konsole oder mit dem folgenden Befehl neu starten:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Syslog für ManageEngine ADAudit Plus konfigurieren

  1. Melden Sie sich in der Web-Benutzeroberfläche von ManageEngine ADAudit Plus an.
  2. Gehen Sie zu Verwaltung > Konfiguration > SIEM-Integration.
  3. Wählen Sie Aktivieren aus, um die ADAudit Plus-Protokolle zu senden.
  4. Wählen Sie das Format ArcSight (CEF) aus.
  5. Geben Sie die folgenden Konfigurationsdetails an:
    • IP-Adresse: IP-Adresse des Bindplane-Agents.
    • Port: Bindebene-Portnummer, z. B. 514 für UDP.
    • Zieltyp: Wähle UDP aus. Je nach Bindplane-Agentkonfiguration kannst du auch TCP auswählen.
  6. Klicken Sie auf Speichern.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
ACCOUNT_DOMAIN principal.administrative_domain Dem UDM-Feld wird der Wert ACCOUNT_DOMAIN aus dem Rohprotokoll zugewiesen.
ACCOUNT_NAME principal.user.userid Dem UDM-Feld wird der Wert ACCOUNT_NAME aus dem Rohprotokoll zugewiesen.
ALERT_PROFILE security_result.summary Dem UDM-Feld wird der Wert ALERT_PROFILE aus dem Rohprotokoll zugewiesen.
APPLICATION_NAME target.resource.name Dem UDM-Feld wird der Wert APPLICATION_NAME aus dem Rohprotokoll zugewiesen. Außerdem wird target.resource.resource_type auf TASK und has_target_resource auf „true“ gesetzt.
CALLER_DISPLAY_NAME target.user.user_display_name Dem UDM-Feld wird der Wert CALLER_DISPLAY_NAME aus dem Rohprotokoll zugewiesen.
CALLER_USER_NAME target.user.userid Dem UDM-Feld wird der Wert CALLER_USER_NAME aus dem Rohprotokoll zugewiesen.
CALLER_USER_SID target.group.windows_sid Der Wert CALLER_USER_SID aus dem Rohprotokoll wird diesem UDM-Feld zugewiesen, nachdem die Zeichen [%,{,}] entfernt wurden. Dies geschieht nur, wenn der Wert mit einem Windows-SID-Muster übereinstimmt.
Category metadata.product_event_type Dem UDM-Feld wird der Wert Category aus dem Rohprotokoll zugewiesen.
CLIENT_HOST_NAME target.hostname, target.asset.hostname Diesen UDM-Feldern wird der Wert CLIENT_HOST_NAME aus dem Rohprotokoll zugewiesen.
CLIENT_IP_ADDRESS target.ip, target.asset.ip Der Wert von CLIENT_IP_ADDRESS aus dem Rohprotokoll wird diesen UDM-Feldern zugewiesen, nachdem überprüft wurde, ob es sich um eine gültige IP-Adresse handelt.
CLIENT_PORT target.port Der Wert von CLIENT_PORT aus dem Rohprotokoll wird diesem UDM-Feld zugewiesen, nachdem es in eine Ganzzahl umgewandelt wurde.
DOMAIN target.administrative_domain Dem UDM-Feld wird der Wert DOMAIN aus dem Rohprotokoll zugewiesen. Dieser Wert kann später durch ACCOUNT_DOMAIN überschrieben werden, falls vorhanden.
FILE_LOCATION target.file.full_path Dem UDM-Feld wird der Wert FILE_LOCATION aus dem Rohprotokoll zugewiesen.
FILE_NAME target.file.full_path Wenn FILE_LOCATION nicht vorhanden ist, wird diesem UDM-Feld der Wert FILE_NAME aus dem Rohprotokoll zugewiesen.
FORMAT_MESSAGE security_result.description Dem UDM-Feld wird der Wert FORMAT_MESSAGE aus dem Rohprotokoll zugewiesen. Teile dieses Felds können zum Ausfüllen anderer UDM-Felder verwendet und dann aus der Beschreibung entfernt werden.
IP principal.ip, principal.asset.ip Der Wert von IP aus dem Rohprotokoll wird diesen UDM-Feldern zugewiesen, nachdem überprüft wurde, ob es sich um eine gültige IP-Adresse handelt.
loggerHost intermediary.hostname, intermediary.asset.hostname Der Wert von loggerHost, der aus dem Nachrichtenfeld des Rohlogs extrahiert wurde, wird diesen UDM-Feldern zugewiesen.
login_name target.user.userid oder target.user.email_addresses oder target.user.user_display_name Wenn der Wert @ enthält, wird er als E-Mail-Adresse behandelt. Wenn er Leerzeichen enthält, wird er als Anzeigename behandelt. Andernfalls wird sie als User-ID behandelt. Außerdem wird event_type auf USER_LOGIN, extensions.auth.type auf MACHINE und extensions.auth.mechanism auf USERNAME_PASSWORD gesetzt.
RECORD_NUMBER principal.process.pid Dem UDM-Feld wird der Wert RECORD_NUMBER aus dem Rohprotokoll zugewiesen.
REPORT_PROFILE metadata.description Dem UDM-Feld wird der Wert REPORT_PROFILE aus dem Rohprotokoll zugewiesen.
SEVERITY security_result.severity Der Wert von SEVERITY bestimmt den Wert dieses UDM-Felds: „1“ entspricht „LOW“, „2“ entspricht „MEDIUM“ und „3“ entspricht „HIGH“. Außerdem wird is_significant auf „wahr“ gesetzt, wenn SEVERITY = 3 ist, andernfalls auf „falsch“.
SOURCE principal.hostname, principal.asset.hostname Der Wert von SOURCE aus dem Rohprotokoll wird diesen UDM-Feldern zugewiesen, kombiniert mit DOMAIN, falls SOURCE keinen Domainteil enthält. Außerdem wird has_principal_host auf „true“ gesetzt.
TIME_GENERATED metadata.event_timestamp.seconds Der Wert von TIME_GENERATED aus dem Rohprotokoll wird als Ereigniszeitstempel verwendet.
UNIQUE_ID metadata.product_log_id Dem UDM-Feld wird der Wert UNIQUE_ID aus dem Rohprotokoll zugewiesen.
USERNAME principal.user.userid Wenn ACCOUNT_NAME nicht vorhanden ist, wird diesem UDM-Feld der Wert USERNAME aus dem Rohprotokoll zugewiesen.
USER_OU_GUID metadata.product_log_id Der Wert von USER_OU_GUID aus dem Rohprotokoll wird nach dem Entfernen der geschweiften Klammern diesem UDM-Feld zugewiesen, wenn UNIQUE_ID nicht vorhanden ist.
access_mode security_result.detection_fields.value Der Wert access_mode aus dem Rohprotokoll wird diesem UDM-Feld zugewiesen. Der Schlüssel wird auf ACCESS_MODE festgelegt.
action_name security_result.description Dem UDM-Feld wird der Wert action_name aus dem Rohprotokoll zugewiesen.
domain_name principal.administrative_domain Dem UDM-Feld wird der Wert domain_name aus dem Rohprotokoll zugewiesen.
event.idm.is_alert event.idm.is_alert Legen Sie „wahr“ fest, wenn ALERT_PROFILE Alert oder User Account Locked Out ist oder mit Unusual Activity.*? übereinstimmt. Andernfalls auf „false“ setzen.
event.idm.is_significant event.idm.is_significant Wird auf „wahr“ gesetzt, wenn SEVERITY = 3 ist. Andernfalls auf „false“ setzen.
event.idm.read_only_udm.extensions.auth.mechanism event.idm.read_only_udm.extensions.auth.mechanism Wird auf USERNAME_PASSWORD gesetzt, wenn login_name vorhanden ist oder event_type = USER_LOGIN.
event.idm.read_only_udm.extensions.auth.type event.idm.read_only_udm.extensions.auth.type Wird auf MACHINE gesetzt, wenn login_name vorhanden ist oder event_type = USER_LOGIN.
event.idm.read_only_udm.metadata.event_type event.idm.read_only_udm.metadata.event_type Wird vom Parser anhand der Werte von ALERT_PROFILE, REPORT_PROFILE und FORMAT_MESSAGE bestimmt. Kann einen der folgenden Werte haben: USER_CHANGE_PERMISSIONS, USER_STATS, USER_LOGIN, USER_CHANGE_PASSWORD, SETTING_MODIFICATION, FILE_DELETION, FILE_MODIFICATION, STATUS_SHUTDOWN, SCHEDULED_TASK_CREATION, FILE_READ, NETWORK_CONNECTION, GENERIC_EVENT, USER_UNCATEGORIZED oder STATUS_UPDATE.
event.idm.read_only_udm.metadata.log_type event.idm.read_only_udm.metadata.log_type Immer auf ADAUDIT_PLUS gesetzt.
event.idm.read_only_udm.metadata.product_name event.idm.read_only_udm.metadata.product_name Immer auf ADAudit Plus gesetzt.
event.idm.read_only_udm.metadata.vendor_name event.idm.read_only_udm.metadata.vendor_name Immer auf Zoho Corporation gesetzt.
host principal.hostname, principal.asset.hostname Diesen UDM-Feldern wird der Wert host aus dem Rohprotokoll zugewiesen. Außerdem wird has_principal_host auf „true“ gesetzt.
intermediary.hostname, intermediary.asset.hostname intermediary.hostname, intermediary.asset.hostname Legen Sie den Wert auf loggerHost fest.
principalHost principal.hostname, principal.asset.hostname Der Wert principalHost aus dem Rohprotokoll wird diesen UDM-Feldern zugewiesen, nachdem geprüft wurde, ob es sich um eine IP-Adresse handelt. Außerdem wird has_principal_host auf „true“ gesetzt.
security_result.action security_result.action Legen Sie ALLOW fest, wenn outcome oder msg_data_2 Success enthält oder FORMAT_MESSAGE Status:Success enthält. Wird auf BLOCK gesetzt, wenn status denied, locked out, incorrect, does not meet oder Unable to validate enthält. Wird auf BLOCK gesetzt, wenn ALERT_PROFILE gleich Logon Failures for Admin Users ist.
security_result.category security_result.category Wird auf POLICY_VIOLATION gesetzt, wenn event_type gleich USER_STATS oder ALERT_PROFILE gleich Logon Failures for Admin Users ist.
security_result.rule_name security_result.rule_name Wird aus dem Feld FORMAT_MESSAGE extrahiert, wenn es Reason: enthält.
status security_result.summary Dem UDM-Feld wird der Wert status aus dem Rohprotokoll zugewiesen.
targetHost target.hostname, target.asset.hostname oder target.ip, target.asset.ip Der Wert targetHost aus dem Rohprotokoll wird diesen UDM-Feldern zugewiesen, nachdem geprüft wurde, ob es sich um eine IP-Adresse handelt.
targetUser target.user.userid Dem UDM-Feld wird der Wert targetUser aus dem Rohprotokoll zugewiesen.
_CNtargetUser target.user.user_display_name Dem UDM-Feld wird der Wert _CNtargetUser aus dem Rohprotokoll zugewiesen.
_user principal.user.userid oder target.user.userid Der Wert von _user aus dem Rohprotokoll wird principal.user.userid zugewiesen, es sei denn, event_type ist USER_CHANGE_PASSWORD. In diesem Fall wird er target.user.userid zugewiesen.

Änderungen

2025-02-19

Optimierung:

  • EVENT_NUMBER, REMARKS, EVENT_TYPE, ATTRIBUTES_NEW_VALUE, ATTRIBUTES_OLD_VALUE und OPERATION_TYPE wurden additional.fields zugeordnet.
  • EVENT_TYPE_TEXT wurde security_result.detection_fields zugeordnet.
  • ACCOUNT_NAME wurde principal.user.user_display_name zugeordnet.

2024-05-20

Optimierung:

  • Wenn der Wert des Felds outcome mit Success übereinstimmt, setzen Sie security_result.action auf ALLOW.
  • Wenn der Wert des Felds msg_data mit Success übereinstimmt, setzen Sie security_result.action auf ALLOW.
  • Es wurde ein Grok-Muster für msg_data hinzugefügt, um act, suid und reason zu extrahieren.
  • msg_data wurde security_result.description zugeordnet.
  • cs1, cs3, cs4, cs5, cn1, cn2 und cn3 wurden additional.fields zugeordnet.

2024-01-19

Optimierung:

  • Ein Grok-Muster wurde geändert, um nicht geparste Protokolle zu analysieren.
  • IP wurde principal.asset.ip zugeordnet.
  • _PrincipalIP wurde principal.asset.ip zugeordnet.
  • host wurde principal.asset.hostname zugeordnet.
  • principalHost wurde principal.asset.hostname zugeordnet.
  • SOURCE wurde principal.asset.hostname zugeordnet.
  • _TargetIP wurde target.asset.ip zugeordnet.
  • CLIENT_IP_ADDRESS wurde target.asset.hostname zugeordnet.
  • CLIENT_HOST_NAME wurde target.asset.hostname zugeordnet.
  • targetHost wurde target.asset.hostname zugeordnet.

2023-10-17

Fehlerkorrektur:

  • Es wurde eine IP-Prüfung vor der Zuordnung von IP zu principal.ip hinzugefügt.
  • Es wurde eine IP-Prüfung vor der Zuordnung von CLIENT_IP_ADDRESS zu target.ip hinzugefügt.
  • Es wurde eine Validierungsüberprüfung für ACCOUNT_SID vor der Zuordnung zu principal.group.windows_sid hinzugefügt.
  • Es wurde eine Validierungsüberprüfung für CALLER_USER_SID vor der Zuordnung zu target.group.windows_sid hinzugefügt.
  • Wenn principal vorhanden ist, legen Sie event_type auf STATUS_UPDATE fest.
  • Ein Grok-Muster wurde geändert, um file_path anhand des neuen Musters FORMAT_MESSAGE zu parsen.
  • Es wurde eine Prüfung für has_target_resource hinzugefügt, wenn event_type SCHEDULED_TASK_CREATION ist.

2023-03-17

Optimierung:

  • Unterstützte CEF-Format-Protokolle und die folgenden zugeordneten Felder:
  • IP wurde principal.ip zugeordnet.
  • LOGIN NAME wurde target.user.userid or target.user.email_addresses or target.user.user_display_name zugeordnet.
  • DOMAIN NAME wurde principal.administrative_domain zugeordnet.
  • HOST wurde principal.hostname zugeordnet.
  • ACCESS_MODE wurde security_result.detection_fields zugeordnet.
  • STATUS wurde security_result.summary zugeordnet.
  • Wenn STATUS = success ist, wird security_result.action = ALLOW zugeordnet. Wenn STATUS = denied or incorrect ist, wird security_result.action = BLOCK zugeordnet.

Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten