Mengumpulkan log EVE Suricata

Didukung di:

Dokumen ini menjelaskan cara menyerap log EVE Suricata ke Google Security Operations menggunakan Bindplane.

Suricata adalah mesin deteksi ancaman jaringan berperforma tinggi open source yang menyediakan kemampuan deteksi penyusupan (IDS), pencegahan penyusupan (IPS), dan pemantauan keamanan jaringan. Output log EVE (Extensible Event Format) menyediakan log berformat JSON yang komprehensif yang mencakup data transaksi file, TLS, HTTP, DNS, flow, dan pemberitahuan. Parser mengekstrak kolom dari log berformat JSON EVE Suricata. Parser ini mengurai pesan JSON, lalu memetakan nilai tersebut ke Model Data Terpadu (UDM). Layanan ini juga menetapkan nilai metadata default untuk sumber dan jenis peristiwa.

Sebelum memulai

Pastikan Anda memiliki prasyarat berikut:

  • Instance Google SecOps
  • Windows Server 2016 atau yang lebih baru, atau host Linux dengan systemd
  • Jika beroperasi dari balik proxy, pastikan port firewall terbuka sesuai dengan persyaratan agen Bindplane
  • Akses istimewa ke host Suricata (root atau sudo)

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
    

Layanan akan ditampilkan sebagai 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
    

Layanan akan ditampilkan sebagai 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

  • Ganti seluruh konten config.yaml dengan konfigurasi berikut:

    receivers:
        udplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            creds_file_path: '/path/to/ingestion-authentication-file.json'
            customer_id: 'YOUR_CUSTOMER_ID'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: 'SURICATA_EVE'
            raw_log_field: body
            ingestion_labels:
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    

Parameter konfigurasi

  • Ganti placeholder berikut:

    • Konfigurasi penerima:

      • udplog: Gunakan udplog untuk syslog UDP atau tcplog untuk syslog TCP
      • 0.0.0.0: Alamat IP yang akan didengarkan (0.0.0.0 untuk mendengarkan semua antarmuka)
      • 514: Nomor port yang akan diproses (port syslog standar)
    • Konfigurasi eksportir:

      • 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
      • YOUR_CUSTOMER_ID: ID Pelanggan dari bagian Dapatkan ID pelanggan
      • 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
      • log_type: Jenis log persis seperti yang muncul di Chronicle (SURICATA_EVE)

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, jalankan perintah berikut:

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

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

        sudo journalctl -u observiq-otel-collector -f
      
  • Untuk memulai ulang agen Bindplane di Windows, 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.

      4. Pastikan layanan sedang berjalan:

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

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

Mengonfigurasi penerusan syslog EVE Suricata

  1. Buka file konfigurasi Suricata (biasanya /etc/suricata/suricata.yaml).
  2. Temukan bagian outputs dan konfigurasi output log EVE untuk syslog:

    outputs:
      - eve-log:
          enabled: yes
          filetype: syslog
          identity: "suricata"
          facility: local5
          level: Info
          types:
            - alert:
                payload: yes
                payload-printable: yes
                packet: yes
                metadata: yes
            - http:
                extended: yes
            - dns:
                query: yes
                answer: yes
            - tls:
                extended: yes
            - files:
                force-magic: no
            - flow
            - netflow
            - anomaly:
                enabled: yes
            - stats:
                enabled: yes
    
  3. Jika daemon syslog tidak dikonfigurasi untuk meneruskan ke Bindplane, konfigurasi rsyslog atau syslog-ng:

    • Untuk rsyslog (edit /etc/rsyslog.conf atau buat /etc/rsyslog.d/suricata.conf):

      local5.* @BINDPLANE_IP:514
      
      • Ganti BINDPLANE_IP dengan alamat IP host agen Bindplane.
      • Gunakan @ untuk UDP atau @@ untuk TCP.
    • Untuk syslog-ng (edit /etc/syslog-ng/syslog-ng.conf):

      destination d_bindplane { udp("BINDPLANE_IP" port(514)); };
      filter f_suricata { facility(local5); };
      log { source(s_src); filter(f_suricata); destination(d_bindplane); };
      
  4. Mulai ulang daemon syslog:

    sudo systemctl restart rsyslog
    
  5. Mulai ulang Suricata:

     sudo systemctl restart suricata
    
  6. Pastikan pesan syslog dikirim dengan memeriksa log agen Bindplane.

Tabel pemetaan UDM

Kolom Log Pemetaan UDM Logika
timestamp metadata.event_timestamp Stempel waktu peristiwa
event_type metadata.product_event_type Jenis peristiwa EVE (misalnya, alert, flow, dns, http, tls)
src_ip principal.ip Alamat IP sumber
src_port principal.port Nomor port sumber
dest_ip target.ip Alamat IP tujuan
dest_port target.port Nomor port tujuan
proto network.ip_protocol Protokol jaringan (misalnya, TCP, UDP, ICMP)
flow_id network.session_id ID alur unik
alert.signature security_result.rule_name Nama tanda tangan pemberitahuan
alert.signature_id security_result.rule_id ID tanda tangan pemberitahuan
alert.severity security_result.severity Tingkat keseriusan notifikasi
alert.category security_result.category_details Kategori klasifikasi pemberitahuan
alert.action security_result.action Tindakan yang dilakukan (misalnya, diizinkan, diblokir)
alert.rev security_result.rule_version Nomor revisi aturan
http.hostname target.hostname Nama host permintaan HTTP
http.url target.url URL permintaan HTTP
http.http_method network.http.method Metode permintaan HTTP
http.status network.http.response_code Kode status respons HTTP
http.http_user_agent network.http.user_agent String agen pengguna HTTP
http.http_refer network.http.referral_url URL perujuk HTTP
http.length additional.fields Panjang konten HTTP
dns.type network.dns.type Kueri atau respons DNS
dns.rrname network.dns.questions.name Nama kueri DNS
dns.rrtype network.dns.questions.type Jenis kueri DNS
dns.rdata network.dns.answers.data Data respons DNS
tls.subject network.tls.client.subject Subjek sertifikat TLS
tls.issuerdn network.tls.client.issuer Penerbit sertifikat TLS
tls.sni network.tls.client.server_name Indikasi Nama Server TLS
tls.version network.tls.version Versi TLS
tls.ja3.hash network.tls.client.ja3 Hash sidik jari klien JA3
tls.ja3s.hash network.tls.server.ja3s Hash sidik jari server JA3S
app_proto network.application_protocol Protokol lapisan aplikasi terdeteksi
flow.bytes_toserver network.sent_bytes Byte yang dikirim dari klien ke server
flow.bytes_toclient network.received_bytes Byte yang dikirim dari server ke klien
flow.pkts_toserver additional.fields Paket yang dikirim dari klien ke server
flow.pkts_toclient additional.fields Paket yang dikirim dari server ke klien
in_iface additional.fields Antarmuka jaringan input
community_id network.community_id Hash alur ID komunitas jaringan

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