Mengumpulkan log McAfee Firewall Enterprise
Dokumen ini menjelaskan cara mengumpulkan log McAfee Firewall Enterprise. Kode parser pertama-tama mengekstrak kolom menggunakan serangkaian pola Grok, yang menangani format SYSLOG dan JSON. Kemudian, bergantung pada kategori log yang diidentifikasi, skema ini akan menerapkan pola Grok dan ekstraksi nilai kunci tertentu untuk memetakan data ke dalam skema UDM Google Security Operations.
Sebelum memulai
- Pastikan Anda memiliki instance Google Security Operations.
- Pastikan Anda menggunakan Windows 2016 atau yang lebih baru, atau host Linux dengan
systemd
. - Jika berjalan di balik proxy, pastikan port firewall terbuka.
- Pastikan Anda memiliki akses dengan hak istimewa ke McAfee ESM.
Mendapatkan file autentikasi penyerapan Google SecOps
- Login ke konsol Google SecOps.
- Buka Setelan SIEM > Agen Pengumpulan.
- Download File Autentikasi Proses Transfer. 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
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 ini.
Mengonfigurasi Agen BindPlane untuk menyerap Syslog dan mengirim 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 with your specific IP and port listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip # Path to the ingestion authentication file creds: '/path/to/your/ingestion-auth.json' # Your Chronicle customer ID customer_id: 'your_customer_id' endpoint: malachiteingestion-pa.googleapis.com ingestion_labels: log_type: SYSLOG namespace: mcafee_esm 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
Di Linux, untuk memulai ulang Agen BindPlane, jalankan perintah berikut:
sudo systemctl restart bindplane-agent
Di Windows, untuk memulai ulang Agen BindPlane, Anda dapat menggunakan konsol Services atau memasukkan perintah berikut:
net stop BindPlaneAgent && net start BindPlaneAgent
Mengonfigurasi McAfee ESM untuk Meneruskan Syslog
- Login ke konsol McAfee ESM.
- Buka System Properties > Event Forwarding.
- Klik Tambahkan untuk membuat aturan penerusan syslog baru.
- Konfigurasikan setelan berikut:
- Nama: masukkan nama deskriptif (misalnya, Google SecOps Forwarding).
- Alamat IP Tujuan: masukkan IP server Syslog (atau agen BindPlane) Anda.
- Destination Port: gunakan 514 untuk UDP (Anda dapat menentukan port lain, bergantung pada konfigurasi server Syslog/Bindplane).
- Protokol: pilih UDP (pilihan lainnya adalah TCP atau TLS, bergantung pada konfigurasi server Syslog/Bindplane Anda).
- Format: pilih CEF (Common Event Format) atau ASCII (format yang direkomendasikan untuk log McAfee).
- Filter: menentukan jenis peristiwa yang ingin diteruskan, misalnya log firewall, peristiwa autentikasi, atau deteksi ancaman.
- Klik Save.
- Mulai ulang layanan McAfee ESM agar perubahan dapat diterapkan.
Tabel Pemetaan UDM
Kolom log | Pemetaan UDM | Logika |
---|---|---|
tindakan | security_result.action_details | Nilai diambil dari kolom "act" dalam payload JSON yang diuraikan. |
kucing | security_result.category_details | Nilai diambil dari kolom "cat" dalam payload JSON yang diuraikan. |
data.AppID | target.application | Nilai diambil dari kolom "AppID" dalam payload JSON yang diuraikan. |
data.Destination_Hostname | target.hostname | Nilai diambil dari kolom "Destination_Hostname" dalam payload JSON yang diuraikan. |
data.Destination_UserID | target.user.windows_sid | Nilai diambil dari kolom "Destination_UserID" dalam payload JSON yang diuraikan. |
data.DomainID | target.administrative_domain | Nilai diambil dari kolom "DomainID" dalam payload JSON yang diuraikan. |
data.dst_ip | target.ip | Nilai diambil dari kolom "dst_ip" dalam payload JSON yang diuraikan. |
data.dst_mac | target.mac | Nilai diambil dari kolom "dst_mac" dalam payload JSON yang diuraikan. |
data.dst_port | target.port | Nilai diambil dari kolom "dst_port" dalam payload JSON yang diuraikan dan dikonversi menjadi bilangan bulat. |
data.HostID | target.hostname | Nilai diambil dari kolom "HostID" dalam payload JSON yang diuraikan. |
data.norm_sig.name | Kolom ini menentukan jenis peristiwa berdasarkan nilainya. | |
data.PID | target.process.pid | Nilai diambil dari kolom "PID" dalam payload JSON yang diuraikan. |
data.Process_Name | target.process.command_line | Nilai diambil dari kolom "Process_Name" dalam payload JSON yang diuraikan. |
data.severity | security_result.severity | Nilai diambil dari kolom "severity" dalam payload JSON yang diuraikan, dikonversi menjadi bilangan bulat, dan dipetakan ke tingkat keparahan UDM berdasarkan nilainya: RENDAH (1-32), SEDANG (33-65), TINGGI (66-100). |
data.sig.name | security_result.description | Nilai diambil dari kolom "sig.name" dalam payload JSON yang diuraikan. |
data.Source_Logon_ID | about.labels.value | Nilai diambil dari kolom "Source_Logon_ID" dalam payload JSON yang diuraikan. |
data.Source_UserID | principal.user.windows_sid | Nilai diambil dari kolom "Source_UserID" dalam payload JSON yang diuraikan. |
data.src_ip | principal.ip | Nilai diambil dari kolom "src_ip" dalam payload JSON yang diuraikan. |
data.src_mac | principal.mac | Nilai diambil dari kolom "src_mac" dalam payload JSON yang diuraikan. |
data.src_port | principal.port | Nilai diambil dari kolom "src_port" dalam payload JSON yang diuraikan dan dikonversi menjadi bilangan bulat. |
data.UserIDDst | target.user.userid | Nilai diambil dari kolom "UserIDDst" dalam payload JSON yang diuraikan. |
data.UserIDSrc | principal.user.userid | Nilai diambil dari kolom "UserIDSrc" dalam payload JSON yang diuraikan. |
deviceExternalId | about.asset.asset_id | Nilai diambil dari kolom "deviceExternalId" dalam payload JSON yang diuraikan dan digabungkan dengan nama produk untuk membuat ID aset unik. |
deviceTranslatedAddress | about.nat_ip | Nilai diambil dari kolom "deviceTranslatedAddress" dalam payload JSON yang diuraikan. |
dst | target.ip | Nilai diambil dari kolom "dst" dalam payload JSON yang diuraikan. |
dpt | target.port | Nilai diambil dari kolom "dpt" dalam payload JSON yang diuraikan dan dikonversi menjadi bilangan bulat. |
eventId | additional.fields.value.string_value | Nilai diambil dari kolom "eventId" dalam payload JSON yang diuraikan. |
externalId | metadata.product_log_id | Nilai diambil dari kolom "externalId" dalam payload JSON yang diuraikan. |
hostname | principal.hostname | Nilai diambil dari kolom "hostname" yang diekstrak oleh pola grok. |
log_category | metadata.log_type | Nilai diambil dari kolom "log_category" yang diekstrak oleh pola grok. |
log_type | metadata.product_event_type | Nilai diambil dari kolom "log_type" yang diekstrak oleh pola grok. |
message | Kolom ini diuraikan untuk mengekstrak berbagai kolom bergantung pada kategori log. | |
nitroURL | Kolom ini tidak dipetakan ke objek IDM di UDM. | |
pid | principal.process.pid | Nilai diambil dari kolom "pid" yang diekstrak oleh pola grok. |
process_id | about.process.pid | Nilai diambil dari kolom "process_id" yang diekstrak oleh pola grok. |
proto | network.ip_protocol | Nilai diambil dari kolom "proto" dalam payload JSON yang diuraikan dan dipetakan ke protokol IP yang sesuai. |
rhost | principal.ip | Nilai diambil dari kolom "rhost" yang diekstrak oleh pola grok dan diuraikan sebagai alamat IP. |
shost | principal.hostname | Nilai diambil dari kolom "shost" dalam payload JSON yang diuraikan. |
sntdom | principal.administrative_domain | Nilai diambil dari kolom "sntdom" dalam payload JSON yang diuraikan. |
spt | principal.port | Nilai diambil dari kolom "spt" dalam payload JSON yang diuraikan dan dikonversi menjadi bilangan bulat. |
src | principal.ip | Nilai diambil dari kolom "src" dalam payload JSON yang diuraikan. |
waktu | timestamp | Nilai diambil dari kolom "time" yang diekstrak oleh pola grok dan diuraikan sebagai stempel waktu. |
jenis | metadata.product_event_type | Nilai diambil dari kolom "type" yang diekstrak oleh filter kv. |
uid | principal.user.userid | Nilai diambil dari kolom "uid" yang diekstrak oleh filter kv. |
metadata.event_type | metadata.event_type | Nilai ditetapkan berdasarkan nama peristiwa dan kolom lain dalam log. Logika untuk menentukan jenis peristiwa adalah sebagai berikut: - Jika nama peristiwa berisi "TCP", jenis peristiwa ditetapkan ke "NETWORK_CONNECTION". - Jika nama peristiwa berisi "Mail", jenis peristiwa ditetapkan ke "EMAIL_TRANSACTION". - Jika nama peristiwa berisi "HTTP" atau "http", jenis peristiwa ditetapkan ke "NETWORK_HTTP". - Jika nama peristiwa berisi "User Accessed" atau "denied by access-list", jenis peristiwa ditetapkan ke "USER_RESOURCE_ACCESS". - Jika nama peristiwa berisi "Data Source Idle", jenis peristiwa ditetapkan ke "STATUS_UPDATE". - Jika nama peristiwa berisi "Comm with snowflex", jenis peristiwa ditetapkan ke "SERVICE_UNSPECIFIED". - Jika nama peristiwa berisi "Akun berhasil login", jenis peristiwa ditetapkan ke "USER_LOGIN". - Jika nama peristiwa berisi "Status inisialisasi untuk objek layanan", jenis peristiwa ditetapkan ke "GENERIC_EVENT". - Jika tidak ada kondisi di atas yang terpenuhi, jenis peristiwa akan ditetapkan ke "GENERIC_EVENT". |
metadata.vendor_name | metadata.vendor_name | Nilai ditetapkan ke "MCAFEE". |
network.direction | network.direction | Nilai ditetapkan ke "INBOUND" jika kolom "deviceDirection" dalam payload JSON yang diuraikan adalah 0. Jika tidak, nilai ini akan ditetapkan ke "KELUAR". |
security_result.severity | security_result.severity | Nilai ditetapkan ke "LOW" jika kolom "cef_event_severity" dalam payload JSON yang diuraikan adalah 1, "MEDIUM" jika 2, "HIGH" jika 3, dan "CRITICAL" jika 9. |
Perubahan
2024-03-21
- Parser yang baru dibuat.