ManageEngine ADAudit Plus-Logs erfassen
In diesem Dokument wird beschrieben, wie Sie ManageEngine ADAudit Plus-Logs mit einem Bindplane-Agenten in Google Security Operations aufnehmen. Der Parser verarbeitet Logs von ADAudit Plus und konvertiert sie in das UDM-Format. Es werden Grok-Muster verwendet, um Felder aus SYSLOG- (CEF) und Schlüssel/Wert-formatierten Nachrichten zu extrahieren. Diese werden dann anhand von Ereignistypen, die aus Warnungs- und Berichtsprofilen abgeleitet werden, UDM-Feldern zugeordnet. Außerdem werden die Daten mit zusätzlichem Kontext angereichert. Der Parser verarbeitet auch bestimmte Szenarien wie fehlgeschlagene Anmeldungen, Nutzeränderungen und Dateiänderungen und passt die UDM-Zuordnung entsprechend an.
Hinweis
- Prüfen Sie, ob Sie eine Google SecOps-Instanz haben.
- Sie müssen Windows 2016 oder höher oder einen Linux-Host mit
systemdverwenden. - Wenn Sie hinter einem Proxy arbeiten, müssen die Firewallports geöffnet sein.
- Sie benötigen privilegierten Zugriff auf ManageEngine ADAudit.
Google SecOps-Anmeldedaten für den Bindplane-Agenten abrufen
Wählen Sie eine der folgenden Methoden aus, um den Bindplane-Agenten bei Google SecOps zu authentifizieren:
- Neue Deployments: Verwenden Sie die Chronicle API (Option 1).
- Alte Bereitstellungen: Verwenden Sie die Datei für die Authentifizierung bei der Aufnahme (Option 2) weiterhin, bis die Ingestion API am 20. Juli 2027 eingestellt wird.
Option 1: Dienstkonto für die Chronicle API erstellen (empfohlen)
- Melden Sie sich in der Google Cloud -Konsole an und wählen Sie das Google Cloud -Projekt aus, das mit Ihrer Google SecOps-Instanz verknüpft ist.
- Rufen Sie IAM und Verwaltung > Dienstkonten auf.
- Klicken Sie auf Dienstkonto erstellen.
- Geben Sie die folgenden Konfigurationsdetails an:
- Name des Dienstkontos: Geben Sie einen Namen für das Konto ein, z. B.
bindplane-ingest. - Dienstkontobeschreibung: Geben Sie eine Beschreibung ein, z. B.
Bindplane agent log ingestion.
- Name des Dienstkontos: Geben Sie einen Namen für das Konto ein, z. B.
- Klicken Sie auf Erstellen und fortfahren.
- Klicken Sie im Abschnitt Diesem Dienstkonto Zugriff auf das Projekt erteilen auf Rolle auswählen und wählen Sie Chronicle Editor aus.
- Klicken Sie auf Weiter und dann auf Fertig.
- Klicken Sie auf das erstellte Dienstkonto und rufen Sie dann den Tab Schlüssel auf.
- Klicken Sie auf Schlüssel hinzufügen > Neuen Schlüssel erstellen.
- Wählen Sie JSON aus und klicken Sie auf Erstellen. Die Schlüsseldatei wird auf Ihren Computer heruntergeladen.
- Speichern Sie die Schlüsseldatei als
ingestion-auth.jsonim Bindplane-Collector-Verzeichnis (/opt/observiq-otel-collector/ingestion-auth.jsonunter Linux oderC:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.jsonunter Windows) oder aktualisieren Siecreds_file_pathinconfig.yaml, sodass der Pfad mit dem Pfad übereinstimmt, unter dem Sie die Datei speichern. - Rufen Sie IAM und Verwaltung > Einstellungen auf und kopieren Sie die Projektnummer. Sie benötigen sie für die Exporter-Konfiguration.
Option 2: Authentifizierungsdatei für die Datenaufnahme herunterladen (Legacy)
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie die SIEM-Einstellungen > Collection Agents auf.
- Laden Sie die Authentifizierungsdatei für die Aufnahme herunter.
- Speichern Sie die Datei sicher auf dem System, auf dem der Bindplane-Agent installiert wird.
Google SecOps-Kundennummer abrufen
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie die SIEM-Einstellungen > Profil auf.
- Kopieren und speichern Sie die Kundennummer aus dem Bereich Organization Details (Organisationsdetails).
Bindplane-Agent installieren
Windows-Installation
- Öffnen Sie die Eingabeaufforderung oder 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
Zusätzliche Installationsressourcen
- Weitere Installationsoptionen finden Sie in diesem Installationsleitfaden.
Bindplane-Agent so konfigurieren, dass Syslog-Daten aufgenommen und an Google SecOps gesendet werden
Greifen Sie auf die Konfigurationsdatei zu:
- Suchen Sie die Datei
config.yaml. In der Regel befindet sie sich unter Linux im Verzeichnis/opt/observiq-otel-collector/oder unter Windows im Installationsverzeichnis. - Öffnen Sie die Datei mit einem Texteditor (z. B.
nano,vioder Notepad).
- Suchen Sie die Datei
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: protocol: https # Region of your instance, for example us, europe, asia-southeast1 location: <LOCATION> # Project number of the Google Cloud project linked to the instance project: '<PROJECT_NUMBER>' 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: chronicle.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_labelsErsetzen Sie den Port und die IP-Adresse nach Bedarf in Ihrer Infrastruktur.
Ersetzen Sie
<LOCATION>durch die Region Ihrer Google SecOps-Instanz (z. B.us,europeoderasia-southeast1). Der Exporter stellt diesem Wertchronicle.googleapis.comvoran.Ersetzen Sie
<PROJECT_NUMBER>durch die Projektnummer aus IAM und Verwaltung > Einstellungen.Ersetzen Sie
<customer_id>durch die tatsächliche Kunden-ID.Aktualisieren Sie
/path/to/ingestion-authentication-file.jsonauf den Pfad, unter dem die Schlüsseldatei des Dienstkontos (Option 1) im Abschnitt Google SecOps-Anmeldedaten für den Bindplane-Agenten abrufen gespeichert wurde.
Legacy-Ingestion-API-Exporter
Wenn Sie die Authentifizierungsdatei für die Datenaufnahme aus Option 2 verwenden, ersetzen Sie den Block
exportersdurch Folgendes. Legen Siecredsauf den Pfad zur Datei für die Authentifizierung bei der Aufnahme fest. Wenn sich Ihre Instanz außerhalb der USA befindet, ersetzen Siemalachiteingestion-pa.googleapis.comdurch Ihren regionalen Endpunkt (z. B.europe-malachiteingestion-pa.googleapis.com).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
Starten Sie den Bindplane-Agent neu, um die Änderungen zu übernehmen.
Führen Sie den folgenden Befehl aus, um den Bindplane-Agent unter Linux neu zu starten:
sudo systemctl restart bindplane-agentWenn Sie den Bindplane-Agenten unter Windows neu starten möchten, können Sie entweder die Konsole Dienste verwenden oder den folgenden Befehl eingeben:
net stop BindPlaneAgent && net start BindPlaneAgent
ManageEngine ADAudit Plus-Syslog konfigurieren
- Melden Sie sich in der Web-UI von ManageEngine ADAudit Plus an.
- Rufen Sie Verwaltung > Konfiguration > SIEM-Integration auf.
- 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: Bindplane-Portnummer, z. B.
514für UDP. - Zieltyp: Wählen Sie UDP aus. Je nach Konfiguration des Bindplane-Agents können Sie auch TCP auswählen.
- Klicken Sie auf Speichern.
UDM-Zuordnungstabelle
| Logfeld | UDM-Zuordnung | Logik |
|---|---|---|
ACCOUNT_DOMAIN |
principal.administrative_domain |
Der Wert von ACCOUNT_DOMAIN aus dem Rohlog wird diesem UDM-Feld zugewiesen. |
ACCOUNT_NAME |
principal.user.userid |
Der Wert von ACCOUNT_NAME aus dem Rohlog wird diesem UDM-Feld zugewiesen. |
ALERT_PROFILE |
security_result.summary |
Der Wert von ALERT_PROFILE aus dem Rohlog wird diesem UDM-Feld zugewiesen. |
APPLICATION_NAME |
target.resource.name |
Der Wert von APPLICATION_NAME aus dem Rohlog wird diesem UDM-Feld zugewiesen. Außerdem werden target.resource.resource_type auf TASK und has_target_resource auf „true“ gesetzt. |
CALLER_DISPLAY_NAME |
target.user.user_display_name |
Der Wert von CALLER_DISPLAY_NAME aus dem Rohlog wird diesem UDM-Feld zugewiesen. |
CALLER_USER_NAME |
target.user.userid |
Der Wert von CALLER_USER_NAME aus dem Rohlog wird diesem UDM-Feld zugewiesen. |
CALLER_USER_SID |
target.group.windows_sid |
Der Wert von CALLER_USER_SID aus dem Rohlog 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 |
Der Wert von Category aus dem Rohlog wird diesem UDM-Feld zugewiesen. |
CLIENT_HOST_NAME |
target.hostname, target.asset.hostname |
Der Wert von CLIENT_HOST_NAME aus dem Rohlog wird diesen UDM-Feldern zugewiesen. |
CLIENT_IP_ADDRESS |
target.ip, target.asset.ip |
Der Wert von CLIENT_IP_ADDRESS aus dem Rohlog wird diesen UDM-Feldern zugewiesen, nachdem geprüft wurde, ob es sich um eine gültige IP-Adresse handelt. |
CLIENT_PORT |
target.port |
Der Wert von CLIENT_PORT aus dem Rohlog wird diesem UDM-Feld zugewiesen, nachdem er in eine Ganzzahl konvertiert wurde. |
DOMAIN |
target.administrative_domain |
Der Wert von DOMAIN aus dem Rohlog wird diesem UDM-Feld zugewiesen. Dieser Wert wird möglicherweise später durch ACCOUNT_DOMAIN überschrieben, falls vorhanden. |
FILE_LOCATION |
target.file.full_path |
Der Wert von FILE_LOCATION aus dem Rohlog wird diesem UDM-Feld zugewiesen. |
FILE_NAME |
target.file.full_path |
Der Wert von FILE_NAME aus dem Rohlog wird diesem UDM-Feld zugewiesen, wenn FILE_LOCATION nicht vorhanden ist. |
FORMAT_MESSAGE |
security_result.description |
Der Wert von FORMAT_MESSAGE aus dem Rohlog wird diesem UDM-Feld zugewiesen. Teile dieses Felds können verwendet werden, um andere UDM-Felder zu füllen, und werden dann aus der Beschreibung entfernt. |
IP |
principal.ip, principal.asset.ip |
Der Wert von IP aus dem Rohlog wird diesen UDM-Feldern zugewiesen, nachdem geprü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 er als Nutzer-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 |
Der Wert von RECORD_NUMBER aus dem Rohlog wird diesem UDM-Feld zugewiesen. |
REPORT_PROFILE |
metadata.description |
Der Wert von REPORT_PROFILE aus dem Rohlog wird diesem UDM-Feld zugewiesen. |
SEVERITY |
security_result.severity |
Der Wert von SEVERITY bestimmt den Wert dieses UDM-Felds: 1 wird LOW zugeordnet, 2 wird MEDIUM zugeordnet und 3 wird HIGH zugeordnet. |
SOURCE |
principal.hostname, principal.asset.hostname |
Der Wert von SOURCE aus dem Rohlog wird mit DOMAIN kombiniert, wenn SOURCE keinen Domainteil enthält, und diesen UDM-Feldern zugewiesen. Legt auch has_principal_host auf „true“ fest. |
TIME_GENERATED |
metadata.event_timestamp.seconds |
Der Wert von TIME_GENERATED aus dem Rohlog wird als Ereigniszeitstempel verwendet. |
UNIQUE_ID |
metadata.product_log_id |
Der Wert von UNIQUE_ID aus dem Rohlog wird diesem UDM-Feld zugewiesen. |
USERNAME |
principal.user.userid |
Der Wert von USERNAME aus dem Rohlog wird diesem UDM-Feld zugewiesen, wenn ACCOUNT_NAME nicht vorhanden ist. |
USER_OU_GUID |
metadata.product_log_id |
Der Wert von USER_OU_GUID aus dem Rohlog 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 von access_mode aus dem Rohlog wird diesem UDM-Feld zugewiesen, wobei der Schlüssel auf ACCESS_MODE festgelegt ist. |
action_name |
security_result.description |
Der Wert von action_name aus dem Rohlog wird diesem UDM-Feld zugewiesen. |
domain_name |
principal.administrative_domain |
Der Wert von domain_name aus dem Rohlog wird diesem UDM-Feld zugewiesen. |
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 wenn event_type gleich USER_LOGIN ist. |
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 gleich USER_LOGIN ist. |
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 einer von mehreren Werten sein, darunter 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 |
Der Wert von host aus dem Rohlog wird diesen UDM-Feldern 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 von principalHost aus dem Rohlog 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 |
Wird auf ALLOW gesetzt, wenn outcome oder msg_data_2 Success enthält oder wenn FORMAT_MESSAGE Status:Success enthält. Legen Sie auf BLOCK fest, 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 |
Der Wert von status aus dem Rohlog wird diesem UDM-Feld zugewiesen. |
targetHost |
target.hostname, target.asset.hostname oder target.ip, target.asset.ip |
Der Wert von targetHost aus dem Rohlog wird diesen UDM-Feldern zugewiesen, nachdem geprüft wurde, ob es sich um eine IP-Adresse handelt. |
targetUser |
target.user.userid |
Der Wert von targetUser aus dem Rohlog wird diesem UDM-Feld zugewiesen. |
_CNtargetUser |
target.user.user_display_name |
Der Wert von _CNtargetUser aus dem Rohlog wird diesem UDM-Feld zugewiesen. |
_user |
principal.user.userid oder target.user.userid |
Der Wert von _user aus dem Rohlog wird principal.user.userid zugewiesen, sofern event_type nicht USER_CHANGE_PASSWORD ist. In diesem Fall wird er target.user.userid zugewiesen. |
Änderungsprotokoll
Änderungsprotokoll für diesen Parser ansehen
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten