Mengumpulkan log CrowdStrike Falcon Stream
Dokumen ini menjelaskan cara mengumpulkan log Crowdstrike Falcon Stream menggunakan BindPlane. Parser mengekstrak pasangan nilai kunci dan memetakannya ke Model Data Terpadu (UDM), menangani berbagai pembatas, dan memperkaya data dengan konteks tambahan seperti tingkat keparahan dan jenis peristiwa. Selain itu, alat ini melakukan transformasi khusus untuk jenis dan kolom peristiwa tertentu, seperti login pengguna dan hasil keamanan.
Sebelum memulai
Pastikan Anda memenuhi prasyarat berikut:
- Instance Google Security Operations
- Windows 2016 atau yang lebih baru, atau host Linux dengan
systemd
- Jika berjalan di belakang proxy, pastikan port firewall terbuka
- Akses istimewa ke konsol CrowdStrike Falcon
- Mendapatkan kredensial API untuk Falcon Stream (Client ID dan Rahasia Klien)
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: 'CS_STREAM' 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 dan mendapatkan Kunci API CrowdStrike
- Login ke CrowdStrike Falcon dengan akun istimewa.
- Buka Menu > Dukungan.
- Klik API Clients > KeysSelect.
- Klik Tambahkan klien API baru.
- Di bagian API Scopes, pilih Event streams, lalu aktifkan opsi Read.
- Klik Tambahkan.
- Salin dan simpan Client ID, Client Secret, dan Base URL.
Menginstal Falcon SIEM Connector
- Download paket penginstal RPM untuk sistem operasi Anda.
Penginstalan paket:
- Sistem operasi CentOS:
sudo rpm -Uvh <installer package>
- Sistem operasi Ubuntu:
sudo dpkg -i <installer package>
Direktori penginstalan default:
- Konektor Falcon SIEM -
/opt/crowdstrike/
. - Layanan -
/etc/init.d/cs.falconhoseclientd/
.
- Konektor Falcon SIEM -
Mengonfigurasi Konektor SIEM untuk meneruskan peristiwa ke Bindplane
- Login ke komputer dengan SIEM Connector yang terinstal sebagai pengguna
sudo
. - Buka direktori
/opt/crowdstrike/etc/
. - Ganti nama
cs.falconhoseclient.leef.cfg
menjadics.falconhoseclient.cfg
.- Konektor SIEM menggunakan konfigurasi
cs.falconhoseclient.cfg
secara default.
- Konektor SIEM menggunakan konfigurasi
- Edit file
cs.falconhoseclient.cfg
dan ubah atau tetapkan parameter berikut:api_url:
- URL Dasar Crowdstrike Falcon Anda yang disalin dari langkah sebelumnya.app_id:
- String apa pun sebagai ID untuk terhubung ke Falcon Streaming API (Misalnya, ditetapkan keapp_id: SECOPS-LEEF
).client_id:
- Nilaiclient_id
yang disalin dari langkah sebelumnya.client_secret:
- Nilaiclient_secret
yang disalin dari langkah sebelumnya.send_to_syslog_server: true
- Aktifkan push ke server Syslog.host:
- IP atau nama host Agen BindPlane.port:
- Port Agen BindPlane.
- Simpan file
cs.falconhoseclient.cfg
. Mulai layanan SIEM Connector:
- Sistem operasi CentOS
sudo service cs.falconhoseclientd start
- Sistem operasi Ubuntu 16.04 atau yang lebih baru
sudo systemctl start cs.falconhoseclientd.service
(Opsional) Hentikan layanan SIEM Connector:
- Sistem operasi CentOS
sudo service cs.falconhoseclientd stop
- Sistem operasi Ubuntu 16.04 atau yang lebih baru
sudo systemctl stop cs.falconhoseclientd.service
(Opsional): Mulai ulang layanan SIEM Connector:
- Sistem operasi CentOS
sudo service cs.falconhoseclientd restart
- Sistem operasi Ubuntu 16.04 atau yang lebih baru
sudo systemctl restart cs.falconhoseclientd.service
Tabel pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
cat |
security_result.category_details |
Nilai kolom cat dipetakan langsung ke kolom security_result.category_details . |
commandLine |
target.process.command_line |
Nilai kolom commandLine dipetakan langsung ke kolom target.process.command_line . |
cs1 |
security_result.summary |
Jika cs1Label adalah "incidentType", nilai cs1 dipetakan ke security_result.summary . Jika tidak, nilai akan dipetakan sebagai pasangan nilai kunci di security_result.detection_fields dengan kunci dari cs1Label dan nilai dari cs1 . |
cs1Label |
security_result.detection_fields.key |
Digunakan sebagai kunci dalam security_result.detection_fields saat cs1 bukan jenis insiden. |
cs2 |
security_result.detection_fields.value |
Dipetakan sebagai pasangan nilai kunci di security_result.detection_fields dengan kunci dari cs2Label dan nilai dari cs2 . |
cs2Label |
security_result.detection_fields.key |
Digunakan sebagai kunci di security_result.detection_fields bersama dengan cs2 . |
cs3 |
security_result.detection_fields.value |
Dipetakan sebagai pasangan nilai kunci di security_result.detection_fields dengan kunci dari cs3Label dan nilai dari cs3 . |
cs3Label |
security_result.detection_fields.key |
Digunakan sebagai kunci di security_result.detection_fields bersama dengan cs3 . |
cs4 |
security_result.about.url |
Jika cs4Label adalah "falconHostLink", nilai cs4 dipetakan ke security_result.about.url . Jika tidak, nilai akan dipetakan sebagai pasangan nilai kunci di security_result.detection_fields dengan kunci dari cs4Label dan nilai dari cs4 . |
cs4Label |
security_result.detection_fields.key |
Digunakan sebagai kunci di security_result.detection_fields saat cs4 bukan falconHostLink. |
description |
metadata.description |
Nilai kolom description dipetakan langsung ke kolom metadata.description . Jika kosong, incidentDescription atau msg atau serviceName akan digunakan sebagai gantinya. |
devTime |
metadata.event_timestamp |
Nilai kolom devTime diuraikan dan dipetakan ke kolom metadata.event_timestamp . |
deviceCustomDate1 |
metadata.event_timestamp |
Jika devTime tidak ada, nilai kolom deviceCustomDate1 akan diuraikan dan dipetakan ke kolom metadata.event_timestamp . |
domain |
principal.administrative_domain |
Diekstrak dari kolom userName menggunakan ekspresi reguler dan dipetakan ke principal.administrative_domain . |
duser |
principal.user.userid |
Jika ada, nilai duser akan menggantikan kolom usrName dan kemudian digunakan untuk mengisi kolom pengguna. |
endpointName |
security_result.detection_fields.value |
Dipetakan sebagai pasangan nilai kunci di security_result.detection_fields dengan kunci "endpointName". |
eventType |
metadata.product_event_type |
Nilai kolom eventType dipetakan langsung ke kolom metadata.product_event_type . |
falconHostLink |
security_result.about.url |
Nilai kolom falconHostLink dipetakan langsung ke kolom security_result.about.url . |
filePath |
target.process.file.full_path |
Nilai kolom filePath dipetakan langsung ke kolom target.process.file.full_path . |
identityProtectionIncidentId |
security_result.detection_fields.value |
Dipetakan sebagai pasangan nilai kunci di security_result.detection_fields dengan kunci "identityProtectionIncidentId". |
incidentDescription |
metadata.description |
Jika description kosong, nilai kolom incidentDescription dipetakan ke kolom metadata.description . |
incidentType |
security_result.summary |
Nilai kolom incidentType dipetakan langsung ke kolom security_result.summary . |
log_type |
metadata.log_type |
Nilai kolom log_type dipetakan langsung ke kolom metadata.log_type . |
msg |
metadata.description |
Jika description dan incidentDescription kosong, nilai kolom msg dipetakan ke kolom metadata.description . |
numbersOfAlerts |
security_result.detection_fields.value |
Dipetakan sebagai pasangan nilai kunci di security_result.detection_fields dengan kunci "numbersOfAlerts". |
numberOfCompromisedEntities |
security_result.detection_fields.value |
Dipetakan sebagai key-value pair di security_result.detection_fields dengan kunci "numberOfCompromisedEntities". |
product |
metadata.product_name |
Nilai kolom product dipetakan langsung ke kolom metadata.product_name . |
resource |
target.resource.name |
Nilai kolom resource dipetakan langsung ke kolom target.resource.name . |
serviceName |
target.application |
Nilai kolom serviceName dipetakan langsung ke kolom target.application . Juga digunakan sebagai penggantian untuk metadata.description . |
severityName |
security_result.severity |
Nilai kolom severityName dipetakan ke kolom security_result.severity setelah diubah menjadi huruf besar. Logika pemetaan mencakup konversi tertentu untuk nama tingkat keparahan yang berbeda. |
sha256 |
target.file.sha256 |
Nilai kolom sha256 dipetakan langsung ke kolom target.file.sha256 . |
src |
principal.ip |
Nilai kolom src dipetakan langsung ke kolom principal.ip . |
srcMAC |
principal.mac |
Nilai kolom srcMAC dipetakan langsung ke kolom principal.mac setelah mengganti tanda hubung dengan titik dua. |
state |
security_result.detection_fields.value |
Dipetakan sebagai pasangan nilai kunci di security_result.detection_fields dengan kunci "state". |
success |
security_result.action |
Jika success adalah "true", security_result.action ditetapkan ke "ALLOW". Jika success adalah "false", security_result.action ditetapkan ke "BLOCK". |
userName |
principal.user.userid |
Jika usrName tidak ada, nilai kolom userName akan digunakan untuk mengisi kolom pengguna. Domain diekstrak jika ada. |
usrName |
principal.user.userid /target.user.userid |
Jika ada, nilai kolom usrName dipetakan ke principal.user.userid atau target.user.userid , bergantung pada eventType . Jika berupa alamat email, alamat tersebut juga ditambahkan ke kolom email_addresses yang sesuai. |
vendor |
metadata.vendor_name |
Nilai kolom vendor dipetakan langsung ke kolom metadata.vendor_name . |
version |
metadata.product_version |
Nilai kolom version dipetakan langsung ke kolom metadata.product_version . |
(Logika Parser) | extensions.auth.mechanism |
Tetapkan ke "USERNAME_PASSWORD" jika eventType adalah "saml2Assert" atau "twoFactorAuthenticate". |
(Logika Parser) | extensions.auth.type |
Disetel ke "AUTHTYPE_UNSPECIFIED" jika eventType adalah "assert" atau "userAuthenticate". |
(Logika Parser) | metadata.event_timestamp |
Stempel waktu dari kolom collection_time atau timestamp log mentah digunakan sebagai stempel waktu peristiwa. |
(Logika Parser) | metadata.event_type |
Ditentukan berdasarkan eventType dan kolom lainnya. Default-nya adalah "GENERIC_EVENT" dan dapat diubah menjadi "USER_LOGIN", "GROUP_MODIFICATION", "GROUP_DELETION", "SERVICE_STOP", "SERVICE_START", atau "USER_UNCATEGORIZED". |
(Logika Parser) | target.resource.type |
Disetel ke "GROUP" jika eventType adalah "remove_group", "update_group", atau "delete_group". |
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.