Mengumpulkan log Forescout NAC

Didukung di:

Dokumen ini menjelaskan cara menyerap log Kontrol Akses Jaringan (NAC) Forescout ke Google Security Operations menggunakan Bindplane. Parser menangani log berformat syslog dan CEF dari Forescout NAC. Agent ini mengekstrak kolom menggunakan pola grok, memetakannya ke Model Data Terpadu (UDM), dan mengategorikan peristiwa berdasarkan kata kunci dan kolom yang diekstrak, menangani login/logout, koneksi jaringan, peristiwa email, dan update status sistem. Logika khusus diterapkan untuk menangani peristiwa "CounterACT" dan "Virtual Firewall", termasuk pemetaan tingkat keparahan dan pengayaan konteks pengguna.

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
  • ForeScout CounterAct v8.0 atau versi terbaru harus diinstal
  • Plugin Syslog modul ekstensi inti ForeScout CounterAct v3.5 harus diinstal
  • Akses istimewa ke Forescout Appliance dan plugin CounterACT

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
    

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: 'FORESCOUT_NAC'
                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 Mendapatkan 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
    

Menginstal Plugin Syslog CounterACT

  1. Buka halaman Forescout Base Plugins dan download file plugin .fpi.
  2. Simpan file ke komputer tempat CounterACT Console diinstal.
  3. Login ke CounterACT Console.
  4. Pilih Options > Plugins > Install.
  5. Telusuri dan pilih file FPI plugin tersimpan.
  6. Klik Instal.
  7. Setujui perjanjian lisensi untuk melanjutkan.
  8. Setelah penginstalan selesai, klik Close.
  9. Pilih plugin dari panel Plugin, lalu klik Start.
  10. Pilih CounterACT Appliances tempat plugin akan dimulai (Sebaiknya jalankan plugin di semua Appliance dalam lingkungan).
  11. Klik Oke.
  12. Klik Close.

Mengonfigurasi Syslog di Plugin Syslog Forescout CounterACT

  1. Di panel Plugins, klik Syslog > Configure.
  2. Pilih Appliance atau Enterprise Manager dari dialog, lalu klik OK.
  3. Di bagian Kirim Peristiwa Ke, klik Tambahkan.
  4. Berikan detail konfigurasi berikut:
    • Alamat Server: Masukkan alamat IP agen Bindplane.
    • Server Port: Masukkan nomor port agen Bindplane (misalnya, 514 untuk UDP).
    • Server Protocol: Pilih UDP.
    • Identitas: Kolom teks bebas untuk mengidentifikasi pesan syslog.
    • Opsional: Fasilitas: Fasilitas pesan syslog yang dikirimkan sebagai bagian dari kolom Prioritas pesan. Jika nilai fasilitas tidak disebutkan, nilai tersebut ditetapkan ke local5.
    • Tingkat keparahan: Pilih Info.
  5. Buka tab Syslog Trigger.
  6. Jangan centang kotak Only send messages generated by the "Send Message to Syslog" action.
  7. Centang hanya kotak Sertakan stempel waktu dan ID perangkat CounterACT dalam semua pesan.
  8. Klik Opsi untuk menentukan jenis peristiwa yang memicu pesan syslog:
    • Sertakan log kebijakan NAC.
    • Menyertakan peristiwa kecocokan-tidak cocok kebijakan NAC.
    • Pilih acara lain jika tersedia.
  9. Buka tab Konfigurasi Tindakan Default.
  10. Berikan detail konfigurasi berikut:
    • Alamat Server: Masukkan alamat IP agen Bindplane.
    • Server Port: Masukkan nomor port agen Bindplane (misalnya, 514 untuk UDP).
    • Server Protocol: Pilih UDP.
    • Identitas Pesan: Kolom teks bebas untuk mengidentifikasi pesan Syslog.
    • Opsional: Fasilitas: Fasilitas pesan syslog yang dikirimkan sebagai bagian dari kolom Prioritas pesan. Jika nilai fasilitas tidak disebutkan, nilai tersebut ditetapkan ke local5.
    • Tingkat keparahan: Pilih Info.
  11. Klik Oke.

Tabel Pemetaan UDM

Kolom Log Pemetaan UDM Logika
act security_result.action_details Dipetakan langsung dari kolom act dalam log CEF.
app network.application_protocol Dipetakan langsung dari kolom app dalam log CEF.
Available_memory additional.fields Diekstrak dari kv_data saat event_type adalah "Statistik sistem". Kuncinya adalah "Memori yang tersedia" dan nilainya adalah string yang diekstrak.
Available_swap additional.fields Diekstrak dari kv_data saat event_type adalah "Statistik sistem". Kuncinya adalah "Available swap" dan nilainya adalah string yang diekstrak.
application_status additional.fields Diekstrak dari kv_data saat event_type adalah "Status aplikasi". Kuncinya adalah "Status permohonan" dan nilainya adalah string yang diekstrak.
Assigned_hosts additional.fields Diekstrak dari kv_log_data saat event_type adalah "Status aplikasi". Kuncinya adalah "Assigned hosts" dan nilainya adalah string yang diekstrak.
Category security_result.description Bagian dari security_result.description saat et_lower adalah "nac policy log". Digabungkan dengan detail lainnya.
command principal.process.command_line Diekstrak dari kolom rnmsg dalam log CEF saat dimulai dengan "command:".
Connected_clients additional.fields Diekstrak dari kv_log_data saat event_type adalah "Status aplikasi". Kuncinya adalah "Connected clients" dan nilainya adalah string yang diekstrak.
CPU_usage additional.fields Diekstrak dari kv_data saat event_type adalah "Statistik sistem". Kuncinya adalah "Penggunaan CPU" dan nilainya adalah string yang diekstrak.
cs1 additional.fields Dipetakan langsung dari kolom cs1 dalam log CEF. Kuncinya adalah "Nama Kebijakan Kepatuhan".
cs2 additional.fields Dipetakan langsung dari kolom cs2 dalam log CEF. Kuncinya adalah "Nama Subaturan Kebijakan Kepatuhan".
cs3 additional.fields Dipetakan langsung dari kolom cs3 dalam log CEF. Kuncinya adalah "Status Kepatuhan Host".
cs4 additional.fields Dipetakan langsung dari kolom cs4 dalam log CEF. Kuncinya adalah "Pemicu Peristiwa Kepatuhan".
data security_result.description Digunakan di berbagai bagian parser untuk mengekstrak informasi dan berkontribusi pada kolom UDM akhir. Tidak dipetakan langsung ke satu kolom UDM.
details security_result.description Digunakan untuk mengisi security_result.description dalam beberapa kasus, termasuk saat mengurai peristiwa "Log" dan perubahan sesi pengguna. Dapat diuraikan lebih lanjut untuk mendapatkan informasi tertentu.
Destination target.ip, target.hostname Diuraikan dari kv_data atau data. Jika dapat dikonversi menjadi alamat IP, alamat tersebut dipetakan ke target.ip. Jika tidak, nilai ini dipetakan ke target.hostname.
deviceExternalId about.asset.asset_id Dipetakan langsung dari kolom deviceExternalId di log CEF, dengan awalan "Forescout.CommandCenter:".
dhost target.hostname Dipetakan langsung dari kolom dhost dalam log CEF.
dmac target.mac Dipetakan langsung dari kolom dmac dalam log CEF.
dntdom target.administrative_domain Dipetakan langsung dari kolom dntdom dalam log CEF.
dst target.ip Dipetakan langsung dari kolom dst dalam log CEF.
dpt target.port Dipetakan langsung dari kolom dpt dalam log CEF.
duser target.user.user_display_name Dipetakan langsung dari kolom duser dalam log CEF.
dvc about.ip Dipetakan langsung dari kolom dvc dalam log CEF.
dvchost about.hostname Dipetakan langsung dari kolom dvchost dalam log CEF.
EM_connection_status additional.fields Diekstrak dari kv_log_data saat event_type adalah "Status aplikasi". Kuncinya adalah "Status koneksi EM" dan nilainya adalah string yang diekstrak.
Engine_status additional.fields Diekstrak dari kv_log_data saat event_type adalah "Status aplikasi". Kuncinya adalah "Status mesin" dan nilainya adalah string yang diekstrak.
event_type metadata.description, security_result.summary Diuraikan dari pesan log. Digunakan untuk menentukan jenis peristiwa UDM dan kolom lainnya. Jika acara adalah "GENERIC_EVENT", acara tersebut juga digunakan untuk deskripsi.
eventtype additional.fields Dipetakan langsung dari kolom eventtype dalam log CEF. Kuncinya adalah "eventtype".
externalId metadata.product_log_id Dipetakan langsung dari kolom externalId dalam log CEF.
from\[...\] to\[...\] principal.ip, target.ip Mengekstrak IP sumber dan tujuan dari pola "dari[...] ke[...]".
Host principal.ip, principal.hostname Diuraikan dari kv_data saat et_lower adalah "blokir acara". Jika dapat dikonversi menjadi IP, dipetakan ke principal.ip; jika tidak, dipetakan ke principal.hostname.
Hostname principal.hostname, principal.asset.hostname Dipetakan ke principal.hostname dan principal.asset.hostname jika ada dalam peristiwa yang mendeteksi perubahan properti.
Installed_Plugins additional.fields Diekstrak dari kv_log_data saat event_type adalah "Status aplikasi". Kuncinya adalah "Plugin yang Diinstal" dan nilainya adalah string yang diekstrak.
iporhost intermediary.ip, intermediary.hostname Diuraikan dari header_data. Jika dapat dikonversi menjadi IP, dipetakan ke intermediary.ip; jika tidak, dipetakan ke intermediary.hostname.
Is Virtual Firewall blocking rule security_result.action, security_result.rule_name Jika "true", tetapkan security_result.action ke "BLOCK" dan security_result.rule_name ke "Virtual Firewall blocking".
log_description security_result.summary Dipetakan langsung ke security_result.summary jika ada.
log_type metadata.log_type Ditetapkan ke nilai konstanta "FORESCOUT_NAC".
MAC principal.mac Diuraikan dari kv_data dalam peristiwa yang mendeteksi perubahan properti dan diformat sebagai alamat MAC.
mail_from network.email.from Dipetakan langsung dari kolom mail_from yang diekstrak dari mail_details.
mail_subject network.email.subject Dipetakan langsung dari kolom mail_subject yang diekstrak dari mail_details.
mail_to network.email.to Dipetakan langsung dari kolom mail_to yang diekstrak dari mail_details.
Match security_result.rule_name Dipetakan langsung dari kolom Match saat et_lower adalah "nac policy log".
metadata.event_type metadata.event_type Ditentukan oleh berbagai kondisi di parser, termasuk keberadaan kolom dan kata kunci tertentu dalam pesan log. Secara default adalah GENERIC_EVENT dan diperbarui berdasarkan data yang diuraikan. Contohnya meliputi USER_LOGIN, USER_LOGOUT, NETWORK_CONNECTION, SCAN_NETWORK, STATUS_UPDATE, EMAIL_TRANSACTION, dan USER_UNCATEGORIZED.
metadata.product_name metadata.product_name Ditetapkan ke "FORESCOUT NAC" untuk sebagian besar peristiwa, atau ke nilai kolom product jika ada. Untuk peristiwa CEF, kolom ini disetel ke "CounterAct".
metadata.vendor_name metadata.vendor_name Tetapkan ke "FORESCOUT" untuk sebagian besar peristiwa. Untuk peristiwa CEF, nilai ini diambil dari kolom cs1Label jika ada, atau ditetapkan ke "ForeScout Technologies".
msg metadata.description Dipetakan langsung dari kolom msg dalam log CEF.
pid intermediary.process.pid Dipetakan langsung dari kolom pid yang diekstrak dari header_data.
policy_details security_result.description Bagian dari security_result.description saat et_lower adalah "nac policy log". Digabungkan dengan detail lainnya.
product metadata.product_name Dipetakan langsung ke metadata.product_name jika ada.
proto network.ip_protocol Dipetakan langsung dari kolom proto dalam log CEF.
Reason security_result.description Dipetakan langsung dari kolom Reason saat et_lower adalah "block event".
resource principal.resource.name Dipetakan langsung dari kolom resource dalam log CEF.
rnmsg security_result.description, principal.process.command_line Jika diawali dengan "command:", bagian setelah "command:" dipetakan ke principal.process.command_line. Jika tidak, nilai ini dipetakan ke security_result.description.
rt metadata.event_timestamp Dipetakan langsung dari kolom rt dalam log CEF, dikonversi menjadi stempel waktu.
Rule security_result.rule_id Dipetakan langsung dari kolom Rule saat et_lower adalah "nac policy log".
security_result.severity security_result.severity Diperoleh dari kolom severity_level. 0-3 dipetakan ke RENDAH, 4-6 dipetakan ke SEDANG, 7-8 dipetakan ke TINGGI, dan 9-10 dipetakan ke KRITIS.
security_result.severity_details security_result.severity_details Dipetakan langsung dari kolom severity dalam log CEF.
Service target.port, network.ip_protocol Diuraikan untuk mengekstrak port dan protokol. Port dipetakan ke target.port dan protokol ke network.ip_protocol.
session_id network.session_id Dipetakan langsung dari kolom session_id.
severity security_result.severity_details Dipetakan langsung dari kolom severity dalam log CEF.
severity_level security_result.severity Digunakan untuk menentukan security_result.severity.

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