Mengumpulkan log Forescout NAC
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
- Login ke konsol Google SecOps.
- Buka Setelan SIEM > Agen Pengumpulan.
- Download File Autentikasi Penyerapan. Simpan file dengan aman di sistem tempat BindPlane akan diinstal.
Mendapatkan ID pelanggan Google SecOps
- Login ke konsol Google SecOps.
- Buka Setelan SIEM > Profil.
- 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
- Buka Command Prompt atau PowerShell sebagai administrator.
Jalankan perintah berikut:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Penginstalan Linux
- Buka terminal dengan hak istimewa root atau sudo.
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
- 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).
- Cari file
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
Ganti port dan alamat IP sesuai kebutuhan di infrastruktur Anda.
Ganti
<customer_id>
dengan ID pelanggan yang sebenarnya.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
- Buka halaman Forescout Base Plugins dan download file plugin .fpi.
- Simpan file ke komputer tempat CounterACT Console diinstal.
- Login ke CounterACT Console.
- Pilih Options > Plugins > Install.
- Telusuri dan pilih file FPI plugin tersimpan.
- Klik Instal.
- Setujui perjanjian lisensi untuk melanjutkan.
- Setelah penginstalan selesai, klik Close.
- Pilih plugin dari panel Plugin, lalu klik Start.
- Pilih CounterACT Appliances tempat plugin akan dimulai (Sebaiknya jalankan plugin di semua Appliance dalam lingkungan).
- Klik Oke.
- Klik Close.
Mengonfigurasi Syslog di Plugin Syslog Forescout CounterACT
- Di panel Plugins, klik Syslog > Configure.
- Pilih Appliance atau Enterprise Manager dari dialog, lalu klik OK.
- Di bagian Kirim Peristiwa Ke, klik Tambahkan.
- 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.
- Buka tab Syslog Trigger.
- Jangan centang kotak Only send messages generated by the "Send Message to Syslog" action.
- Centang hanya kotak Sertakan stempel waktu dan ID perangkat CounterACT dalam semua pesan.
- 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.
- Buka tab Konfigurasi Tindakan Default.
- 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.
- 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.