Mengumpulkan log ESET AV

Didukung di:

Dokumen ini menjelaskan cara menyerap log ESET AV ke Google Security Operations menggunakan Bindplane. Kode parser Logstash mengekstrak data peristiwa keamanan dari log ESET_AV yang diformat dalam SYSLOG atau JSON. Pertama-tama, pesan mentah dinormalisasi, kemudian diuraikan berdasarkan format yang diidentifikasi, memetakan kolom yang diekstrak ke skema Model Data Terpadu (UDM) yang sesuai untuk representasi dan analisis yang konsisten.

Sebelum memulai

Pastikan Anda memenuhi prasyarat berikut:

  • Instance Google SecOps
  • Windows 2016 atau yang lebih baru, atau host Linux dengan systemd
  • Jika dijalankan di belakang proxy, port firewall terbuka
  • Akses istimewa ke ESET Protect

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

Untuk opsi penginstalan tambahan, lihat panduan penginstalan.

Mengonfigurasi agen BindPlane untuk menyerap Syslog dan mengirimkannya ke Google SecOps

  1. Akses file konfigurasi:
    • Cari file config.yaml. Biasanya, file ini berada di direktori /etc/bindplane-agent/ di Linux atau di direktori penginstalan di Windows.
    • 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_file_path: '/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: 'ESET_AV'
                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 untuk ESET PROTECT on-premise

  1. Login ke Konsol Web ESET Protect.
  2. Buka Lainnya > Setelan > Setelan Lanjutan > Server Syslog.
  3. Pilih tombol di samping Aktifkan Syslog.
  4. Berikan detail konfigurasi berikut:
    • Host: Masukkan alamat IP agen Bindplane
    • Port: Masukkan nomor port agen Bindplane (514 untuk UDP)
    • Format: Pilih Syslog
    • Transportasi: Pilih UDP
    • Keberagaman log aktivitas: Pilih Informasi
    • Tombol Ekspor log ke Syslog: Pilih Aktifkan
    • Format log yang diekspor: Pilih JSON
  5. Klik Simpan.

Mengonfigurasi Syslog untuk ESET PROTECT Cloud

  1. Login ke Konsol Web ESET Protect.
  2. Buka Lainnya > Setelan > Server Syslog.
  3. Pilih tombol di samping Aktifkan Syslog.
  4. Berikan detail konfigurasi berikut:
    • Format payload: Pilih JSON
    • Format amplop: Pilih Syslog
    • Level Log Minimum: Pilih Informasi
    • Jenis peristiwa yang akan dicatat: Pilih jenis peristiwa Semua
    • IP Tujuan: Masukkan alamat IP agen Bindplane
    • Port: Masukkan nomor port agen Bindplane (514 untuk UDP)
  5. Klik Simpan.

Tabel pemetaan UDM

Kolom Log Pemetaan UDM Logika
akun principal.administrative_domain Diekstrak dari kolom account menggunakan pola grok %{DATA:admin_domain}\\\\%{WORD:user_id}.
akun principal.user.userid Diekstrak dari kolom account menggunakan pola grok %{DATA:admin_domain}\\\\%{WORD:user_id}.
tindakan security_result.action Jika action adalah Block (tidak peka huruf besar/kecil), tetapkan ke BLOCK. Jika action adalah Start (tidak peka huruf besar/kecil), tetapkan ke ALLOW.
action_taken security_result.action_details Dipetakan langsung dari kolom action_taken.
computer_severity_score security_result.detection_fields Pasangan nilai kunci dibuat dengan kunci computer_severity_score dan nilai dari kolom computer_severity_score. Pasangan ini ditambahkan ke array security_result.detection_fields.
detail security_result.description Dipetakan langsung dari kolom detail.
domain principal.domain.name Dipetakan langsung dari kolom domain.
eialarmid security_result.detection_fields Pasangan nilai kunci dibuat dengan kunci eialarmid dan nilai dari kolom eialarmid. Pasangan ini ditambahkan ke array security_result.detection_fields.
eiconsolelink principal.url Dipetakan langsung dari kolom eiconsolelink.
event metadata.description Diganti namanya dari event menjadi event_desc dan dipetakan ke metadata.description.
event_type metadata.product_event_type Dipetakan langsung dari kolom event_type.
group_name principal.group.group_display_name Dipetakan langsung dari kolom group_name.
hash principal.file.sha1 Dikonversi menjadi huruf kecil. Jika nilai huruf kecil cocok dengan ekspresi reguler SHA-1, dipetakan ke principal.file.sha1.
hash principal.resource.attribute.labels Pasangan nilai kunci dibuat dengan kunci hash dan nilai dari kolom hash. Pasangan ini ditambahkan ke array principal.resource.attribute.labels.
hostname principal.asset.hostname Dipetakan langsung dari kolom hostname.
hostname principal.hostname Dipetakan langsung dari kolom hostname.
masuk network.direction Jika benar, tetapkan ke INBOUND. Jika salah (false), tetapkan ke OUTBOUND.
ipv4 target.asset.ip Dipetakan langsung dari kolom ipv4 jika target_address kosong.
ipv4 target.ip Dipetakan langsung dari kolom ipv4 jika target_address kosong.
json_data Diuraikan sebagai JSON untuk mengekstrak berbagai kolom.
pesan Diuraikan menggunakan grok untuk mengekstrak stempel waktu, host, dan json_data.
need_restart additional.fields Pasangan nilai kunci dibuat dengan kunci need_restart dan nilai dari kolom need_restart (dikonversi menjadi string). Pasangan ini ditambahkan ke array additional.fields.
os_name principal.platform Jika berisi Window atau window (tidak peka huruf besar/kecil), tetapkan ke WINDOWS. Jika berisi Linux atau linux (tidak peka huruf besar/kecil), tetapkan ke LINUX. Jika berisi Mac atau mac (tidak peka huruf besar/kecil), tetapkan ke MAC.
os_name principal.platform_version Dipetakan langsung dari kolom os_name.
process_name principal.process.file.full_path Dipetakan langsung dari kolom process_name. Jika kosong, akan mengambil nilai processname.
processname principal.process.file.full_path Jika process_name kosong, dipetakan ke process_name.
protokol network.ip_protocol Dikonversi menjadi huruf besar. Jika nilai huruf besar cocok dengan protokol yang diketahui (TCP, UDP, ICMP, dll.), dipetakan ke network.ip_protocol.
hasil security_result.summary Dipetakan langsung dari kolom result.
rulename security_result.rule_name Dipetakan langsung dari kolom rulename.
scan_id security_result.detection_fields Pasangan nilai kunci dibuat dengan kunci scan_id dan nilai dari kolom scan_id. Pasangan ini ditambahkan ke array security_result.detection_fields.
scanner_id security_result.detection_fields Pasangan nilai kunci dibuat dengan kunci scanner_id dan nilai dari kolom scanner_id. Pasangan ini ditambahkan ke array security_result.detection_fields.
tingkat keseriusan, security_result.severity Jika berisi Warn atau warn (tidak peka huruf besar/kecil), tetapkan ke HIGH. Jika berisi Info atau info (tidak peka huruf besar/kecil), tetapkan ke LOW.
severity_score security_result.detection_fields Pasangan nilai kunci dibuat dengan kunci severity_score dan nilai dari kolom severity_score. Pasangan ini ditambahkan ke array security_result.detection_fields.
source_address principal.asset.ip Dipetakan langsung dari kolom source_address.
source_address principal.ip Dipetakan langsung dari kolom source_address.
source_port principal.port Dikonversi menjadi string, lalu menjadi bilangan bulat. Dipetakan ke principal.port.
source_uuid metadata.product_log_id Dipetakan langsung dari kolom source_uuid.
target Diganti namanya menjadi target1.
target_address target.asset.ip Dipetakan langsung dari kolom target_address.
target_address target.ip Dipetakan langsung dari kolom target_address.
target_port target.port Dikonversi menjadi string, lalu menjadi bilangan bulat. Dipetakan ke target.port.
threat_handled security_result.detection_fields Pasangan nilai kunci dibuat dengan kunci threat_handled dan nilai dari kolom threat_handled (dikonversi menjadi string). Pasangan ini ditambahkan ke array security_result.detection_fields.
threat_name security_result.threat_name Dipetakan langsung dari kolom threat_name.
threat_type security_result.threat_id Dipetakan langsung dari kolom threat_type.
waktu metadata.event_timestamp Digunakan untuk mengisi metadata.event_timestamp.
nama pengguna principal.user.userid Dipetakan langsung dari kolom username jika user_id dan user kosong.
pengguna principal.user.userid Dipetakan langsung dari kolom user jika user_id kosong.
metadata.event_type Jika source_address dan target_address tidak kosong, tetapkan ke NETWORK_CONNECTION. Jika has_user benar, tetapkan ke USER_UNCATEGORIZED. Jika has_principal benar, tetapkan ke STATUS_UPDATE. Jika tidak, setel ke GENERIC_EVENT.
metadata.log_type Tetapkan ke ESET_AV.
metadata.product_name Tetapkan ke ESET_AV.
metadata.vendor_name Tetapkan ke ESET_AV.
intermediary.hostname Nilai kolom ini diambil dari kolom host yang diekstrak dari pesan log.
principal.user.userid Jika kolom account tidak kosong, parser akan mengekstrak ID pengguna dari kolom account menggunakan pola grok. Jika tidak, kode akan memeriksa apakah kolom user tidak kosong, jika ya, kode akan mengambil nilainya. Jika account dan user kosong, fungsi ini akan memeriksa apakah kolom username tidak kosong, jika ya, maka nilai username akan diambil.

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