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, alur, 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). Selain itu, fungsi 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
flow.src_ip event.idm.read_only_udm.principal.ip/event.idm.read_only_udm.principal.asset.ip Dipetakan dari log perubahan
alert.source.ip event.idm.read_only_udm.principal.ip/event.idm.read_only_udm.principal.asset.ip Dipetakan dari log perubahan
flow.dest_ip event.idm.read_only_udm.target.ip/event.idm.read_only_udm.target.asset.ip Dipetakan dari log perubahan
alert.target.ip event.idm.read_only_udm.target.ip/event.idm.read_only_udm.target.asset.ip Dipetakan dari log perubahan
flow.pkts_toserver event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
flow.pkts_toclient event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
alert.source.port event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
alert.target.port event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
alert.rule event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
alert.metadata.attack_target event.idm.read_only_udm.security_result.detection_fields Dipetakan dari log perubahan
alert.metadata.confidence event.idm.read_only_udm.security_result.detection_fields Dipetakan dari log perubahan
alert.metadata.deployment event.idm.read_only_udm.security_result.detection_fields Dipetakan dari log perubahan
alert.metadata.tag event.idm.read_only_udm.security_result.detection_fields Dipetakan dari log perubahan
dhcp.client_ip event.idm.read_only_udm.network.dhcp.ciaddr Dipetakan dari log perubahan
dhcp.client_id event.idm.read_only_udm.network.dhcp.client_identifier Dipetakan dari log perubahan
dhcp.params event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
dhcp.hostname event.idm.read_only_udm.network.dhcp.client_hostname Dipetakan dari log perubahan
dhcp.vendor_class_identifier event.idm.read_only_udm.network.dhcp.options Dipetakan dari log perubahan
dhcp.type event.idm.read_only_udm.network.dhcp.opcode Dipetakan dari log perubahan
dhcp.dhcp_type event.idm.read_only_udm.network.dhcp.type Dipetakan dari log perubahan
dhcp.assigned_ip event.idm.read_only_udm.network.dhcp.yiaddr Dipetakan dari log perubahan
dhcp.client_mac event.idm.read_only_udm.network.dhcp.chaddr Dipetakan dari log perubahan
dns.qr event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
dns_qr event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
tls.ja3.string event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
tls_ja3_string event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
tls.ja3s.string event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
tls_ja3s_string event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
tls.ja4 event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
tls_ja4 event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
dns.version event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
dns_version event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
dns.type event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
dns_type event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
dns.opcode event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
dns_opcode event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
dns.tx_id event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
dns_tx_id event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
dns.flags event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
dns_flags event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
audata.soa.mname event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
soa_mname_%{index} event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
audata.soa.rname event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
soa_rname_%{index} event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
audata.soa.serial event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
soa_serial_%{index} event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
audata.soa.refresh event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
soa_refresh_%{index} event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
audata.soa.retry event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
soa_retry_%{index} event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
audata.soa.expire event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
soa_expire_%{index} event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
audata.soa.minimum event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
soa_minimum_%{index} event.idm.read_only_udm.additional.fields Dipetakan dari log perubahan
dns.rd event.idm.read_only_udm.network.dns.recursion_desired Dipetakan dari log perubahan
dns.ra event.idm.read_only_udm.network.dns.recursion_available Dipetakan dari log perubahan
dns.answers event.idm.read_only_udm.network.dns.answers Dipetakan dari log perubahan
dns.authorities event.idm.read_only_udm.network.dns.answers Dipetakan dari log perubahan
event_type event.idm.read_only_udm.network.application_protocol Dipetakan dari log perubahan
dns.answers.ttl event.idm.read_only_udm.network.dns.answers.ttl Dipetakan dari log perubahan
dns.authorities.ttl event.idm.read_only_udm.network.dns.answers.ttl Dipetakan dari log perubahan
dns.authorities.rrtype event.idm.read_only_udm.network.dns.answers.type Dipetakan dari log perubahan
dns.answers.rrtype event.idm.read_only_udm.network.dns.answers.type Dipetakan dari log perubahan
dns.authorities.rrname event.idm.read_only_udm.network.dns.answers.name Dipetakan dari log perubahan
dns.answers.rrname event.idm.read_only_udm.network.dns.answers.name Dipetakan dari log perubahan
dns.answers.rdata event.idm.read_only_udm.network.dns.answers.data Dipetakan dari log perubahan
dns.rcode event.idm.read_only_udm.network.dns.response_code Dipetakan dari log perubahan
ssh.server.hassh.software_version", "ssh.server.hassh.proto_version", "ssh.server.hassh.string", "ssh.client.hassh.software_version", "ssh.client.hassh.proto_version", "ssh.client.hassh.string additional.fields Dipetakan dari log perubahan
alert.metadata.stamus_classification additional.fields Dipetakan dari log perubahan
alert.metadata.sightings_key additional.fields Dipetakan dari log perubahan
alert.metadata.sightings_asset additional.fields Dipetakan dari log perubahan
discovery additional.fields Dipetakan dari log perubahan
dns.id network.dns.id Dipetakan dari log perubahan
see_id network.session_id Dipetakan dari log perubahan
payload_printable additional.fields Dipetakan dari log perubahan
process.executable principal.process.file.full_path Dipetakan dari log perubahan
process.pid principal.process.pid Dipetakan dari log perubahan
process.command_line principal.process.command_line Dipetakan dari log perubahan
service.type additional.fields Dipetakan dari log perubahan
event.dataset about.labels Dipetakan dari log perubahan
event.module about.labels Dipetakan dari log perubahan
event.duration about.labels Dipetakan dari log perubahan
agent.id metadata.product_log_id Dipetakan dari log perubahan
agent.type metadata.product_event_type Dipetakan dari log perubahan
agent.version metadata.product_version Dipetakan dari log perubahan
agent.hostname principal.hostname Dipetakan dari log perubahan
agent.name principal.hostname Dipetakan dari log perubahan
agent.ephemeral_id additional.fields Dipetakan dari log perubahan
ecs.version principal.asset.attribute.labels Dipetakan dari log perubahan
process.args about.file.capabilities_tags Dipetakan dari log perubahan

Log Perubahan

Melihat Log Perubahan untuk parser ini

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