Mengumpulkan log Windows Hyper-V

Didukung di:

Dokumen ini menjelaskan cara menyerap log Windows Hyper-V ke Google Security Operations menggunakan Bindplane.

Windows Hyper-V adalah hypervisor Microsoft yang menghasilkan log peristiwa siklus proses VM, jaringan, penyimpanan, dan keamanan. Agen Bindplane mengumpulkan file log peristiwa Hyper-V yang diekspor langsung dari sistem file lokal.

Sebelum memulai

Pastikan Anda memiliki prasyarat berikut:

  • Instance Google SecOps
  • Windows Server 2016 atau yang lebih baru dengan dukungan layanan observiq-otel-collector
  • Jika beroperasi dari balik proxy, pastikan port firewall terbuka sesuai dengan persyaratan agen Bindplane
  • Akses istimewa ke host Windows Hyper-V dengan izin administrator

Mendapatkan file autentikasi penyerapan Google SecOps

  1. Login ke konsol Google SecOps.
  2. Buka SIEM Settings > Collection Agents.
  3. Download Ingestion Authentication File. Simpan file dengan aman di sistem tempat Bindplane akan diinstal.

Mendapatkan ID pelanggan Google SecOps

  1. Login ke konsol Google SecOps.
  2. Buka SIEM Settings > Profile.
  3. Salin dan simpan Customer ID dari bagian Organization Details.

Menginstal agen Bindplane

Instal agen Bindplane di sistem operasi Windows Anda sesuai dengan petunjuk berikut.

Penginstalan Windows

  1. Buka Command Prompt atau PowerShell sebagai administrator.
  2. Jalankan perintah berikut:

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

  4. Verifikasi penginstalan dengan menjalankan:

    sc query observiq-otel-collector
    

Layanan akan ditampilkan sebagai RUNNING.

Referensi penginstalan tambahan

Untuk opsi penginstalan dan pemecahan masalah tambahan, lihat Panduan penginstalan agen Bindplane.

Mengonfigurasi agen Bindplane untuk menyerap log dan mengirimkannya ke Google SecOps

Menemukan file konfigurasi

  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Mengedit file konfigurasi

  • Ganti seluruh konten config.yaml dengan konfigurasi berikut:

    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
    

Parameter konfigurasi

Ganti placeholder berikut:

  • Konfigurasi penerima:

    • filelog: Jenis penerima untuk mengumpulkan file log dari disk
    • include: Daftar jalur file yang akan dipantau. Tetapkan ini ke lokasi tempat Anda mengekspor log peristiwa Hyper-V (misalnya, C:\HyperVLogs\*.evtx)
    • start_at: Tetapkan ke beginning untuk membaca log yang ada atau end untuk hanya membaca entri baru
  • Konfigurasi eksportir:

    • windows_hyperv: Nama deskriptif untuk eksportir
    • creds_file_path: Jalur lengkap ke file autentikasi penyerapan:
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • <customer_id>: ID Pelanggan dari langkah sebelumnya
    • endpoint: URL endpoint regional:
      • US: malachiteingestion-pa.googleapis.com
      • Eropa: europe-malachiteingestion-pa.googleapis.com
      • Asia: asia-southeast1-malachiteingestion-pa.googleapis.com
      • Lihat Endpoint Regional untuk daftar lengkap
    • WINDOWS_HYPERV: Jenis log persis seperti yang muncul di Chronicle
    • ingestion_labels: Label opsional dalam format YAML (misalnya, env: production)
  • Konfigurasi pipeline:

    • hyperv_to_chronicle: Nama deskriptif untuk pipeline

Menyimpan file konfigurasi

  • Setelah mengedit, simpan file:
    • Windows: Klik File > Save

Memulai ulang agen Bindplane untuk menerapkan perubahan

Untuk memulai ulang agen Bindplane di Windows:

  1. Pilih salah satu opsi berikut:

    • Command Prompt atau PowerShell sebagai administrator:
    net stop observiq-otel-collector && net start observiq-otel-collector
    
    • Konsol layanan:
      1. Tekan Win+R, ketik services.msc, lalu tekan Enter.
      2. Temukan observIQ OpenTelemetry Collector.
      3. Klik kanan dan pilih Restart.
  2. Pastikan layanan sedang berjalan:

    sc query observiq-otel-collector
    
  3. Periksa log untuk mengetahui error:

    type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
    

Mengonfigurasi ekspor log Windows Hyper-V

Log Windows Hyper-V disimpan sebagai entri Windows Event Log. Anda harus mengekspor log ini ke file di disk agar agen Bindplane dapat mengumpulkannya.

  1. Buat direktori untuk menyimpan file log yang diekspor:

    mkdir C:\HyperVLogs
    
  2. Ekspor log peristiwa Hyper-V menggunakan 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.evtx
    

    Anda dapat mengekspor saluran peristiwa Hyper-V tambahan sesuai kebutuhan. Saluran yang tersedia meliputi:

    • Microsoft-Windows-Hyper-V-VMMS-Admin (Layanan Pengelolaan Virtual Machine)
    • Microsoft-Windows-Hyper-V-Worker-Admin (Proses VM Worker)
    • Microsoft-Windows-Hyper-V-Hypervisor-Admin (Peristiwa hypervisor)
    • Microsoft-Windows-Hyper-V-Config-Admin (Peristiwa konfigurasi)
  3. (Opsional) Jadwalkan ekspor reguler menggunakan PowerShell:

    $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"
    
  4. Pastikan file log yang diekspor dibuat di `C:\HyperVLogs`.

  5. Pastikan jalur include agen Bindplane di config.yaml cocok dengan direktori ekspor.

Tabel pemetaan UDM

Kolom Log Pemetaan UDM Logika
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 Digabungkan dengan label yang dibuat dari kolom ini
system_time, EventReceivedTime metadata.collected_timestamp Diuraikan dari system_time dengan format, atau dari EventReceivedTime sebagai UNIX atau UNIX_MS
Message metadata.description Nilai disalin langsung
EventTime, EventReceivedTime metadata.event_timestamp Diuraikan dari EventTime sebagai UNIX atau UNIX_MS, atau dari EventReceivedTime sebagai UNIX atau UNIX_MS
metadata.event_type Tetapkan ke "PROCESS_LAUNCH" jika has_principal dan has_target_process, jika tidak, tetapkan ke "USER_LOGIN" jika has_principal dan has_target dan bukan has_target_process, jika tidak, tetapkan ke "STATUS_UPDATE" jika has_principal dan bukan has_target, jika tidak, tetapkan ke "USER_RESOURCE_ACCESS" jika has_target, jika tidak, tetapkan ke "GENERIC_EVENT"
provider.event_source metadata.product_event_type Nilai disalin langsung
record_id, RecordNumber metadata.product_log_id Dikonversi ke string dari record_id jika tidak kosong, atau dari RecordNumber jika tidak kosong
provider.name, SourceName metadata.product_name Nilai dari provider.name jika tidak kosong, jika tidak, SourceName jika tidak kosong, jika tidak, "Microsoft-Windows-Hyper-V"
Version metadata.product_version Dikonversi ke string
message network.session_duration.nanos Diekstrak dari pesan menggunakan pola grok, dikonversi ke bilangan bulat
Domain principal.administrative_domain Nilai disalin langsung
computer principal.asset.hostname Nilai disalin langsung
computer, Hostname principal.hostname Nilai dari komputer jika tidak kosong, lalu dari Hostname jika tidak kosong
AccountName principal.user.role_description Nilai disalin langsung
AccountType principal.user.role_name Nilai disalin langsung
event_data.name principal.user.user_display_name Nilai disalin langsung
security.user_id, UserID principal.user.userid Nilai dari security.user_id jika tidak kosong, lalu dari UserID jika tidak kosong
message security_result.description Diekstrak dari pesan menggunakan pola grok
message, ActivityId security_result.detection_fields Digabungkan dengan label dari nt_status yang diekstrak dari pesan menggunakan grok, dan dari ActivityId
level, Severity security_result.severity Ditetapkan berdasarkan nilai level (1-3 INFORMATIONAL, 4 ERROR, 5 CRITICAL, jika tidak, UNKNOWN_SEVERITY), atau berdasarkan Severity (INFO INFORMATIONAL, WARN MEDIUM, ERROR ERROR)
EventType security_result.severity_details Nilai disalin langsung
execution.process_id, ProcessID target.process.pid Dikonversi ke string dari execution.process_id jika tidak kosong, atau dari ProcessID jika tidak kosong
execution.thread_id, ThreadID target.process.product_specific_process_id Tetapkan ke "ThreadID: " dari execution.thread_id jika tidak kosong, atau dari ThreadID jika tidak kosong
provider.guid, ProviderGuid target.resource.id Nilai dari provider.guid setelah menghapus { }, atau dari ProviderGuid setelah menghapus { }
message target.resource.product_object_id Diekstrak dari pesan menggunakan pola grok
provider.guid target.resource.type Tetapkan ke "Hyper-V VmSwitch" jika tidak kosong

Log Perubahan

Lihat Log Perubahan untuk parser ini

Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.