Mengumpulkan log McAfee Web Gateway
Dokumen ini menjelaskan cara menyerap log McAfee Web Gateway ke Google Security Operations menggunakan agen Bindplane. Parser mengekstrak kolom dari log dalam format SYSLOG + KV (CEF), JSON, dan mentah. Prosesor ini menggunakan filter grok dan csv untuk mengurai struktur log yang berbeda, dan menormalisasi nama kolom. Kemudian, kolom yang diekstrak dipetakan ke skema Model Data Terpadu (UDM), menangani berbagai kasus ekstrem dan inkonsistensi data untuk membuat output terpadu.
Sebelum memulai
Pastikan Anda memiliki 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 McAfee Web Gateway
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
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: '/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: MCAFEE_WEBPROXY 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 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 McAfee Web Gateway
- Login ke UI web McAfee Web Gateway Anda.
- Buka Policy > Rule Sets.
- Klik Log Handler, lalu luaskan set aturan Default, dan pilih set aturan CEF Syslog bertingkat.
- Aktifkan aturan Send to Syslog.
- Klik Simpan Perubahan.
- Buka Configuration > Appliances > Log File Manager > Settings.
- Pilih Tulis log audit ke syslog.
- Buka Configuration > File Editor.
- Pilih rsyslog.conf di struktur file.
- Edit file sebagai berikut:
- Temukan baris (atau yang serupa):
*.info;mail.none;authpriv.none;cron.none /var/log/messages
. - Tambahkan daemon di baris ini dan sisipkan - (tanda hubung) sebelum informasi jalur:
*.info;daemon.!=info;mail.none;authpriv.none;cron.none -/var/log/messages
- Temukan baris (atau yang serupa):
Tambahkan baris baru di bagian bawah file untuk mengirim pesan info ke alamat IP agen Bindplane.
Untuk syslog melalui UDP:
daemon.info;auth.=info @<bindplane-server-ip>:<bindplane-port>
Untuk syslog melalui TCP:
daemon.info;auth.=info @@<bindplane-server-ip>:<bindplane-port>
Tabel pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
application_name |
principal.application |
Dipetakan langsung dari kolom application_name dalam format KV atau user_agent_product dalam format JSON. |
auth_user |
principal.user.userid |
Dipetakan langsung dari kolom auth_user dalam format KV. |
block_reason |
security_result.summary |
Dipetakan langsung dari kolom block_reason dalam format JSON dan CSV JSON, atau _block_reason dalam format mentah, atau block_reason dalam format KV. |
block_res |
security_result.action |
Dipetakan dari kolom block_res dalam format KV. Jika block_res adalah DENIED atau berisi Block , tindakannya adalah BLOCK . Jika block_res adalah 0 atau berisi Allow , tindakannya adalah ALLOW . Nilai khusus seperti 50 , 51 , 52 , 53 , 58 , 59 , 81 , 80 , 82 , 83 , 84 , 110 , 111 digunakan untuk menentukan security_result.category . |
bytes_from_client |
network.sent_bytes |
Dipetakan langsung dari kolom bytes_from_client dalam format KV, atau sr_bytes dalam format mentah, atau client_to_server_bytes dalam format JSON dan CSV JSON. |
bytes_to_client |
network.received_bytes |
Dipetakan langsung dari kolom bytes_to_client dalam format KV, atau rs_bytes dalam format mentah, atau server_to_client_bytes dalam format JSON dan CSV JSON. |
categories |
security_result.category_details |
Dipetakan langsung dari kolom categories dalam format KV, atau _category dalam format mentah, atau category dalam format JSON dan CSV JSON. |
client_ip |
principal.ip , intermediary.ip |
Dipetakan langsung dari kolom client_ip dalam format JSON. |
clientIP |
principal.ip |
Dipetakan langsung dari kolom clientIP dalam format CEF. |
csmethod |
network.http.method |
Dipetakan langsung dari kolom csmethod dalam format mentah. |
day |
metadata.event_timestamp |
Bagian stempel waktu, diekstrak dari kolom time_stamp dalam format KV. |
destination_ip |
target.ip |
Dipetakan langsung dari kolom destination_ip dalam format JSON. |
destination_port |
target.port |
Dipetakan langsung dari kolom destination_port dalam format JSON. |
domain |
target.hostname , target.url |
Dipetakan langsung dari kolom domain dalam format mentah. Digunakan untuk membuat target.url jika uri ada. |
header |
intermediary.hostname |
Diekstrak dari awal pesan log. Digunakan untuk mengekstrak intermediary.hostname . |
host |
target.hostname |
Dipetakan langsung dari kolom host dalam format KV. |
hostname |
principal.hostname |
Dipetakan langsung dari kolom hostname dalam format JSON. |
hour |
metadata.event_timestamp |
Bagian stempel waktu, diekstrak dari kolom time_stamp dalam format KV. |
http_action |
network.http.method |
Dipetakan langsung dari kolom http_action dalam format JSON. |
http_status_code |
network.http.response_code |
Dipetakan langsung dari kolom http_status_code dalam format JSON dan CSV JSON, atau status_code dalam format mentah dan KV. |
kv_entry.application_name |
principal.application |
Dipetakan langsung dari kolom application_name dalam entri KV. |
kv_entry.auth_user |
principal.user.userid |
Dipetakan langsung dari kolom auth_user dalam entri KV. |
kv_entry.block_reason |
security_result.summary |
Dipetakan langsung dari kolom block_reason dalam entri KV. |
kv_entry.block_res |
security_result.action , security_result.category |
Dipetakan dari kolom block_res dalam entri KV. Logika untuk menentukan tindakan dan kategori sama dengan logika untuk kolom block_res tingkat teratas. |
kv_entry.bytes_from_client |
network.sent_bytes |
Dipetakan langsung dari kolom bytes_from_client dalam entri KV. |
kv_entry.bytes_to_client |
network.received_bytes |
Dipetakan langsung dari kolom bytes_to_client dalam entri KV. |
kv_entry.categories |
security_result.category_details |
Dipetakan langsung dari kolom categories dalam entri KV. |
kv_entry.host |
target.hostname |
Dipetakan langsung dari kolom host dalam entri KV. |
kv_entry.method |
network.http.method |
Dipetakan langsung dari kolom method dalam entri KV. |
kv_entry.rep_level |
security_result.severity_details |
Dipetakan langsung dari kolom rep_level dalam entri KV. |
kv_entry.server_ip |
target.ip |
Dipetakan langsung dari kolom server_ip dalam entri KV. |
kv_entry.status_code |
network.http.response_code |
Dipetakan langsung dari kolom status_code dalam entri KV. |
kv_entry.time_stamp |
metadata.event_timestamp |
Dipetakan langsung dari kolom time_stamp dalam entri KV. |
kv_entry.url |
target.url |
Dipetakan langsung dari kolom url dalam entri KV. |
kv_entry.url_port |
target.port |
Dipetakan langsung dari kolom url_port dalam entri KV. |
kv_entry.user_agent |
network.http.parsed_user_agent |
Dipetakan langsung dari kolom user_agent dalam entri KV, lalu diurai menjadi objek terstruktur. |
last_rule |
security_result.rule_name |
Dipetakan langsung dari kolom last_rule dalam format JSON. |
loc |
principal.location.country_or_region |
Dipetakan langsung dari kolom loc yang diekstrak dari tgt_ip_or_location . |
location |
principal.location.country_or_region |
Dipetakan langsung dari kolom location dalam format JSON. |
log.file.path |
principal.process.file.full_path |
Dipetakan langsung dari kolom log.file.path dalam format JSON. |
message |
Bervariasi | Pesan log mentah. Diparsing secara berbeda bergantung pada formatnya (raw, JSON, KV, CEF). |
method |
network.http.method |
Dipetakan langsung dari kolom method dalam format KV dan mentah, atau http_action dalam format JSON, atau berasal dari data CEF. Jika nilainya adalah salah satu dari GET , POST , HEAD , OPTIONS , PUT , CONNECT , metadata.event_type akan ditetapkan ke NETWORK_HTTP . Jika nilainya adalah - atau CERTVERIFY , metadata.event_type akan ditetapkan ke NETWORK_CONNECTION . |
mins |
metadata.event_timestamp |
Bagian stempel waktu, diekstrak dari kolom time_stamp dalam format KV. |
month |
metadata.event_timestamp |
Bagian stempel waktu, diekstrak dari kolom time_stamp dalam format KV, atau kolom rt dalam format CEF. |
monthday |
metadata.event_timestamp |
Bagian stempel waktu, diekstrak dari awal pesan log. |
protocol |
network.application_protocol |
Dipetakan langsung dari kolom protocol dalam format mentah, atau uri_scheme dalam format JSON, atau berasal dari kolom url dalam format KV. |
query |
target.url |
Dipetakan langsung dari kolom query dalam format mentah. Ditambahkan ke kolom url . |
rep_level |
security_result.severity_details |
Dipetakan langsung dari kolom rep_level dalam format KV, atau reputation dalam format JSON, atau _risk dalam format mentah. Digunakan untuk menentukan security_result.severity . |
request |
target.url |
Dipetakan langsung dari kolom request dalam format CEF. |
requestClientApplication |
network.http.user_agent |
Dipetakan langsung dari kolom requestClientApplication dalam format CEF. |
requestContext |
network.http.referral_url |
Dipetakan langsung dari kolom requestContext dalam format CEF. |
requestMethod |
network.http.method |
Dipetakan langsung dari kolom requestMethod dalam format CEF. |
requested_host |
target.url |
Dipetakan langsung dari kolom requested_host dalam format JSON. Digunakan untuk membuat target.url jika requested_path juga ada. |
requested_path |
target.url |
Dipetakan langsung dari kolom requested_path dalam format JSON. Ditambahkan ke requested_host untuk membentuk target.url . |
request_timestamp |
metadata.event_timestamp |
Dipetakan langsung dari kolom request_timestamp dalam format JSON. |
result |
security_result.action , security_result.category |
Dipetakan langsung dari kolom result dalam format JSON dan CSV JSON, atau block_res dalam format KV. Digunakan untuk menentukan security_result.action dan security_result.category . |
rt |
metadata.event_timestamp |
Dipetakan langsung dari kolom rt dalam format CEF. |
secs |
metadata.event_timestamp |
Bagian stempel waktu, diekstrak dari kolom time_stamp dalam format KV. |
server_ip |
target.ip |
Dipetakan langsung dari kolom server_ip dalam format KV. |
source_ip |
principal.ip |
Dipetakan langsung dari kolom source_ip dalam format JSON, CSV JSON, mentah, dan KV, atau src dalam format CEF, atau src_ip dalam format mentah. |
src |
principal.ip |
Dipetakan langsung dari kolom src dalam format CEF. |
status_code |
network.http.response_code |
Dipetakan langsung dari kolom status_code dalam format mentah. |
summary |
security_result.summary |
Dipetakan langsung dari kolom summary dalam format CSV, atau block_reason dalam format JSON. |
system |
principal.platform |
Dipetakan langsung dari kolom system dalam format JSON. Dikonversi menjadi huruf besar. |
target_ip |
target.ip |
Dipetakan langsung dari kolom target_ip dalam format mentah, atau dst dalam format CEF. |
tgtport |
target.port |
Dipetakan langsung dari kolom tgtport dalam format mentah. |
time |
metadata.event_timestamp |
Bagian stempel waktu, diekstrak dari awal pesan log, atau kolom rt dalam format CEF, atau kolom time_stamp dalam format KV. |
timestamp |
metadata.event_timestamp |
Dipetakan langsung dari kolom @timestamp dalam format JSON. |
timezone |
metadata.event_timestamp |
Bagian stempel waktu, diekstrak dari kolom time_stamp dalam format KV. |
uri |
target.url |
Dipetakan langsung dari kolom uri dalam format mentah. Digunakan untuk membuat target.url . |
uri_scheme |
network.application_protocol |
Dipetakan langsung dari kolom uri_scheme dalam format JSON. Dikonversi menjadi huruf besar. |
url |
target.url |
Dipetakan langsung dari kolom url dalam format mentah, KV, dan JSON, atau dibuat dari domain , uri , dan query dalam format mentah, atau requested_host dan requested_path dalam format JSON, atau request dalam format CEF. |
url_port |
target.port |
Dipetakan langsung dari kolom url_port dalam format KV. |
user |
principal.user.userid |
Dipetakan langsung dari kolom user dalam format JSON, atau username dalam format JSON, atau auth_user dalam format KV, atau suser dalam format mentah. |
user_agent |
network.http.parsed_user_agent |
Dipetakan langsung dari kolom user_agent dalam format mentah dan KV, atau user_agent_comment dalam format JSON, atau requestClientApplication dalam format CEF, atau dibuat dari agent.type dan agent.version dalam format JSON. Diuraikan menjadi objek terstruktur. |
user_agent_comment |
network.http.parsed_user_agent |
Dipetakan langsung dari kolom user_agent_comment dalam format JSON. |
user_agent_product |
principal.application |
Dipetakan langsung dari kolom user_agent_product dalam format JSON. |
username |
principal.user.userid |
Dipetakan langsung dari kolom username dalam format JSON. |
year |
metadata.event_timestamp |
Bagian stempel waktu, diekstrak dari kolom time_stamp dalam format KV, atau kolom rt dalam format CEF. |
T/A | metadata.event_type |
Ditentukan oleh parser berdasarkan kolom method . Dapat berupa NETWORK_HTTP , NETWORK_CONNECTION , GENERIC_EVENT , atau STATUS_UPDATE . |
T/A | metadata.log_type |
Hardcode ke MCAFEE_WEBPROXY . |
T/A | metadata.product_name |
Hardcode ke MCAFEE_WEBPROXY . |
T/A | metadata.vendor_name |
Hardcode ke MCAFEE . |
T/A | network.direction |
Hardcode ke OUTBOUND . |
T/A | security_result.action |
Ditentukan oleh parser berdasarkan kolom block_reason atau result . Dapat berupa ALLOW atau BLOCK . |
T/A | security_result.category |
Ditentukan oleh parser berdasarkan kolom result . Dapat berupa NETWORK_CATEGORIZED_CONTENT , NETWORK_DENIAL_OF_SERVICE , MAIL_SPAM , AUTH_VIOLATION , SOFTWARE_MALICIOUS , NETWORK_SUSPICIOUS , atau NETWORK_MALICIOUS . |
T/A | security_result.severity |
Ditentukan oleh parser berdasarkan kolom risk . Dapat berupa LOW , MEDIUM , atau HIGH . |
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.