Windows Hyper-V-Logs erfassen
In diesem Dokument wird beschrieben, wie Sie Windows Hyper-V-Logs mit Bindplane in Google Security Operations aufnehmen.
Windows Hyper-V ist ein Microsoft-Hypervisor, der Protokolle für VM-Lebenszyklus-, Netzwerk-, Speicher- und Sicherheitsereignisse generiert. Der BindPlane-Agent erfasst exportierte Hyper-V-Ereignisprotokolldateien direkt aus dem lokalen Dateisystem.
Hinweis
Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:
- Eine Google SecOps-Instanz
- Windows Server 2016 oder höher mit Unterstützung für den
observiq-otel-collector-Dienst - Wenn Sie den Agent hinter einem Proxy ausführen, müssen die Firewallports gemäß den Anforderungen des Bindplane-Agents geöffnet sein.
- Privilegierter Zugriff auf den Windows Hyper-V-Host mit Administratorberechtigungen
Authentifizierungsdatei für die Google SecOps-Datenaufnahme abrufen
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie die SIEM-Einstellungen > Collection Agents auf.
Laden Sie die Datei für die Ingestion-Authentifizierung 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-Konsole an.
- Rufen Sie die SIEM-Einstellungen > Profile auf.
Kopieren und speichern Sie die Kunden-ID aus dem Bereich Organisationsdetails.
BindPlane-Agent installieren
Installieren Sie den Bindplane-Agent auf Ihrem Windows-Betriebssystem gemäß der folgenden Anleitung.
Fenstereinbau
- Ö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" /quietWarten Sie, bis die Installation abgeschlossen ist.
Überprüfen Sie die Installation mit folgendem Befehl:
sc query observiq-otel-collector
Der Dienst sollte als RUNNING (Wird ausgeführt) angezeigt werden.
Zusätzliche Installationsressourcen
Weitere Installationsoptionen und Informationen zur Fehlerbehebung finden Sie in der Installationsanleitung für den Bindplane-Agent.
BindPlane-Agenten zum Erfassen von Logs und Senden an Google SecOps konfigurieren
Konfigurationsdatei suchen
Windows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
Konfigurationsdatei bearbeiten
Ersetzen Sie den gesamten Inhalt von
config.yamldurch die folgende Konfiguration:receivers: filelog: include: - C:\HyperVLogs\*.evtx start_at: beginning exporters: chronicle/windows_hyperv: compression: gzip creds_file_path: 'C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: WINDOWS_HYPERV raw_log_field: body ingestion_labels: env: production service: pipelines: logs/hyperv_to_chronicle: receivers: - filelog exporters: - chronicle/windows_hyperv
Konfigurationsparameter
Ersetzen Sie die folgenden Platzhalter:
Empfängerkonfiguration:
filelog: Der Empfängertyp zum Erfassen von Logdateien vom Laufwerkinclude: Liste der zu überwachenden Dateipfade. Legen Sie hier den Speicherort fest, an den Sie Hyper-V-Ereignisprotokolle exportieren (z. B.C:\HyperVLogs\*.evtx).start_at: Aufbeginningsetzen, um vorhandene Logs zu lesen, oder aufend, um nur neue Einträge zu lesen
Exporter-Konfiguration:
windows_hyperv: Beschreibender Name für den Exportercreds_file_path: Vollständiger Pfad zur Datei für die Authentifizierung bei der Aufnahme:- Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Windows:
<customer_id>: Kunden-ID aus dem vorherigen Schrittendpoint: Regionale Endpunkt-URL:- USA:
malachiteingestion-pa.googleapis.com - Europa:
europe-malachiteingestion-pa.googleapis.com - Asien:
asia-southeast1-malachiteingestion-pa.googleapis.com - Eine vollständige Liste finden Sie unter Regionale Endpunkte.
- USA:
WINDOWS_HYPERV: Logtyp genau wie in Chronicleingestion_labels: Optionale Labels im YAML-Format (z. B.env: production)
Pipelinekonfiguration:
hyperv_to_chronicle: Aussagekräftiger Name für die Pipeline
Konfigurationsdatei speichern
- Speichern Sie die Datei nach der Bearbeitung:
- Windows: Klicken Sie auf Datei > Speichern.
Bindplane-Agent neu starten, um die Änderungen zu übernehmen
So starten Sie den Bindplane-Agent unter Windows neu:
Wählen Sie eine der folgenden Optionen aus:
- Eingabeaufforderung oder PowerShell als Administrator:
net stop observiq-otel-collector && net start observiq-otel-collector- Services Console:
- Drücken Sie
Win+R, geben Sieservices.mscein und drücken Sie die Eingabetaste. - Suchen Sie nach observIQ OpenTelemetry Collector.
- Klicken Sie mit der rechten Maustaste und wählen Sie Neu starten aus.
- Drücken Sie
Prüfen Sie, ob der Dienst ausgeführt wird:
sc query observiq-otel-collectorLogs auf Fehler prüfen:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
Windows Hyper-V-Logexport konfigurieren
Windows Hyper-V-Logs werden als Windows-Ereignisprotokolleinträge gespeichert. Sie müssen diese Logs in Dateien auf der Festplatte exportieren, damit der BindPlane-Agent sie erfassen kann.
Erstellen Sie ein Verzeichnis zum Speichern der exportierten Protokolldateien:
mkdir C:\HyperVLogsSo exportieren Sie Hyper-V-Ereignisprotokolle mit
wevtutil:wevtutil epl Microsoft-Windows-Hyper-V-VMMS-Admin C:\HyperVLogs\hyperv-vmms-admin.evtx wevtutil epl Microsoft-Windows-Hyper-V-Worker-Admin C:\HyperVLogs\hyperv-worker-admin.evtxBei Bedarf können Sie zusätzliche Hyper-V-Ereigniskanäle exportieren. Folgende Channels sind verfügbar:
Microsoft-Windows-Hyper-V-VMMS-Admin(Virtual Machine Management Service)Microsoft-Windows-Hyper-V-Worker-Admin(VM-Worker-Prozesse)Microsoft-Windows-Hyper-V-Hypervisor-Admin(Hypervisor-Ereignisse)Microsoft-Windows-Hyper-V-Config-Admin(Konfigurationsereignisse)
Optional: Regelmäßige Exporte mit PowerShell planen:
$action = New-ScheduledTaskAction -Execute "cmd.exe" -Argument '/c wevtutil epl Microsoft-Windows-Hyper-V-VMMS-Admin C:\HyperVLogs\hyperv-vmms-admin.evtx /ow:true && wevtutil epl Microsoft-Windows-Hyper-V-Worker-Admin C:\HyperVLogs\hyperv-worker-admin.evtx /ow:true' $trigger = New-ScheduledTaskTrigger -RepetitionInterval (New-TimeSpan -Hours 1) -Once -At (Get-Date) Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "ExportHyperVLogs" -Description "Export Hyper-V logs for Bindplane agent"Prüfen Sie, ob die exportierten Logdateien unter `C:\HyperVLogs` erstellt werden.
Achten Sie darauf, dass der Bindplane-Agent-Pfad
includeinconfig.yamlmit dem Exportverzeichnis übereinstimmt.
UDM-Zuordnungstabelle
| Logfeld | UDM-Zuordnung | Logik |
|---|---|---|
| channel, event_data.data, event_id.id, event_id.qualifiers, keywords, task, SeverityValue, OpcodeValue, EventID, ProviderGuid, ActivityId, Version, RecordNumber, ProcessID, ThreadID, Channel, AccountName, UserID, AccountType, Opcode, SourceModuleName, SourceModuleType | additional.fields | Mit Labels zusammengeführt, die aus diesen Feldern erstellt wurden |
| system_time, EventReceivedTime | metadata.collected_timestamp | Geparsed aus „system_time“ mit Formaten oder aus „EventReceivedTime“ als UNIX oder UNIX_MS |
| Nachricht | metadata.description | Wert direkt kopiert |
| EventTime, EventReceivedTime | metadata.event_timestamp | Geparsed aus EventTime als UNIX oder UNIX_MS oder aus EventReceivedTime als UNIX oder UNIX_MS |
| metadata.event_type | Auf „PROCESS_LAUNCH“ setzen, wenn has_principal und has_target_process, andernfalls auf „USER_LOGIN“, wenn has_principal und has_target und nicht has_target_process, andernfalls auf „STATUS_UPDATE“, wenn has_principal und nicht has_target, andernfalls auf „USER_RESOURCE_ACCESS“, wenn has_target, andernfalls auf „GENERIC_EVENT“ | |
| provider.event_source | metadata.product_event_type | Wert direkt kopiert |
| record_id, RecordNumber | metadata.product_log_id | Wird in einen String aus „record_id“ konvertiert, falls nicht leer, oder aus „RecordNumber“, falls nicht leer |
| provider.name, SourceName | metadata.product_name | Wert aus „provider.name“, falls nicht leer, andernfalls „SourceName“, falls nicht leer, andernfalls „Microsoft-Windows-Hyper-V“ |
| Version | metadata.product_version | In String konvertiert |
| Nachricht | network.session_duration.nanos | Aus Nachricht mit Grok-Muster extrahiert, in Ganzzahl konvertiert |
| Domain | principal.administrative_domain | Wert direkt kopiert |
| Computer | principal.asset.hostname | Wert direkt kopiert |
| Computer, Hostname | principal.hostname | Wert vom Computer, falls nicht leer, andernfalls vom Hostnamen, falls nicht leer |
| AccountName | principal.user.role_description | Wert direkt kopiert |
| AccountType | principal.user.role_name | Wert direkt kopiert |
| event_data.name | principal.user.user_display_name | Wert direkt kopiert |
| security.user_id, UserID | principal.user.userid | Wert aus „security.user_id“, falls nicht leer, andernfalls aus „UserID“, falls nicht leer |
| Nachricht | security_result.description | Aus Nachricht mit Grok-Muster extrahiert |
| message, ActivityId | security_result.detection_fields | Zusammengeführt mit dem Label aus „nt_status“, das mit „grok“ aus der Nachricht extrahiert wurde, und aus „ActivityId“ |
| level, Severity | security_result.severity | Wird basierend auf dem Level-Wert festgelegt (1–3 INFORMATIONAL, 4 ERROR, 5 CRITICAL, andernfalls UNKNOWN_SEVERITY) oder basierend auf dem Schweregrad (INFO INFORMATIONAL, WARN MEDIUM, ERROR ERROR). |
| EventType | security_result.severity_details | Wert direkt kopiert |
| execution.process_id, ProcessID | target.process.pid | Wird in einen String konvertiert aus „execution.process_id“, falls nicht leer, oder aus „ProcessID“, falls nicht leer |
| execution.thread_id, ThreadID | target.process.product_specific_process_id | Wird auf „ThreadID: |
| provider.guid, ProviderGuid | target.resource.id | Wert aus „provider.guid“ nach dem Entfernen von { } oder aus „ProviderGuid“ nach dem Entfernen von { } |
| Nachricht | target.resource.product_object_id | Aus Nachricht mit Grok-Muster extrahiert |
| provider.guid | target.resource.type | Wird auf „Hyper-V VmSwitch“ gesetzt, wenn der Wert nicht leer ist |
Änderungsprotokoll
Änderungsprotokoll für diesen Parser ansehen
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten