Mengumpulkan log Carbon Black App Control
Dokumen ini menjelaskan cara mengumpulkan log Carbon Black App Control. Parser mendukung format CEF dan JSON. Pertama, CEF mencoba mengurai input sebagai JSON; jika gagal, CEF akan memperlakukan input sebagai CEF, melakukan penggantian teks, mengekstrak kolom CEF, memetakan kolom tersebut ke UDM, dan menetapkan jenis peristiwa ke "GENERIC_EVENT". Jika tidak, file ini akan menggunakan file penyertaan pemetaan UDM khusus JSON yang terpisah.
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.
- Server Carbon Black App Control (CB Protection) (Direkomendasikan versi 8.x atau yang lebih baru).
- Pastikan Anda memiliki akses dengan hak istimewa ke Carbon Black App Control.
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 mengirimnya 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: tcplog: # Replace the port and IP address as required listen_address: "0.0.0.0:11592" 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: JSON namespace: cb_app_control raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog 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
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 Kontrol Aplikasi CB untuk Mengirim Log Syslog
- Login ke konsol Kontrol Aplikasi CB dengan akun Administrator.
- Buka Admin > Konfigurasi Sistem > Logging Eksternal
- Di bagian External Event Logging:
- Aktifkan Logging Syslog: centang kotak Syslog Enabled.
- Alamat Server:
<Bindplane Server IP>
. - Port:
<Bindplane Server PORT>
. - Protocol: pilih TCP.
- Format Syslog: pilih JSON.
- Di bagian Opsi Logging Peristiwa, pilih jenis log yang akan dikirim:
- Pelanggaran Kebijakan
- Peristiwa Pemantauan Integritas File (FIM)
- Peristiwa Autentikasi Pengguna
- Data Threat Intelligence
- Klik Simpan.
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
ABId |
principal.asset.asset_id |
ABId dari log JSON digunakan sebagai bagian dari ID aset dalam format PRODUCT_SPECIFIC_ID:{ABId}-{Bit9Server} . |
Bit9Server |
principal.asset.asset_id |
Digunakan sebagai bagian dari ID aset akun utama, yang digabungkan dengan ABId . Juga digunakan untuk membuat kolom metadata.url_back_to_product . |
CommandLine |
about.process.command_line |
Dipetakan secara langsung. |
EventType |
metadata.product_event_type |
Dipetakan dengan EventTypeId yang sesuai dalam tanda kurung siku (mis., "[5] - Discovery"). |
EventTypeId |
metadata.product_event_type |
Digunakan dengan EventType untuk mengisi metadata.product_event_type . |
EventSubType |
metadata.description |
Ditambahkan ke kolom metadata.description . |
EventSubTypeId |
metadata.description |
Tidak dipetakan secara eksplisit, tetapi berpotensi berkontribusi pada deskripsi berdasarkan logika internal parser. |
externalId |
metadata.product_log_id |
Dipetakan secara langsung. |
FileHash |
about.file.sha256 |
Dipetakan secara langsung. |
FileName |
additional.fields (dengan kunci "FileName") |
Ditambahkan sebagai kolom tambahan. Juga digunakan sebagai bagian dari informasi file di metadata.description untuk beberapa peristiwa. |
FilePath |
about.file.full_path |
Dipetakan secara langsung. |
FileThreat |
additional.fields (dengan kunci "fileThreat") |
Ditambahkan sebagai kolom tambahan. |
FileTrust |
additional.fields (dengan kunci "fileTrust") |
Ditambahkan sebagai kolom tambahan. |
HostId |
principal.asset.asset_id |
Digunakan untuk membuat URL kembali ke produk di metadata.url_back_to_product . |
HostName |
target.hostname |
Dipetakan secara langsung. |
HostIP |
target.ip |
Dipetakan secara langsung. |
Message |
metadata.description |
Dipetakan secara langsung. |
PathName |
about.file.full_path |
Dipetakan secara langsung. |
Platform |
target.platform |
Dipetakan ke nilai enum WINDOWS . |
Policy |
additional.fields (dengan kunci "Kebijakan") |
Ditambahkan sebagai kolom tambahan. |
PolicyId |
additional.fields (dengan kunci "PolicyId") |
Ditambahkan sebagai kolom tambahan. |
ProcessKey |
additional.fields (dengan kunci "ProcessKey") |
Ditambahkan sebagai kolom tambahan. |
ProcessPath |
about.process.command_line |
Dipetakan secara langsung. |
ProcessPathName |
about.process.command_line |
Dipetakan secara langsung. |
ProcessThreat |
additional.fields (dengan kunci "ProcessThreat") |
Ditambahkan sebagai kolom tambahan. |
ProcessTrust |
additional.fields (dengan kunci "ProcessTrust") |
Ditambahkan sebagai kolom tambahan. |
RuleName |
additional.fields (dengan kunci "ruleName") |
Ditambahkan sebagai kolom tambahan. |
Timestamp |
metadata.event_timestamp |
Dipetakan secara langsung. |
UserName |
target.user.user_display_name |
Dipetakan secara langsung. |
UserSid |
principal.user.userid |
Dipetakan secara langsung. |
agent.ephemeral_id |
observer.labels (dengan kunci "ephemeral_id") |
Ditambahkan sebagai label observer. |
agent.name |
principal.hostname , observer.hostname , observer.user.userid |
Dipetakan ke beberapa kolom. |
agent.type |
observer.application |
Dipetakan secara langsung. |
agent.version |
metadata.product_version |
Dipetakan langsung untuk log JSON. Untuk log CEF, diekstrak dari pesan CEF. |
cat |
security_result.category_details |
Dipetakan secara langsung. |
cs1 |
additional.fields (dengan kunci "rootHash" atau cs1Label lainnya) |
Ditambahkan sebagai kolom tambahan dengan kunci yang ditentukan oleh cs1Label . |
cs1Label |
additional.fields |
Digunakan sebagai kunci untuk kolom tambahan yang diisi oleh cs1 . |
cs2 |
additional.fields (dengan kunci "installerFilename" atau cs2Label lainnya) |
Ditambahkan sebagai kolom tambahan dengan kunci yang ditentukan oleh cs2Label . |
cs2Label |
additional.fields |
Digunakan sebagai kunci untuk kolom tambahan yang diisi oleh cs2 . |
cs3 |
additional.fields (dengan kunci "Kebijakan" atau cs3Label lainnya) |
Ditambahkan sebagai kolom tambahan dengan kunci yang ditentukan oleh cs3Label . |
cs3Label |
additional.fields |
Digunakan sebagai kunci untuk kolom tambahan yang diisi oleh cs3 . |
cs5 |
additional.fields (dengan kunci "ruleName" atau cs5Label lainnya) |
Ditambahkan sebagai kolom tambahan dengan kunci yang ditentukan oleh cs5Label . |
cs5Label |
additional.fields |
Digunakan sebagai kunci untuk kolom tambahan yang diisi oleh cs5 . |
cfp1 |
additional.fields (dengan kunci "fileTrust" atau cfp1Label lainnya) |
Ditambahkan sebagai kolom tambahan dengan kunci yang ditentukan oleh cfp1Label . |
cfp1Label |
additional.fields |
Digunakan sebagai kunci untuk kolom tambahan yang diisi oleh cfp1 . |
cfp2 |
additional.fields (dengan kunci "processTrust" atau cfp2Label lainnya) |
Ditambahkan sebagai kolom tambahan dengan kunci yang ditentukan oleh cfp2Label . |
cfp2Label |
additional.fields |
Digunakan sebagai kunci untuk kolom tambahan yang diisi oleh cfp2 . |
deviceProcessName |
about.process.command_line |
Dipetakan secara langsung. |
dhost |
target.hostname |
Dipetakan secara langsung. |
dst |
target.ip |
Dipetakan secara langsung. |
duser |
target.user.user_display_name |
Dipetakan secara langsung. |
dvchost |
about.hostname |
Dipetakan secara langsung. |
eventId |
additional.fields (dengan kunci "eventId") |
Ditambahkan sebagai kolom tambahan. |
fileHash |
about.file.sha256 |
Dipetakan secara langsung. |
flexString1 |
additional.fields (dengan kunci "fileThreat" atau flexString1Label lainnya) |
Ditambahkan sebagai kolom tambahan dengan kunci yang ditentukan oleh flexString1Label . |
flexString1Label |
additional.fields |
Digunakan sebagai kunci untuk kolom tambahan yang diisi oleh flexString1 . |
flexString2 |
additional.fields (dengan kunci "processThreat" atau flexString2Label lainnya) |
Ditambahkan sebagai kolom tambahan dengan kunci yang ditentukan oleh flexString2Label . |
flexString2Label |
additional.fields |
Digunakan sebagai kunci untuk kolom tambahan yang diisi oleh flexString2 . |
fname |
additional.fields (dengan kunci "fname") |
Ditambahkan sebagai kolom tambahan. Juga digunakan sebagai bagian dari informasi file di metadata.description untuk beberapa peristiwa. |
host.architecture |
target.asset.hardware.cpu_platform |
Dipetakan secara langsung. |
host.hostname |
target.asset.asset_id |
Digunakan sebagai bagian dari ID aset target ("ID Host: {host.hostname}"). Juga dipetakan ke target.hostname . |
host.id |
target.asset.asset_id |
Digunakan sebagai bagian dari ID aset target ("ID Host: {host.id}"). |
host.ip |
target.asset.ip |
Dipetakan secara langsung. |
host.mac |
target.mac |
Dipetakan secara langsung. |
host.name |
target.hostname |
Dipetakan secara langsung. |
host.os.build |
target.platform_patch_level |
Dipetakan secara langsung. |
host.os.kernel |
target.platform_patch_level |
Ditambahkan ke target.platform_patch_level . |
host.os.platform |
target.platform |
Dipetakan ke nilai enum WINDOWS . |
host.os.type |
target.platform |
Dipetakan ke nilai enum WINDOWS . |
host.os.version |
target.platform_version |
Dipetakan secara langsung. |
log.file.path |
target.file.full_path |
Dipetakan secara langsung. |
metadata.event_type |
metadata.event_type |
Tetapkan ke "GENERIC_EVENT" untuk log CEF, "SYSTEM_AUDIT_LOG_UNCATEGORIZED" untuk log JSON. |
metadata.log_type |
metadata.log_type |
Tetapkan ke "CB_EDR". |
metadata.product_log_id |
metadata.product_log_id |
Dipetakan dari externalId untuk log CEF. Tidak berlaku untuk log JSON. |
metadata.product_name |
metadata.product_name |
Tetapkan ke "Kontrol Aplikasi" untuk log CEF, "CB_APP_CONTROL" untuk log JSON. |
metadata.product_version |
metadata.product_version |
Diekstrak dari pesan CEF untuk log CEF. Dipetakan dari agent.version untuk log JSON. |
metadata.vendor_name |
metadata.vendor_name |
Tetapkan ke "Carbon Black". |
msg |
metadata.description , additional.fields |
Digunakan untuk mengisi metadata.description dan berpotensi kolom tambahan berdasarkan logika parser. |
sproc |
principal.process.command_line |
Dipetakan secara langsung. |
metadata.url_back_to_product |
metadata.url_back_to_product |
Dibuat menggunakan kolom Bit9Server dan HostId untuk log JSON. Tidak berlaku untuk log CEF. |
security_result.severity |
security_result.severity |
Tetapkan ke MEDIUM . |
timestamp |
events.timestamp |
Dipetakan langsung untuk log JSON. Untuk log CEF, logika parser menentukan stempel waktu berdasarkan kolom rt log mentah jika tersedia, atau collection_time jika rt tidak ada. |
Perubahan
2022-07-01
- Penyempurnaan
- Memetakan kolom 'agent.type' ke 'observer.application'.
- Memetakan kolom 'agent.name' ke 'observer.user.userid'.
- Memetakan kolom 'host.name' ke 'observer.hostname'.
- Memetakan kolom 'agent.type' dan 'agent.name' ke 'observer.asset_id'.
- Memetakan kolom 'agent.ephemeral_id' ke 'observer.labels'.
- Memetakan kolom 'host.os.platform' ke 'target.platform'.
- Memetakan kolom 'host.os.version' ke 'target.platform_version'.
- Memetakan kolom 'host.os.kernel' ke 'target.platform_patch_level'.
- Memetakan kolom 'cloud.instance.id' ke 'principal.resource.product_object_id'.
- Memetakan kolom 'cloud.instance.name' ke 'principal.resource.name'.
- Memetakan kolom 'host.mac' ke 'target.mac'.
- Memetakan kolom 'host.ip' ke 'target.asset.ip'.
- Memetakan kolom 'host.id' ke 'target.asset.asset_id'.
- Memetakan kolom 'host.architecture' ke 'target.asset.hardware'.
- Memetakan kolom 'message.UserSID' ke 'principal.user.userid'.
- Memetakan kolom 'message.ProcessPath' ke 'about.process.command_line'.
- Memetakan kolom 'cloud.machine.type' dan 'cloud.provider' ke 'principal.resource.attribute.labels'.
- Menambahkan pemeriksaan bersyarat untuk 'message.Bit9Server' dan 'message.HostId' yang dipetakan ke 'metadata.url_back_to_product'.
2022-06-22
- Perbaikan Bug
- Memetakan hostId ke principal.asset_id
- Mengatribusikan kombinasi Bit9Server dan HostId ke metadata.url_back_to_product
2022-05-19
- Perbaikan Bug
- log yang diminta dan diuraikan dalam bug
- log gagal API yang diuraikan
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.