Mengumpulkan log Elastic Windows Event Log Beats

Didukung di:

Dokumen ini menjelaskan cara menyerap log Elastic Windows Event Log Beats ke Google Security Operations menggunakan agen Bindplane.

Winlogbeat adalah agen pengiriman log peristiwa khusus Windows dari Elastic yang mengumpulkan Log Peristiwa Windows dan meneruskannya ke berbagai tujuan. Agen ini berjalan sebagai layanan Windows di sistem Windows dan dapat mengumpulkan peristiwa dari Application, Security, System, dan saluran log peristiwa Windows lainnya.

Sebelum memulai

Pastikan Anda memiliki prasyarat berikut:

  • Instance Google SecOps
  • Windows Server 2016 atau yang lebih baru, atau host Linux dengan systemd untuk menjalankan agen Bindplane
  • Konektivitas jaringan antara agen Bindplane dan server Logstash
  • Konektivitas jaringan antara Logstash dan agen Bindplane
  • Jika beroperasi dari balik proxy, pastikan port firewall terbuka sesuai dengan persyaratan agen Bindplane
  • Sistem Windows tempat Winlogbeat akan diinstal untuk mengumpulkan log peristiwa
  • Akses administrator ke sistem Windows untuk penginstalan Winlogbeat
  • Server Logstash (versi 7.x atau 8.x) untuk pemrosesan perantara

Mendapatkan file autentikasi penyerapan Google SecOps

  1. Login ke konsol Google SecOps.
  2. Buka Setelan SIEM > Agen Pengumpulan.
  3. Download File Autentikasi Penyerapan. Simpan file dengan aman di sistem tempat BindPlane akan diinstal.

Mendapatkan ID pelanggan Google SecOps

  1. Login ke konsol Google SecOps.
  2. Buka Setelan SIEM > Profil.
  3. Salin dan simpan ID Pelanggan dari bagian Detail Organisasi.

Menginstal agen Bindplane

Instal agen Bindplane di sistem operasi Windows atau Linux 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
    

    Status layanan harus RUNNING.

Penginstalan Linux

  1. Buka terminal dengan hak istimewa root atau sudo.
  2. Jalankan perintah berikut:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. Tunggu hingga penginstalan selesai.

  4. Verifikasi penginstalan dengan menjalankan:

    sudo systemctl status observiq-otel-collector
    

    Status layanan harus aktif (berjalan).

Referensi penginstalan tambahan

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

Mengonfigurasi agen BindPlane untuk menyerap syslog dan mengirimkannya ke Google SecOps

Cari file konfigurasi

  • Linux:

    sudo nano /etc/bindplane-agent/config.yaml
    
  • Windows:

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

Edit file konfigurasi

  1. Ganti seluruh konten config.yaml dengan konfigurasi berikut:

    receivers:
        tcplog:
            listen_address: "0.0.0.0:1514"
    
    exporters:
        chronicle/winlogbeat:
            compression: gzip
            creds_file_path: '<CREDS_FILE_PATH>'
            customer_id: '<CUSTOMER_ID>'
            endpoint: <REGION_ENDPOINT>
            log_type: ELASTIC_WINLOGBEAT
            raw_log_field: body
            ingestion_labels:
                env: production
                source: winlogbeat
    
    service:
        pipelines:
            logs/winlogbeat_to_chronicle:
                receivers:
                    - tcplog
                exporters:
                    - chronicle/winlogbeat
    
  2. Ganti placeholder berikut:

    • Konfigurasi penerima:

      • listen_address: Setel ke 0.0.0.0:1514 untuk memproses semua antarmuka di port 1514 (TCP). Anda dapat mengubah nomor port jika diperlukan, tetapi pastikan nomor tersebut cocok dengan konfigurasi output syslog Logstash.
    • Konfigurasi pengekspor:

      • <CREDS_FILE_PATH>: Jalur lengkap ke file autentikasi penyerapan:

        • Linux: /etc/bindplane-agent/ingestion-auth.json
        • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
      • <CUSTOMER_ID>: ID Pelanggan dari langkah sebelumnya

      • <REGION_ENDPOINT>: URL endpoint regional:

        • Amerika Serikat: malachiteingestion-pa.googleapis.com
        • Eropa: europe-malachiteingestion-pa.googleapis.com
        • Asia: asia-southeast1-malachiteingestion-pa.googleapis.com
        • Lihat Endpoint Regional untuk mengetahui daftar lengkapnya

Contoh konfigurasi:

  • receivers:
      tcplog:
        listen_address: "0.0.0.0:1514"
    
    exporters:
      chronicle/winlogbeat:
        compression: gzip
        creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
        customer_id: 'a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: ELASTIC_WINLOGBEAT
        raw_log_field: body
        ingestion_labels:
          env: production
          source: winlogbeat
    
    service:
      pipelines:
        logs/winlogbeat_to_chronicle:
          receivers:
            - tcplog
          exporters:
            - chronicle/winlogbeat
    

Simpan file konfigurasi

Setelah mengedit, simpan file:

  • Linux: Tekan Ctrl+O, lalu Enter, lalu Ctrl+X
  • Windows: Klik File > Save

Mulai ulang agen Bindplane untuk menerapkan perubahan

  • Untuk memulai ulang agen Bindplane di Linux:

    1. Jalankan perintah berikut:

      sudo systemctl restart observiq-otel-collector
      
    2. Pastikan layanan sedang berjalan:

      sudo systemctl status observiq-otel-collector
      
    3. Periksa log untuk mengetahui error:

      sudo journalctl -u observiq-otel-collector -f
      
  • 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 Mulai Ulang.
    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"
      

Menginstal dan mengonfigurasi Logstash

Logstash diperlukan sebagai perantara untuk menerima peristiwa dari Winlogbeat dan meneruskannya ke agen Bindplane melalui syslog. Winlogbeat tidak memiliki kemampuan output syslog native.

Instal Logstash

  1. Download Logstash dari halaman download Elastic.
  2. Instal Logstash di server Windows atau Linux:
  • Linux (Debian/Ubuntu):

    wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
    sudo apt-get install apt-transport-https
    echo "deb https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-8.x.list
    sudo apt-get update && sudo apt-get install logstash
    
  • Linux (RHEL/CentOS):

    sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
    sudo tee /etc/yum.repos.d/logstash.repo <<EOF
    [logstash-8.x]
    name=Elastic repository for 8.x packages
    baseurl=https://artifacts.elastic.co/packages/8.x/yum
    gpgcheck=1
    gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
    enabled=1
    autorefresh=1
    type=rpm-md
    EOF
    sudo yum install logstash
    
  • Windows:

    1. Download file ZIP dari halaman download Elastic.
    2. Ekstrak ke C:\logstash.

Mengonfigurasi pipeline Logstash

  1. Buat file konfigurasi pipeline baru:

    • Linux:

      sudo nano /etc/logstash/conf.d/winlogbeat-to-syslog.conf
      
    • Windows:

      notepad "C:\logstash\config\winlogbeat-to-syslog.conf"
      
  2. Tambahkan konfigurasi berikut:

    input {
        beats {
            port => 5044
        }
    }
    
    output {
        syslog {
            host => "<BINDPLANE_AGENT_IP>"
            port => 1514
            protocol => "tcp"
            rfc => "rfc5424"
            appname => "winlogbeat"
            facility => "user-level"
            severity => "informational"
        }
    }
    
  3. Ganti <BINDPLANE_AGENT_IP> dengan alamat IP server yang menjalankan agen Bindplane.

Contoh konfigurasi Logstash

  • input {
        beats {
            port => 5044
        }
    }
    
    output {
        syslog {
            host => "192.168.1.100"
            port => 1514
            protocol => "tcp"
            rfc => "rfc5424"
            appname => "winlogbeat"
            facility => "user-level"
            severity => "informational"
        }
    }
    

Mulai Logstash

  • Linux:

    1. Mulai Logstash:

      sudo systemctl start logstash
      sudo systemctl enable logstash
      
    2. Pastikan Logstash berjalan:

      sudo systemctl status logstash
      
    3. Periksa log Logstash:

      sudo tail -f /var/log/logstash/logstash-plain.log
      
  • Windows:

    cd C:\logstash\bin
    logstash.bat -f C:\logstash\config\winlogbeat-to-syslog.conf
    

    Untuk penggunaan produksi, instal Logstash sebagai layanan Windows menggunakan NSSM atau alat serupa.

Menginstal Winlogbeat di sistem Windows

Download Winlogbeat

  1. Download Winlogbeat dari halaman download Elastic.
  2. Pilih penginstal ZIP atau MSI untuk Windows.

Instal Winlogbeat

  • Menggunakan penginstal MSI:

    1. Jalankan penginstal MSI.
    2. Ikuti wizard penginstalan.
    3. Instal ke lokasi default: C:\Program Files\Winlogbeat.
  • Menggunakan file ZIP:

    1. Ekstrak file ZIP ke C:\Program Files\Winlogbeat.
    2. Buka PowerShell sebagai administrator.
    3. Buka direktori Winlogbeat:

      cd 'C:\Program Files\Winlogbeat'
      
    4. Jalankan skrip penginstalan:

      .\install-service-winlogbeat.ps1
      

Mengonfigurasi Winlogbeat untuk mengirim log ke Logstash

  1. Buka file konfigurasi Winlogbeat:

    notepad "C:\Program Files\Winlogbeat\winlogbeat.yml"
    
  2. Konfigurasi log peristiwa yang akan dikumpulkan. Temukan bagian winlogbeat.event_logs dan konfigurasikan sebagai berikut:

    winlogbeat.event_logs:
      - name: Application
        ignore_older: 72h
      - name: System
      - name: Security
      - name: Microsoft-Windows-Sysmon/Operational
        ignore_older: 72h
      - name: Windows PowerShell
        event_id: 400, 403, 600, 800
      - name: Microsoft-Windows-PowerShell/Operational
        event_id: 4103, 4104, 4105, 4106
      - name: ForwardedEvents
        tags: [forwarded]
    
  3. Beri komentar pada bagian output Elasticsearch dengan menambahkan # di awal setiap baris:

    #output.elasticsearch:
    #  hosts: ["localhost:9200"]
    
  4. Batalkan komentar dan konfigurasi bagian output Logstash:

    output.logstash:
      hosts: ["<LOGSTASH_SERVER_IP>:5044"]
    
  5. Ganti <LOGSTASH_SERVER_IP> dengan alamat IP server Logstash Anda.

Contoh konfigurasi Winlogbeat

  • winlogbeat.event_logs:
      - name: Application
        ignore_older: 72h
      - name: System
      - name: Security
      - name: Microsoft-Windows-Sysmon/Operational
        ignore_older: 72h
    
    output.logstash:
      hosts: ["192.168.1.50:5044"]
    

Simpan file konfigurasi

Simpan dan tutup file tersebut.

Mulai layanan Winlogbeat

  1. Buka PowerShell sebagai administrator.
  2. Mulai layanan Winlogbeat:

    Start-Service winlogbeat
    
  3. Pastikan layanan sedang berjalan:

    Get-Service winlogbeat
    

    Statusnya akan ditampilkan sebagai Running.

  4. Periksa log Winlogbeat untuk mengetahui error:

    Get-Content "C:\ProgramData\winlogbeat\Logs\winlogbeat" -Tail 50
    

Memverifikasi alur log

Memverifikasi koneksi Winlogbeat ke Logstash

  1. Di server Logstash, periksa log Logstash:

    • Linux:

      sudo tail -f /var/log/logstash/logstash-plain.log
      
    • Windows:

      type C:\logstash\logs\logstash-plain.log
      
  2. Cari pesan yang menunjukkan koneksi Beats:

    [INFO ][logstash.inputs.beats] Beats inputs: Starting input listener {:address=>"0.0.0.0:5044"}
    

Memverifikasi koneksi agen Logstash ke Bindplane

  1. Di server agen Bindplane, periksa log agen:

    • Linux:

      sudo journalctl -u observiq-otel-collector -f
      
    • Windows:

      type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
      
  2. Cari pesan yang menunjukkan penyerapan log berhasil.

Memverifikasi log di Google SecOps

  1. Login ke konsol Google SecOps.
  2. Buka Penelusuran.
  3. Jalankan kueri penelusuran untuk memverifikasi bahwa log Winlogbeat sedang di-ingest:

    metadata.log_type = "ELASTIC_WINLOGBEAT"
    
  4. Pastikan log peristiwa Windows muncul di hasil penelusuran.

Pemecahan masalah

Winlogbeat tidak terhubung ke Logstash

  • Verifikasi konektivitas jaringan antara Winlogbeat dan Logstash:

    Test-NetConnection -ComputerName <LOGSTASH_IP> -Port 5044
    
  • Periksa apakah aturan Windows Firewall mengizinkan koneksi keluar di port 5044.

  • Verifikasi bahwa Logstash memproses port 5044:

    • Linux:

      sudo netstat -tulpn | grep 5044
      
    • Windows:

      netstat -an | findstr 5044
      

Logstash tidak meneruskan ke agen BindPlane

  • Verifikasi konektivitas jaringan antara agen Logstash dan Bindplane:

    • Linux:

      telnet <BINDPLANE_IP> 1514
      
    • Windows:

      Test-NetConnection -ComputerName <BINDPLANE_IP> -Port 1514
      
  • Periksa apakah aturan firewall mengizinkan koneksi TCP di port 1514.

  • Verifikasi bahwa agen Bindplane sedang memproses di port 1514:

    • Linux:

      sudo netstat -tulpn | grep 1514
      
    • Windows:

      netstat -an | findstr 1514
      

Log tidak muncul di Google SecOps

  • Pastikan ID pelanggan dan file autentikasi penyerapan sudah benar.
  • Periksa log agen BindPlane untuk mengetahui error autentikasi.
  • Verifikasi bahwa endpoint regional cocok dengan region instance Google SecOps Anda.
  • Pastikan log_type disetel ke ELASTIC_WINLOGBEAT persis seperti yang ditunjukkan.

Tabel pemetaan UDM

Informasi pemetaan kolom tidak tersedia untuk parser ini.

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