Mengumpulkan log VPN Cisco
Dokumen ini menjelaskan cara menyerap log VPN Cisco ASA ke Google Security Operations menggunakan Bindplane. Parser mengekstrak kolom dari pesan syslog menggunakan pola grok, yang menangani format syslog standar dan struktur pesan alternatif. Kemudian, kolom yang diekstrak dipetakan ke Model Data Terpadu (UDM), mengategorikan peristiwa berdasarkan ID dan informasi yang diekstrak, serta memperkaya data dengan metadata seperti vendor, produk, dan jenis peristiwa. Parser juga menangani ID peristiwa tertentu, menerapkan pola dan logika grok tambahan untuk mengekstrak detail yang relevan dan memetakannya ke kolom UDM yang sesuai.
Sebelum memulai
Pastikan Anda memenuhi prasyarat berikut:
- Instance Google SecOps
- Host Windows 2016 atau yang lebih baru, atau host Linux dengan
systemd
- Jika dijalankan di belakang proxy, port firewall terbuka
- Akses istimewa ke Cisco ASA
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 log_type: 'CISCO_VPN' raw_log_field: body ingestion_labels: 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 untuk VPN Cisco ASA
- Buka Cisco ASDM.
- Buka Konfigurasi > Fitur > Properti > Logging > Penyiapan Logging.
- Centang kotak Enable logging untuk mengaktifkan syslog.
- Pilih Syslog Servers di Logging, lalu klik Add.
- Masukkan detail konfigurasi berikut di jendela Add Syslog Server:
- Antarmuka: Pilih antarmuka untuk komunikasi keluar.
- Alamat IP: Masukkan alamat IP agen Bindplane.
- Protocol: Pilih UDP.
- Port: Masukkan nomor port agen Bindplane.
- Klik Oke.
- Pilih Logging Filters di bagian logging.
- Pilih Syslog Servers, lalu klik Edit.
- Pilih Informasional dari daftar sebagai Filter berdasarkan tingkat keparahan.
- Klik Oke.
- Klik Terapkan.
Tabel pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
accesslist |
target.resource.name |
Diekstrak dari message_info saat eventtype adalah "ASA-4-106103". Mewakili nama daftar akses. |
action |
security_result.action |
Diperoleh oleh parser berdasarkan kata kunci dalam pesan log (misalnya, Tolak", "Tolak", "Izinkan", "Setuju"). Maps untuk DIIZINKAN atau DIBLOKIR. |
action |
security_result.action_details |
Nilai string mentah dari tindakan yang dilakukan (misalnya, "permitted", "denied", "disconnected"). |
app_name |
principal.application |
Nama aplikasi yang digunakan oleh principal (misalnya, "CLI"). Diekstrak dari message_details untuk ID acara 111008, 111009, dan 111010. |
assigned_ipv4 |
T/A | Meskipun diuraikan, kolom ini tidak dipetakan ke objek IDM di UDM. |
assigned_ipv6 |
T/A | Meskipun diuraikan, kolom ini tidak dipetakan ke objek IDM di UDM. |
bytes_rcv |
network.received_bytes |
Jumlah byte yang diterima dalam sesi. Diekstrak dari log_mssg untuk ID acara 113019. |
bytes_sent |
network.sent_bytes |
Jumlah byte yang dikirim dalam sesi. Diekstrak dari log_mssg untuk ID acara 113019. |
cipher |
network.tls.cipher |
Cipher yang digunakan untuk sesi SSL. Diekstrak dari message_info untuk eventtype 725012. |
cisco_message_number |
security_result.rule_name |
Nomor pesan Cisco, diekstrak dari kolom eventtype . |
cisco_severity |
security_result.severity_details |
Tingkat keparahan Cisco mentah, diekstrak dari kolom eventtype . |
command |
T/A | Meskipun diuraikan, kolom ini tidak dipetakan ke objek IDM di UDM. |
cumulative_total_count.key |
security_result.outcomes.key |
Kunci "cumulative_total_count" ditambahkan ke array security_result.outcomes . |
cumulative_total_count.value |
security_result.outcomes.value |
Nilai jumlah total kumulatif, yang diekstrak dari message_info . |
current_average_rate.key |
security_result.outcomes.key |
Kunci "current_average_rate" ditambahkan ke array security_result.outcomes . |
current_average_rate.value |
security_result.outcomes.value |
Nilai tarif rata-rata saat ini, diekstrak dari message_info . |
current_burst_rate.key |
security_result.outcomes.key |
Kunci "current_burst_rate" ditambahkan ke array security_result.outcomes . |
current_burst_rate.value |
security_result.outcomes.value |
Nilai kecepatan burst saat ini, diekstrak dari message_info . |
desc |
metadata.description |
Deskripsi peristiwa, diekstrak dari pesan log. Digunakan saat deskripsi yang lebih spesifik tidak tersedia. |
description |
metadata.description |
Deskripsi peristiwa yang lebih mendetail, diekstrak dari pesan log jika tersedia. |
destination_ip |
target.ip , target.asset.ip |
Alamat IP tujuan, diekstrak dari berbagai format pesan log. |
destination_ip_port |
target.port atau network.application_protocol |
Port tujuan, diekstrak dari berbagai format pesan log. Jika nilai yang diekstrak bukan angka, nilai tersebut akan diperlakukan sebagai protokol aplikasi. |
dst_email |
target.user.email_addresses atau target.user.userid |
Alamat email atau ID pengguna tujuan, diekstrak dari message_info . Jika nilai cocok dengan format email, nilai tersebut akan ditambahkan ke email_addresses ; jika tidak, nilai tersebut akan digunakan sebagai userid . |
dst_host |
target.hostname |
Nama host tujuan, diekstrak dari message_info . |
dst_ip |
target.ip , target.asset.ip |
Alamat IP tujuan, diekstrak dari pola grok utama atau pola spesifik lainnya. |
dst_port |
target.port |
Port tujuan, diekstrak dari pola grok utama atau pola spesifik lainnya. |
duration |
network.session_duration |
Durasi sesi, diekstrak dari message_details dan dikonversi ke detik. |
event_date |
@timestamp |
Tanggal dan waktu peristiwa, dibuat dari berbagai kolom stempel waktu dalam log mentah dan diuraikan menggunakan filter date . |
event_id |
metadata.product_event_type (bagian dari) |
Digunakan bersama dengan event_severity untuk membentuk kolom metadata.product_event_type . |
event_name |
metadata.product_event_type (bagian dari) |
Digunakan bersama dengan event_severity dan event_type untuk membentuk kolom metadata.product_event_type jika tersedia. |
event_severity |
metadata.product_event_type (bagian dari), security_result.severity , is_alert , is_significant |
Digunakan bersama dengan event_id atau event_name dan event_type untuk membentuk kolom metadata.product_event_type . Juga digunakan untuk mendapatkan kolom security_result.severity , is_alert , dan is_significant . |
event_type |
metadata.product_event_type (bagian dari) |
Digunakan bersama dengan event_name dan event_severity untuk membentuk kolom metadata.product_event_type jika tersedia. |
eventtype |
metadata.product_event_type , security_result.rule_name , security_result.severity_details , security_result.severity |
String jenis peristiwa, yang digunakan untuk mendapatkan kolom metadata.product_event_type , security_result.rule_name , security_result.severity_details , dan security_result.severity . |
fragment_id |
security_result.about.resource.id |
ID fragmen IP, diekstrak dari message_details untuk ID peristiwa 209005. |
group |
principal.group.group_display_name , principal.user.group_identifiers , target.user.group_identifiers |
Nama grup, diekstrak dari berbagai format pesan log. |
group_name |
principal.group.group_display_name |
Nama grup diekstrak dari kolom group jika berupa nama host. |
has_principal_ip |
T/A | Variabel internal yang digunakan untuk logika, tidak dipetakan ke UDM. |
has_target_ip |
T/A | Variabel internal yang digunakan untuk logika, tidak dipetakan ke UDM. |
hostname |
principal.hostname , principal.asset.hostname |
Nama host prinsipal, diekstrak dari berbagai format pesan log. |
hostname2 |
principal.hostname , principal.asset.hostname |
Nama host entity utama, diekstrak sebagai penggantian jika hostname tidak tersedia. |
icmp_code |
T/A | Meskipun diuraikan, kolom ini tidak dipetakan ke objek IDM di UDM. |
icmp_dst_ip |
target.ip , target.asset.ip |
Alamat IP tujuan dari pesan error ICMP. |
icmp_id |
T/A | Meskipun diuraikan, kolom ini tidak dipetakan ke objek IDM di UDM. |
icmp_src_ip |
principal.ip , principal.asset.ip |
Alamat IP sumber dari pesan error ICMP. |
icmp_type |
T/A | Meskipun diuraikan, kolom ini tidak dipetakan ke objek IDM di UDM. |
intermediary_ip |
principal.ip , principal.asset.ip |
Alamat IP perantara, diekstrak dari message_info untuk ID peristiwa 111010. |
invalid_ip |
T/A | Variabel internal yang digunakan untuk logika, tidak dipetakan ke UDM. |
ip_1 |
principal.ip , principal.asset.ip |
Alamat IP sumber diekstrak sebagai penggantian jika IP sumber dan tujuan sama. |
ip_2 |
target.ip , target.asset.ip |
Alamat IP tujuan diekstrak sebagai penggantian jika IP sumber dan tujuan sama. |
ipprotocol |
network.ip_protocol |
Protokol IP, diekstrak dari berbagai format pesan log dan dikonversi menjadi huruf besar. |
issuer |
network.tls.client.certificate.issuer |
Penerbit sertifikat peer, diekstrak dari message_details untuk ID peristiwa 717037. |
local_proxy_ip |
intermediary.ip |
Alamat IP proxy lokal, diekstrak dari message_details untuk ID peristiwa 713041. |
log_mssg |
security_result.description , sr.action |
Digunakan untuk mengisi kolom security_result.description dan mengekstrak tindakan autentikasi. |
login |
security_result.summary |
Status login, diekstrak dari message_info . |
max_configured_rate.key |
security_result.outcomes.key |
Kunci "max_configured_rate" ditambahkan ke array security_result.outcomes . |
max_configured_rate.value |
security_result.outcomes.value |
Nilai tarif maksimum yang dikonfigurasi, diekstrak dari message_info . |
message_details |
Berbagai kolom | Bagian utama pesan log, yang berisi detail tentang peristiwa. Diuraikan menggunakan berbagai pola grok, bergantung pada ID peristiwa. |
message_info |
metadata.description |
Digunakan untuk mengisi kolom metadata.description jika tersedia. |
observer |
observer.hostname atau observer.ip |
Nama host atau alamat IP pengamat, diekstrak dari pesan log. |
observer_ip |
observer.ip |
Alamat IP pengamat, diekstrak dari kolom observer . |
peer_type |
T/A | Meskipun diuraikan, kolom ini tidak dipetakan ke objek IDM di UDM. |
policy |
target.resource.name |
Nama kebijakan, diekstrak dari message_details untuk ID peristiwa 113003. |
policy_name |
target.resource.name |
Nama kebijakan, diekstrak dari message_details untuk ID peristiwa 113009 dan 113011. |
principal_ip |
principal.ip , principal.asset.ip |
Alamat IP utama, diekstrak dari message_details untuk ID peristiwa 113009. |
privilege_level_from |
T/A | Meskipun diuraikan, kolom ini tidak dipetakan ke objek IDM di UDM. |
privilege_level_to |
T/A | Meskipun diuraikan, kolom ini tidak dipetakan ke objek IDM di UDM. |
process |
principal.process.command_line |
Nama proses, diekstrak dari message_details untuk ID peristiwa 711004. |
protocol |
network.ip_protocol atau network.application_protocol |
Protokol yang digunakan dalam peristiwa, diekstrak dari berbagai format pesan log. Jika protokolnya adalah protokol IP standar (ICMP, TCP, UDP, ESP), protokol tersebut dipetakan ke network.ip_protocol ; jika tidak, protokol tersebut dipetakan ke network.application_protocol . |
reason |
security_result.description |
Alasan terjadinya peristiwa, diekstrak dari message_details untuk ID peristiwa 113016. |
remote_proxy_ip |
intermediary.ip |
Alamat IP proxy jarak jauh, diekstrak dari message_details untuk ID peristiwa 713041. |
retrieved_file |
target.file.full_path |
Jalur ke file yang diambil, diekstrak dari message_info . |
security_action |
security_result.action |
Tindakan keamanan, yang diperoleh oleh parser berdasarkan konteks peristiwa. |
security_category |
security_result.category |
Kategori keamanan, yang diperoleh oleh parser berdasarkan konteks peristiwa. |
security_result.description |
security_result.description |
Deskripsi hasil keamanan, diekstrak atau diperoleh dari pesan log. |
security_result.severity |
security_result.severity |
Tingkat keparahan hasil keamanan, yang berasal dari kolom event_severity . |
security_result.summary |
security_result.summary |
Ringkasan hasil keamanan, diekstrak atau diperoleh dari pesan log. |
sent_bytes |
network.sent_bytes |
Jumlah byte yang dikirim, diekstrak dari message_info . |
ses_id |
network.session_id |
ID Sesi, diekstrak dari message_info . |
session_id |
network.session_id |
ID Sesi, diekstrak dari message_info . |
sess_type |
principal.hostname , principal.asset.hostname |
Jenis sesi, diekstrak dari log_mssg dan digunakan sebagai nama host jika hostname tidak tersedia. |
source_ip |
principal.ip , principal.asset.ip |
Alamat IP sumber, diekstrak dari berbagai format pesan log. |
source_ip_port |
principal.port |
Port sumber, diekstrak dari berbagai format pesan log. |
src_email |
principal.user.email_addresses atau principal.user.userid |
Alamat email atau ID pengguna sumber, diekstrak dari message_info . Jika nilai cocok dengan format email, nilai tersebut akan ditambahkan ke email_addresses ; jika tidak, nilai tersebut akan digunakan sebagai userid . |
src_ip |
principal.ip , principal.asset.ip |
Alamat IP sumber, diekstrak dari pola grok utama atau pola spesifik lainnya. |
src_port |
principal.port |
Port sumber, diekstrak dari pola grok utama atau pola spesifik lainnya. |
src_user |
principal.user.user_display_name |
Nama tampilan pengguna sumber, diekstrak dari message_details untuk ID peristiwa 713049 dan 713120. |
subject |
network.tls.client.certificate.subject |
Subjek sertifikat peer, diekstrak dari message_details untuk ID peristiwa 717037. |
summary |
security_result.summary |
Ringkasan acara, diekstrak dari message_details untuk ID acara 113016. |
target_host |
target.hostname |
Nama host target, diekstrak dari message_details untuk ID peristiwa 113004. |
target_ip |
target.ip , target.asset.ip |
Alamat IP target, diekstrak dari message_details untuk ID peristiwa 113004. |
target_user |
target.user.userid |
ID pengguna target, diekstrak dari message_details untuk ID peristiwa 113003. |
task_duration |
T/A | Meskipun diuraikan, kolom ini tidak dipetakan ke objek IDM di UDM. |
tcp_dst_ip |
target.ip , target.asset.ip |
Alamat IP tujuan dari payload TCP asli pesan error ICMP. |
tcp_dst_port |
T/A | Meskipun diuraikan, kolom ini tidak dipetakan ke objek IDM di UDM. |
tcp_src_ip |
principal.ip , principal.asset.ip |
Alamat IP sumber dari payload TCP asli pesan error ICMP. |
tcp_src_port |
T/A | Meskipun diuraikan, kolom ini tidak dipetakan ke objek IDM di UDM. |
threshold |
T/A | Meskipun diuraikan, kolom ini tidak dipetakan ke objek IDM di UDM. |
tls_version |
network.tls.version |
Versi TLS, diekstrak dari message_details untuk ID peristiwa 725002. |
ts |
@timestamp |
Stempel waktu peristiwa, diuraikan menggunakan filter date . |
ts_day |
@timestamp (bagian dari) |
Hari dalam sebulan dari stempel waktu, yang digunakan untuk membuat kolom @timestamp . |
ts_month |
@timestamp (bagian dari) |
Bulan dari stempel waktu, yang digunakan untuk membuat kolom @timestamp . |
ts_time |
@timestamp (bagian dari) |
Waktu dari stempel waktu, yang digunakan untuk membuat kolom @timestamp . |
ts_year |
@timestamp (bagian dari) |
Tahun dari stempel waktu, digunakan untuk membuat kolom @timestamp . |
tunnel_type |
T/A | Meskipun diuraikan, kolom ini tidak dipetakan ke objek IDM di UDM. |
user |
principal.user.userid , target.user.userid |
ID Pengguna, diekstrak dari berbagai format pesan log. |
user_agent |
network.http.user_agent |
String agen pengguna, diekstrak dari message_details untuk ID peristiwa 722055. |
user_attr.key |
principal.user.attribute.labels.key |
Kunci atribut pengguna, diekstrak dari message_details untuk ID peristiwa 734003 dan 734001. |
user_attr.value |
principal.user.attribute.labels.value |
Nilai atribut pengguna, diekstrak dari message_details untuk ID peristiwa 734003 dan 734001. |
userid |
principal.user.userid |
ID Pengguna, diekstrak dari message_details untuk ID peristiwa 106103. |
username |
principal.user.userid |
Nama pengguna, diekstrak dari message_details untuk ID peristiwa 111008, 111009, 111010, dan 113008. |
T/A | metadata.vendor_name |
Dikodekan secara permanen ke "CISCO". |
T/A | metadata.product_name |
Dikodekan secara permanen ke "ASA VPN" atau "VPN". |
T/A | metadata.event_type |
Ditentukan oleh logika parser berdasarkan keberadaan kolom dan ID peristiwa tertentu. Dapat berupa GENERIC_EVENT, NETWORK_CONNECTION, STATUS_UPDATE, NETWORK_FTP, USER_LOGIN, USER_LOGOUT, NETWORK_UNCATEGORIZED, USER_UNCATEGORIZED, NETWORK_FLOW. |
T/A | metadata.log_type |
Dikodekan secara permanen ke "CISCO_VPN". |
T/A | metadata.event_timestamp |
Disalin dari kolom @timestamp yang diuraikan. |
T/A | extensions.auth.type |
Disetel ke "VPN", "AUTHTYPE_UNSPECIFIED", atau "MACHINE" bergantung pada konteks peristiwa. |
T/A | security_result.about.resource.type |
Disetel ke "PACKET FRAGMENT" untuk ID peristiwa 209005. |
T/A | is_alert |
Disetel ke benar (true) untuk peristiwa dengan tingkat keparahan tinggi (event_severity 0 atau 1). |
T/A | is_significant |
Disetel ke benar (true) untuk peristiwa dengan tingkat keparahan tinggi (event_severity 0 atau 1). |
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.