Mengumpulkan log switch Arista

Didukung di:

Parser ini mengekstrak kolom dari log switch Arista, yang menangani format JSON dan syslog. Proses ini menggunakan pola grok untuk mengurai berbagai jenis pesan log, memetakan kolom yang diekstrak ke UDM, dan memperkaya peristiwa dengan metadata seperti jenis peristiwa, tingkat keparahan, dan informasi pokok/target berdasarkan detail yang diekstrak.

Sebelum memulai

  • Pastikan Anda memiliki instance Google SecOps.
  • Pastikan Anda menggunakan Windows 2016 atau yang lebih baru, atau host Linux dengan systemd.
  • Jika berjalan di belakang proxy, pastikan port firewall terbuka.
  • Arista EOS 4.23.x dan yang lebih baru sudah diinstal dan dapat diakses.
  • Pastikan Anda memiliki akses istimewa di Switch Arista EOS.

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

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
    

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
    

Referensi penginstalan tambahan

Mengonfigurasi agen BindPlane untuk menyerap Syslog dan mengirimkannya ke Google SecOps

  1. Akses file konfigurasi:

    1. Cari file config.yaml. Biasanya, file ini berada di direktori /etc/bindplane-agent/ di Linux atau di direktori penginstalan di Windows.
    2. Buka file menggunakan editor teks (misalnya, nano, vi, atau Notepad).
  2. Edit file config.yaml sebagai berikut:

    receivers:
        udplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            ingestion_labels:
                log_type: ARISTA_SWITCH
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Ganti port dan alamat IP sesuai kebutuhan di infrastruktur Anda.

  4. Ganti <customer_id> dengan ID pelanggan yang sebenarnya.

  5. Perbarui /path/to/ingestion-authentication-file.json ke jalur tempat file autentikasi disimpan di bagian Dapatkan file autentikasi penyerapan Google SecOps.

Mulai ulang agen Bindplane untuk menerapkan perubahan

  • Untuk memulai ulang agen Bindplane di Linux, jalankan perintah berikut:

    sudo systemctl restart bindplane-agent
    
  • Untuk memulai ulang agen Bindplane di Windows, Anda dapat menggunakan konsol Services atau memasukkan perintah berikut:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Mengonfigurasi Syslog di switch Arista

  1. Login ke switch Arista.
  2. Buka mode konfigurasi:

    Arista# config terminal
    
  3. Berikan konfigurasi berikut pada switch untuk mengirim log ke agen Bindplane.

    Arista(config)# logging host <bindplane-server-ip> <port-number> protocol [tcp/udp]
    Arista(config)# logging trap information
    Arista(config)# copy running-config startup-config
    
    * Replace `<bindplane-server-ip>` with Bindplane agent IP address and `<port-number>` with the port configured to listen.
    
  4. Masukkan konfigurasi tambahan untuk log eksekusi perintah:

    Arista (config)# aaa accounting commands all console start-stop logging
    Arista (config)# aaa accounting commands all default start-stop logging
    Arista (config)# aaa accounting exec console start-stop logging
    Arista (config)# aaa accounting exec default start-stop logging
    Arista (config)# copy running-config startup-config
    
  5. Masukkan konfigurasi tambahan untuk log login:

    Arista (config)# aaa authentication policy on-success log
    Arista (config)# aaa authentication policy on-failure log
    Arista (config)# copy running-config startup-config
    

Tabel Pemetaan UDM

Kolom Log Pemetaan UDM Logika
appname target.application Dipetakan langsung dari kolom appname.
description metadata.description Dipetakan langsung dari kolom description, yang diekstrak dari kolom message menggunakan pola grok berdasarkan product_event_type.
dst_ip target.ip, target.asset.ip Dipetakan langsung dari kolom dst_ip, yang diekstrak dari kolom message menggunakan pola grok.
dst_mac target.mac Dipetakan langsung dari kolom dst_mac, yang diekstrak dari kolom message menggunakan pola grok.
dst_port target.port Dipetakan langsung dari kolom dst_port, yang diekstrak dari kolom message menggunakan pola grok.
facility additional.fields[facility].string_value Dipetakan langsung dari kolom facility.
hostname principal.hostname, principal.asset.hostname Dipetakan langsung dari kolom hostname.
inner_msg metadata.description Dipetakan langsung dari kolom inner_msg, yang diekstrak dari kolom message menggunakan pola grok.
ip_protocol network.ip_protocol Dipetakan langsung dari kolom ip_protocol, yang diekstrak dari kolom message menggunakan pola grok. Jika nilainya adalah "tcp", nilai tersebut akan dikonversi menjadi "TCP". Jika jenis peristiwanya adalah "NO_IGMP_QUERIER", maka akan disetel ke "IGMP".
pid principal.process.pid Dipetakan langsung dari kolom pid, yang diekstrak dari kolom message menggunakan pola grok.
prin_ip principal.ip, principal.asset.ip Dipetakan langsung dari kolom prin_ip, yang diekstrak dari kolom message menggunakan pola grok.
product_event_type metadata.product_event_type Dipetakan langsung dari kolom product_event_type, yang diekstrak dari kolom message menggunakan pola grok.
proto network.application_protocol Jika kolom proto adalah "sshd", kolom UDM akan ditetapkan ke "SSH".
severity security_result.severity, security_result.severity_details security_result.severity berasal dari kolom severity berdasarkan pemetaan berikut: "DEFAULT", "DEBUG", "INFO", "NOTICE" -> "INFORMATIONAL"; "WARNING", "ERROR", "ERR", "WARN" -> "MEDIUM"; "CRITICAL", "ALERT", "EMERGENCY" -> "HIGH". Nilai mentah severity dipetakan ke security_result.severity_details.
session_id network.session_id Dipetakan langsung dari kolom session_id, yang diekstrak dari kolom message menggunakan pola grok.
source_ip principal.ip, principal.asset.ip Dipetakan langsung dari kolom source_ip, yang diekstrak dari kolom message menggunakan pola grok.
source_port principal.port Dipetakan langsung dari kolom source_port, yang diekstrak dari kolom message menggunakan pola grok.
src_ip principal.ip, principal.asset.ip Dipetakan langsung dari kolom src_ip, yang diekstrak dari kolom message menggunakan pola grok.
table_name target.resource.name Dipetakan langsung dari kolom table_name, yang diekstrak dari kolom message menggunakan pola grok. Jika kolom ini diisi, target.resource.resource_type akan ditetapkan ke "TABLE".
target_host target.hostname, target.asset.hostname Dipetakan langsung dari kolom target_host, yang diekstrak dari kolom message menggunakan pola grok.
target_ip target.ip, target.asset.ip Dipetakan langsung dari kolom target_ip, yang diekstrak dari kolom message menggunakan pola grok.
target_package target.process.command_line Dipetakan langsung dari kolom target_package, yang diekstrak dari kolom message menggunakan pola grok.
target_port target.port Dipetakan langsung dari kolom target_port, yang diekstrak dari kolom message menggunakan pola grok.
timestamp metadata.event_timestamp Dipetakan langsung dari kolom timestamp setelah diurai menjadi objek stempel waktu.
user principal.user.userid Dipetakan langsung dari kolom user, yang diekstrak dari kolom message menggunakan pola grok.
user_name target.user.userid Dipetakan langsung dari kolom user_name, yang diekstrak dari kolom message menggunakan pola grok.
vrf additional.fields[vrf].string_value Dipetakan langsung dari kolom vrf, yang diekstrak dari kolom message menggunakan pola grok. Diperoleh dari kombinasi kolom has_principal, has_target, user, message, product_event_type, dan description menggunakan logika bersyarat yang kompleks seperti yang dijelaskan dalam kode parser. Nilai defaultnya adalah "GENERIC_EVENT". Dikodekan secara permanen ke "ARISTA_SWITCH". Dikodekan secara permanen ke "Arista Switch". Dikodekan secara permanen ke "Arista". Tetapkan ke "BLOCK" jika kolom description berisi "connection rejected".
dpid additional.fields[DPID].string_value Dipetakan langsung dari kolom dpid.
intf additional.fields[intf].string_value Dipetakan langsung dari kolom intf.

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