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 kredensial Google SecOps untuk agen Bindplane

Untuk mengautentikasi agen Bindplane ke Google SecOps, pilih salah satu metode berikut:

  • Deployment baru: Gunakan Chronicle API (Opsi 1).
  • Deployment lama: Terus gunakan file autentikasi penyerapan (Opsi 2) hingga Ingestion API dihentikan pada 20 Juli 2027.
  1. Login ke Google Cloud konsol dan pilih Google Cloud project yang ditautkan ke instance Google SecOps Anda.
  2. Buka IAM & Admin > Service Accounts.
  3. Klik Create service account.
  4. Berikan detail konfigurasi berikut:
    • Nama akun layanan: Masukkan nama akun (misalnya, bindplane-ingest).
    • Deskripsi akun layanan: Masukkan deskripsi (misalnya, Bindplane agent log ingestion).
  5. Klik Create and continue.
  6. Di bagian Grant this service account access to project , klik Select a role , lalu pilih Chronicle Editor.
  7. Klik Continue, lalu klik Done.
  8. Klik akun layanan yang Anda buat, lalu buka tab Keys.
  9. Klik Add key > Create new key.
  10. Pilih JSON , lalu klik Create. File kunci akan didownload ke komputer Anda.
  11. Simpan file kunci sebagai ingestion-auth.json di direktori pengumpul Bindplane (/opt/observiq-otel-collector/ingestion-auth.json di Linux atau C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json di Windows), atau perbarui creds_file_path di config.yaml agar sesuai dengan jalur tempat Anda menyimpannya.
  12. Buka IAM & Admin > Settings dan salin Project number. Anda akan memerlukannya untuk konfigurasi pengekspor.

Opsi 2: Mendownload file autentikasi penyerapan (lama)

  1. Login ke konsol Google SecOps.
  2. Buka SIEM Settings > Collection Agents.
  3. Download ingestion authentication file.
  4. Simpan file dengan aman di sistem tempat agen 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 pemasangan dan pemecahan masalah tambahan, lihat Panduan pemasangan agen Bindplane.

Mengonfigurasi agen Bindplane untuk menyerap log dan mengirim ke Google SecOps

Mencari 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:
        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
        creds_file_path: 'C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: chronicle.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 pengekspor:

    • windows_hyperv: Nama deskriptif untuk pengekspor
    • creds_file_path: Jalur lengkap ke file kunci JSON akun layanan (Opsi 1):
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • <customer_id>: ID Pelanggan dari langkah sebelumnya
    • location: Ganti <LOCATION> dengan region instance Google SecOps Anda (misalnya, us, europe, atau asia-southeast1). Pengekspor menambahkan awalan chronicle.googleapis.com dengan nilai ini. Lihat Endpoint Regional untuk mengetahui daftar lengkapnya.
    • project: Ganti <PROJECT_NUMBER> dengan nomor project dari IAM & Admin > Settings.
    • endpoint: Tetapkan ke chronicle.googleapis.com.
    • 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

Pengekspor Ingestion API lama

  • Jika Anda menggunakan file autentikasi penyerapan dari Opsi 2, ganti blok exporters dengan blok berikut. Tetapkan creds_file_path ke jalur file autentikasi penyerapan, dan jika instance Anda berada di luar Amerika Serikat, ganti malachiteingestion-pa.googleapis.com dengan endpoint regional Anda (misalnya, europe-malachiteingestion-pa.googleapis.com).

    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
    

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, lalu 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 Log Peristiwa Windows. 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 mencakup:

    • 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, atau "USER_LOGIN" jika has_principal dan has_target dan bukan has_target_process, atau "STATUS_UPDATE" jika has_principal dan bukan has_target, atau "USER_RESOURCE_ACCESS" jika has_target, atau "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, atau SourceName jika tidak kosong, atau "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, atau 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.