ManageEngine ADAudit Plus-Protokolle erfassen
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
- Melden Sie sich in der Google SecOps Console an.
- Gehen Sie zu SIEM-Einstellungen > Erfassungsagenten.
- 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
- Melden Sie sich in der Google SecOps Console an.
- Gehen Sie zu SIEM-Einstellungen > Profil.
- Kopieren und speichern Sie die Kundennummer aus dem Bereich Organisationsdetails.
Bindplane-Agent installieren
Windows-Installation
- Öffnen Sie die Eingabeaufforderung oder die PowerShell als Administrator.
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
- Öffnen Sie ein Terminal mit Root- oder Sudo-Berechtigungen.
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
- Weitere Installationsoptionen finden Sie in diesem Installationsleitfaden.
Bindplane-Agent so konfigurieren, dass er Syslog-Daten aufnimmt und an Google SecOps sendet
Rufen Sie die Konfigurationsdatei auf:
- Suchen Sie die Datei
config.yaml
. Normalerweise befindet es sich unter Linux im Verzeichnis/etc/bindplane-agent/
oder unter Windows im Installationsverzeichnis. - Öffnen Sie die Datei mit einem Texteditor, z. B.
nano
,vi
oder Notepad.
- Suchen Sie die Datei
Bearbeiten Sie die Datei
config.yaml
so: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
Ersetzen Sie den Port und die IP-Adresse nach Bedarf in Ihrer Infrastruktur.
Ersetzen Sie
<customer_id>
durch die tatsächliche Kundennummer.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
- Melden Sie sich in der Web-Benutzeroberfläche von ManageEngine ADAudit Plus an.
- Gehen Sie zu Verwaltung > Konfiguration > SIEM-Integration.
- Wählen Sie Aktivieren aus, um die ADAudit Plus-Protokolle zu senden.
- Wählen Sie das Format ArcSight (CEF) aus.
- 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.
- 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
undOPERATION_TYPE
wurdenadditional.fields
zugeordnet.EVENT_TYPE_TEXT
wurdesecurity_result.detection_fields
zugeordnet.ACCOUNT_NAME
wurdeprincipal.user.user_display_name
zugeordnet.
2024-05-20
Optimierung:
- Wenn der Wert des Felds
outcome
mitSuccess
übereinstimmt, setzen Siesecurity_result.action
aufALLOW
. - Wenn der Wert des Felds
msg_data
mitSuccess
übereinstimmt, setzen Siesecurity_result.action
aufALLOW
. - Es wurde ein Grok-Muster für
msg_data
hinzugefügt, umact
,suid
undreason
zu extrahieren. msg_data
wurdesecurity_result.description
zugeordnet.cs1
,cs3
,cs4
,cs5
,cn1
,cn2
undcn3
wurdenadditional.fields
zugeordnet.
2024-01-19
Optimierung:
- Ein Grok-Muster wurde geändert, um nicht geparste Protokolle zu analysieren.
IP
wurdeprincipal.asset.ip
zugeordnet._PrincipalIP
wurdeprincipal.asset.ip
zugeordnet.host
wurdeprincipal.asset.hostname
zugeordnet.principalHost
wurdeprincipal.asset.hostname
zugeordnet.SOURCE
wurdeprincipal.asset.hostname
zugeordnet._TargetIP
wurdetarget.asset.ip
zugeordnet.CLIENT_IP_ADDRESS
wurdetarget.asset.hostname
zugeordnet.CLIENT_HOST_NAME
wurdetarget.asset.hostname
zugeordnet.targetHost
wurdetarget.asset.hostname
zugeordnet.
2023-10-17
Fehlerkorrektur:
- Es wurde eine IP-Prüfung vor der Zuordnung von
IP
zuprincipal.ip
hinzugefügt. - Es wurde eine IP-Prüfung vor der Zuordnung von
CLIENT_IP_ADDRESS
zutarget.ip
hinzugefügt. - Es wurde eine Validierungsüberprüfung für
ACCOUNT_SID
vor der Zuordnung zuprincipal.group.windows_sid
hinzugefügt. - Es wurde eine Validierungsüberprüfung für
CALLER_USER_SID
vor der Zuordnung zutarget.group.windows_sid
hinzugefügt. - Wenn
principal
vorhanden ist, legen Sieevent_type
aufSTATUS_UPDATE
fest. - Ein Grok-Muster wurde geändert, um
file_path
anhand des neuen MustersFORMAT_MESSAGE
zu parsen. - Es wurde eine Prüfung für
has_target_resource
hinzugefügt, wennevent_type
SCHEDULED_TASK_CREATION
ist.
2023-03-17
Optimierung:
- Unterstützte CEF-Format-Protokolle und die folgenden zugeordneten Felder:
IP
wurdeprincipal.ip
zugeordnet.LOGIN NAME
wurdetarget.user.userid or target.user.email_addresses or target.user.user_display_name
zugeordnet.DOMAIN NAME
wurdeprincipal.administrative_domain
zugeordnet.HOST
wurdeprincipal.hostname
zugeordnet.ACCESS_MODE
wurdesecurity_result.detection_fields
zugeordnet.STATUS
wurdesecurity_result.summary
zugeordnet.- Wenn
STATUS
=success
ist, wirdsecurity_result.action
=ALLOW
zugeordnet. WennSTATUS
=denied or incorrect
ist, wirdsecurity_result.action
=BLOCK
zugeordnet.
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten