Mengumpulkan log Cisco eStreamer
Dokumen ini menjelaskan cara menyerap log Cisco eStreamer ke Google Security Operations menggunakan Bindplane. Parser mengekstrak kolom dari pesan SYSLOG dalam format nilai kunci, menggunakan grok untuk mengurai pesan awal dan kv untuk menangani data nilai kunci. Kemudian, kolom yang diekstrak ini dipetakan ke Model Data Terpadu (UDM), menangani berbagai jenis data, dan memperkaya peristiwa dengan metadata seperti jenis peristiwa berdasarkan keberadaan informasi pokok dan target.
Sebelum memulai
Pastikan Anda memenuhi prasyarat berikut:
- Instance Google SecOps
- Host Windows Server 2012 SP2 atau yang lebih baru, atau Linux dengan
systemd
- Jika berjalan di belakang proxy, pastikan port firewall terbuka sesuai dengan persyaratan agen Bindplane
- Akses istimewa ke Cisco Firepower Management Center (FMC)
- Sistem Linux untuk menjalankan klien eNcore CLI
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 ada di direktori/opt/observiq-otel-collector/
di Linux atau direktori `C:\Program Files\observIQ OpenTelemetry Collector` 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: YOUR_CUSTOMER_ID endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization log_type: 'CISCO_ESTREAMER' 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 penerusan Syslog di Cisco eStreamer
Mengonfigurasi eStreamer di Firepower Management Center
- Login ke Firepower Management Center.
- Buka System > Integration > eStreamer.
- Klik eStreamer untuk mengakses Konfigurasi Peristiwa eStreamer.
- Centang kotak di samping jenis peristiwa yang ingin Anda rekam:
- Peristiwa Penyusupan: Untuk peristiwa deteksi penyusupan
- Data Paket Peristiwa Penyusupan: Untuk pengambilan paket yang terkait dengan peristiwa penyusupan
- Peristiwa Koneksi: Untuk data koneksi jaringan
- Peristiwa Intelijen Keamanan: Untuk data intelijen ancaman
- Peristiwa File: Untuk peristiwa analisis file
- Peristiwa Malware: Untuk peristiwa deteksi malware
- Klik Simpan.
Buat Klien eStreamer
- Di halaman eStreamer, klik Buat Klien.
- Berikan detail konfigurasi berikut:
- Nama host: Masukkan alamat IP sistem Linux tempat klien eNcore akan berjalan.
- Password: Masukkan sandi untuk mengenkripsi file sertifikat.
- Klik Simpan.
- Download file sertifikat PKCS12 yang dibuat dan transfer ke sistem klien eNcore Anda.
Menginstal dan Mengonfigurasi Klien eNcore CLI
- Di sistem Linux Anda, download klien CLI eStreamer eNcore dari Cisco.
Ekstrak paket eNcore:
tar -xzf eStreamer-eNcore-*.tar.gz cd eStreamer-eNcore-*
Jalankan skrip penyiapan:
./encore.sh setup
Saat diminta, pilih format output untuk pasangan nilai kunci (kompatibel dengan sistem SIEM).
Masukkan alamat IP FMC dan sandi sertifikat PKCS12.
Konfigurasi file
estreamer.conf
untuk menampilkan pesan syslog ke agen Bindplane Anda:- Buka file
estreamer.conf
di editor teks. Temukan bagian outputter dan konfigurasikan untuk mengirim syslog ke agen BindPlane Anda:
{ "handler": { "outputters": [ { "name": "syslog", "adapter": "kvpair", "enabled": true, "stream": { "uri": "udp://BINDPLANE_AGENT_IP:514" } } ] } }
- Buka file
Ganti
BINDPLANE_AGENT_IP
dengan alamat IP agen Bindplane Anda.
Mulai eNcore Client
Uji koneksi dalam mode latar depan:
./encore.sh foreground
Setelah diverifikasi, mulai eNcore sebagai layanan latar belakang:
./encore.sh start
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
act |
security_result.action_details |
Nilai act dari log mentah ditetapkan ke kolom ini. |
act |
security_result.action |
Jika nilai act adalah "Allow" (tidak peka huruf besar/kecil), maka nilai "ALLOW" akan ditetapkan ke kolom ini. |
app |
network.http.user_agent |
Nilai app (diganti namanya menjadi requestClientApplication di parser) dari log mentah ditetapkan ke kolom ini. |
blockLength |
security_result.detection_fields[].key |
String "blocklength" ditetapkan ke kolom ini. |
blockLength |
security_result.detection_fields[].value |
Nilai blockLength dari log mentah, yang dikonversi menjadi string, ditetapkan ke kolom ini. |
blockType |
security_result.detection_fields[].key |
String "blockType" ditetapkan ke kolom ini. |
blockType |
security_result.detection_fields[].value |
Nilai blockType dari log mentah, yang dikonversi menjadi string, ditetapkan ke kolom ini. |
bytesIn |
network.received_bytes |
Nilai bytesIn dari log mentah ditetapkan ke kolom ini dan dikonversi menjadi bilangan bulat yang tidak bertanda tangan. |
bytesOut |
network.sent_bytes |
Nilai bytesOut dari log mentah ditetapkan ke kolom ini dan dikonversi menjadi bilangan bulat yang tidak bertanda tangan. |
cat |
security_result.category_details |
Nilai cat dari log mentah ditetapkan ke kolom ini. |
cs1 |
security_result.detection_fields[].value |
Nilai cs1 dari log mentah ditetapkan ke kolom ini. |
cs1Label |
security_result.detection_fields[].key |
Nilai cs1Label dari log mentah ditetapkan ke kolom ini. |
cs2 |
security_result.detection_fields[].value |
Nilai cs2 dari log mentah ditetapkan ke kolom ini. |
cs2Label |
security_result.detection_fields[].key |
Nilai cs2Label dari log mentah ditetapkan ke kolom ini. |
cs3 |
security_result.detection_fields[].value |
Nilai cs3 dari log mentah ditetapkan ke kolom ini. |
cs3Label |
security_result.detection_fields[].key |
Nilai cs3Label dari log mentah ditetapkan ke kolom ini. |
cs4 |
security_result.detection_fields[].value |
Nilai cs4 dari log mentah ditetapkan ke kolom ini. |
cs4Label |
security_result.detection_fields[].key |
Nilai cs4Label dari log mentah ditetapkan ke kolom ini. |
cs5 |
security_result.detection_fields[].value |
Nilai cs5 dari log mentah ditetapkan ke kolom ini. |
cs5Label |
security_result.detection_fields[].key |
Nilai cs5Label dari log mentah ditetapkan ke kolom ini. |
cs6 |
security_result.detection_fields[].value |
Nilai cs6 dari log mentah ditetapkan ke kolom ini. |
cs6 |
security_result.rule_id |
Nilai cs6 dari log mentah ditetapkan ke kolom ini. |
cs6Label |
security_result.detection_fields[].key |
Nilai cs6Label dari log mentah ditetapkan ke kolom ini. |
data |
security_result.detection_fields[].value |
Nilai data dari objek JSON suser dalam log mentah ditetapkan ke kolom ini jika kolom suser adalah JSON. |
deviceInboundInterface |
additional.fields[].key |
String "deviceInboundInterface" ditetapkan ke kolom ini. |
deviceInboundInterface |
additional.fields[].value.string_value |
Nilai deviceInboundInterface dari log mentah ditetapkan ke kolom ini. |
deviceOutboundInterface |
additional.fields[].key |
String "deviceOutboundInterface" ditetapkan ke kolom ini. |
deviceOutboundInterface |
additional.fields[].value.string_value |
Nilai deviceOutboundInterface dari log mentah ditetapkan ke kolom ini. |
dpt |
target.port |
Nilai dpt dari log mentah ditetapkan ke kolom ini dan dikonversi menjadi bilangan bulat. |
dst |
target.asset.ip |
Nilai dst dari log mentah ditetapkan ke kolom ini. |
dst |
target.ip |
Nilai dst dari log mentah ditetapkan ke kolom ini. |
dvcpid |
security_result.about.process.pid |
Nilai dvcpid dari log mentah ditetapkan ke kolom ini. |
dvchost |
target.asset.hostname |
Nilai dvchost dari log mentah ditetapkan ke kolom ini. |
dvchost |
target.hostname |
Nilai dvchost dari log mentah ditetapkan ke kolom ini. |
hostname |
principal.asset.hostname |
Nilai hostname dari log mentah ditetapkan ke kolom ini. |
hostname |
principal.hostname |
Nilai hostname dari log mentah ditetapkan ke kolom ini. Ditentukan oleh logika parser berdasarkan keberadaan informasi principal dan target . Jika keduanya ada, nilainya adalah "NETWORK_CONNECTION". Jika hanya principal yang ada, nilainya adalah "STATUS_UPDATE". Jika hanya target yang ada, nilainya adalah "USER_UNCATEGORIZED". Jika tidak, nilainya adalah "GENERIC_EVENT". |
product_event_type |
metadata.product_event_type |
Nilai product_event_type dari log mentah ditetapkan ke kolom ini. |
product_name |
metadata.product_name |
Nilai product_name dari log mentah ditetapkan ke kolom ini. |
proto |
network.ip_protocol |
Nilai proto dari log mentah dikonversi menjadi bilangan bulat, lalu dipetakan ke nama protokol IP yang sesuai (misalnya, 6 menjadi TCP, 17 menjadi UDP) menggunakan lookup yang disertakan dari "parse_ip_protocol.include". |
severity |
security_result.severity_details |
Nilai severity dari log mentah ditetapkan ke kolom ini. |
spt |
principal.port |
Nilai spt dari log mentah ditetapkan ke kolom ini dan dikonversi menjadi bilangan bulat. |
src |
principal.asset.ip |
Nilai src dari log mentah ditetapkan ke kolom ini. |
src |
principal.ip |
Nilai src dari log mentah ditetapkan ke kolom ini. |
suser |
security_result.detection_fields[].value |
Nilai suser dari log mentah ditetapkan ke kolom ini jika bukan objek JSON. Jika berupa JSON, kolom data dari objek suser akan digunakan. |
suser |
security_result.detection_fields[].key |
String "suser" ditetapkan ke kolom ini. |
ts |
metadata.event_timestamp |
Nilai ts dari log mentah diuraikan sebagai stempel waktu dan ditetapkan ke kolom ini. Beberapa format stempel waktu dicoba hingga parsing berhasil. |
vendor_name |
metadata.vendor_name |
Nilai vendor_name dari log mentah ditetapkan ke kolom ini. |
version |
metadata.product_version |
Nilai version dari log mentah ditetapkan ke kolom ini. |
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.