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 Logs zu VM-Lebenszyklus-, Netzwerk-, Speicher- und Sicherheitsereignissen 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 Dienst
observiq-otel-collector - Wenn Sie einen Proxy verwenden, prüfen Sie, ob die Firewallports gemäß den Anforderungen des Bindplane-Agents geöffnet sind.
- Privilegierter Zugriff auf den Windows Hyper-V-Host mit Administratorberechtigungen
Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie die SIEM-Einstellungen > Erfassungs-Agents auf.
Laden Sie die Authentifizierungsdatei für die Aufnahme 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 > Profil auf.
Kopieren und speichern Sie die Kundennummer aus dem Bereich Organisationsdetails.
Bindplane-Agent installieren
Installieren Sie den Bindplane-Agent auf Ihrem Windows-Betriebssystem gemäß der folgenden Anleitung.
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" /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 angezeigt werden.
Weitere Installationsressourcen
Weitere Installationsoptionen und Informationen zur Fehlerbehebung finden Sie im Installationsleitfaden für den Bindplane-Agent.
Bindplane-Agent so konfigurieren, dass Logs erfasst und an Google SecOps gesendet werden
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 von der Festplatteinclude: Liste der zu überwachenden Dateipfade. Legen Sie hier den Speicherort fest, an dem Sie Hyper-V-Ereignisprotokolle exportieren (z. B.C:\HyperVLogs\*.evtx).start_at: Legen Siebeginningfest, um vorhandene Logs zu lesen, oderend, um nur neue Einträge zu lesen.
Exporterkonfiguration :
windows_hyperv: Beschreibender Name für den Exportercreds_file_path: Vollständiger Pfad zur Authentifizierungsdatei für die Aufnahme:- Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Windows:
<customer_id>: Kundennummer 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 - Die vollständige Liste finden Sie unter Regionale Endpunkte.
- USA:
WINDOWS_HYPERV: Logtyp genau so, wie er in Chronicle angezeigt wirdingestion_labels: Optionale Labels im YAML-Format (z. B.env: production)
Pipelinekonfiguration :
hyperv_to_chronicle: Beschreibender 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- Dienstkonsole:
- 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-collectorPrüfen Sie die Logs auf Fehler:
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 Protokolle in Dateien auf der Festplatte exportieren, damit der Bindplane-Agent sie erfassen kann.
Erstellen Sie ein Verzeichnis zum Speichern der exportierten Logdateien:
mkdir C:\HyperVLogsExportieren 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.evtxSie können bei Bedarf weitere Hyper-V-Ereigniskanäle exportieren. Verfügbare Kanäle sind:
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 Pfad
includedes Bindplane-Agents inconfig.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 | Aus „system_time“ mit Formaten oder aus „EventReceivedTime“ als UNIX oder UNIX_MS geparst |
| Nachricht | metadata.description | Wert direkt kopiert |
| EventTime, EventReceivedTime | metadata.event_timestamp | Aus „EventTime“ als UNIX oder UNIX_MS oder aus „EventReceivedTime“ als UNIX oder UNIX_MS geparst |
| metadata.event_type | Auf „PROCESS_LAUNCH“ festgelegt, wenn „has_principal“ und „has_target_process“ vorhanden sind. Andernfalls auf „USER_LOGIN“, wenn „has_principal“ und „has_target“ vorhanden sind, aber nicht „has_target_process“. Andernfalls auf „STATUS_UPDATE“, wenn „has_principal“ vorhanden ist, aber nicht „has_target“. Andernfalls auf „USER_RESOURCE_ACCESS“, wenn „has_target“ vorhanden ist. Andernfalls auf „GENERIC_EVENT“. | |
| provider.event_source | metadata.product_event_type | Wert direkt kopiert |
| record_id, RecordNumber | metadata.product_log_id | In einen String aus „record_id“ konvertiert, wenn nicht leer, oder aus „RecordNumber“, wenn nicht leer |
| provider.name, SourceName | metadata.product_name | Wert aus „provider.name“, wenn nicht leer, andernfalls aus „SourceName“, wenn nicht leer, andernfalls „Microsoft-Windows-Hyper-V“ |
| Version | metadata.product_version | In einen String konvertiert |
| Nachricht | network.session_duration.nanos | Mit dem Grok-Muster aus der Nachricht extrahiert und in eine Ganzzahl konvertiert |
| Domain | principal.administrative_domain | Wert direkt kopiert |
| Computer | principal.asset.hostname | Wert direkt kopiert |
| Computer, Hostname | principal.hostname | Wert aus „Computer“, wenn nicht leer, andernfalls aus „Hostname“, wenn 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“, wenn nicht leer, andernfalls aus „UserID“, wenn nicht leer |
| Nachricht | security_result.description | Mit dem Grok-Muster aus der Nachricht extrahiert |
| Nachricht, ActivityId | security_result.detection_fields | Mit dem Label aus „nt_status“ zusammengeführt, das mit dem Grok-Muster aus der Nachricht extrahiert wurde, und aus „ActivityId“ |
| level, Severity | security_result.severity | Basierend auf dem Wert von „level“ festgelegt (1–3 INFORMATIONAL, 4 ERROR, 5 CRITICAL, andernfalls UNKNOWN_SEVERITY) oder basierend auf „Severity“ (INFO INFORMATIONAL, WARN MEDIUM, ERROR ERROR) |
| EventType | security_result.severity_details | Wert direkt kopiert |
| execution.process_id, ProcessID | target.process.pid | In einen String aus „execution.process_id“ konvertiert, wenn nicht leer, oder aus „ProcessID“, wenn nicht leer |
| execution.thread_id, ThreadID | target.process.product_specific_process_id | 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 | Mit dem Grok-Muster aus der Nachricht extrahiert |
| provider.guid | target.resource.type | Auf „Hyper-V VmSwitch“ festgelegt, wenn nicht leer |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten