Mengumpulkan log Carbon Black EDR
Dokumen ini menjelaskan cara mengumpulkan log Carbon Black EDR dari lingkungan Cloud dan lokal menggunakan AWS S3. Parser mengekstrak kolom dari pesan berformat JSON, CSV, atau syslog, menormalisasinya, dan memetakannya ke UDM. Integrasi ini menangani berbagai jenis peristiwa Carbon Black, termasuk koneksi jaringan, peristiwa proses, modifikasi file, perubahan registri, dan hit IOC, yang memperkaya data dengan informasi intelijen ancaman dan informasi perangkat jika tersedia.
Sebelum memulai
Pastikan Anda memiliki prasyarat berikut:
- Instance Google SecOps.
- Akses istimewa ke AWS IAM dan S3.
- Akses istimewa ke Carbon Black EDR di Cloud atau di infrastruktur lokal.
Mengonfigurasi Carbon Black EDR on-premise
Mengonfigurasi bucket Amazon S3 untuk lokal
- Buat bucket Amazon S3 dengan mengikuti panduan pengguna ini: Membuat bucket
- Simpan Nama dan Region bucket untuk digunakan nanti.
- Buat pengguna dengan mengikuti panduan pengguna ini: Membuat pengguna IAM.
- Pilih Pengguna yang dibuat.
- Pilih tab Kredensial keamanan.
- Klik Create Access Key di bagian Access Keys.
- Pilih Layanan pihak ketiga sebagai Kasus penggunaan.
- Klik Berikutnya.
- Opsional: tambahkan tag deskripsi.
- Klik Create access key.
- Klik Download CSV file untuk menyimpan Access Key dan Secret Access Key untuk digunakan nanti.
- Klik Selesai.
- Pilih tab Izin.
- Klik Tambahkan izin di bagian Kebijakan izin.
- Pilih Tambahkan izin.
- Pilih Lampirkan kebijakan secara langsung.
- Telusuri dan pilih kebijakan AmazonS3FullAccess.
- Klik Berikutnya.
- Klik Tambahkan izin.
Menginstal cb-event-forwarder di Server EDR lokal
Instal repositori CbOpenSource jika belum ada:
cd /etc/yum.repos.d curl -O https://opensource.carbonblack.com/release/x86_64/CbOpenSource.repo
Instal RPM menggunakan YUM:
yum install cb-event-forwarder
Jika Anda menggunakan EDR 7.1.0 atau yang lebih baru, jalankan skrip berikut untuk menetapkan izin yang sesuai yang diperlukan oleh EDR:
/usr/share/cb/integrations/event-forwarder/cb-edr-fix-permissions.sh
Mengonfigurasi cb-event-forwarder untuk Menampilkan Log JSON
Buka file konfigurasi:
sudo nano /etc/cb/integrations/event-forwarder/cb-event-forwarder.conf
Ubah parameter berikut:
[event_forwarder] output_format=json # Enable JSON format output_type=s3 # Send logs to AWS S3 s3_bucket_name=YOUR-S3-BUCKET-NAME s3_region=YOUR-S3-BUCKET-NAME s3_access_key_id=YOUR_AWS_ACCESS_KEY s3_secret_access_key=YOUR_AWS_SECRET_KEY s3_prefix=carbonblack/edr/logs
Menyimpan dan keluar menggunakan keyboard:
- Ctrl + X, lalu Y dan Enter.
Mulai cb-event-forwarder:
sudo systemctl enable cb-event-forwarder sudo systemctl restart cb-event-forwarder sudo systemctl status cb-event-forwarder
Mengonfigurasi Carbon Black Cloud Event Forwarder untuk S3
Buat Bucket AWS S3
- Login ke AWS Management Console.
- Pastikan region AWS cocok dengan region Event Forwarder:
- Di halaman AWS Console, temukan region.
- Gunakan drop-down untuk memilih region yang benar dari Penerusan Peristiwa Anda.
- Daftar berikut memberikan Region AWS yang berlaku untuk setiap URL Carbon Black EDR.
- "instance-alias".my.carbonblack.io - Region: US East (N. Virginia) (us-east-1)
- "instance-alias".my.cbcloud.de - Region: Eropa (Frankfurt) (eu-central-1)
- "instance-alias".my.cbcloud.sg Region: Asia Pacific (Singapore) (ap-southeast-1)
- Pilih Layanan.
- Buka konsol S3.
- Klik Buat bucket untuk membuka wizard Buat bucket.
- Di Nama bucket, masukkan nama unik untuk bucket Anda (misalnya, CB-EDR).
- Pastikan Region ditetapkan secara default ke region yang Anda pilih sebelumnya.
- Perbarui default Blokir Akses Publik untuk mengizinkan akses publik (tindakan ini diperlukan untuk menyerap log ke Google SecOps).
- Pilih Create Bucket.
Mengonfigurasi Bucket S3 agar Pengirim Peristiwa dapat menulis peristiwa
- Buat Pengguna dengan mengikuti panduan pengguna ini: Membuat pengguna IAM.
- Pilih Pengguna yang dibuat.
- Pilih tab Kredensial keamanan.
- Klik Create Access Key di bagian Access Keys.
- Pilih Layanan pihak ketiga sebagai Kasus penggunaan.
- Klik Berikutnya.
- Opsional: tambahkan tag deskripsi.
- Klik Create access key.
- Klik Download CSV file untuk menyimpan Access Key dan Secret Access Key untuk digunakan nanti.
- Klik Selesai.
- Pilih tab Izin.
- Klik Tambahkan izin di bagian Kebijakan izin.
- Pilih Tambahkan izin.
- Pilih Lampirkan kebijakan secara langsung.
- Telusuri kebijakan AmazonS3FullAccess.
- Pilih kebijakan.
- Klik Berikutnya.
- Klik Tambahkan izin.
Mengonfigurasi Penerusan peristiwa di Konsol EDR
- Login ke VMware Carbon Black Cloud.
- Buka tab penerusan peristiwa
- Aktifkan peristiwa yang Anda inginkan agar produk diupload ke S3.
- Buka Output and Type, lalu tetapkan ke S3.
- Berikan nama bucket S3 dalam format berikut
<region>:<bucket-name>
(misalnya,us-east-1:cb-edr
). - Pilih file upload kredensial AWS dalam format INI.
Berikut adalah contoh profil:
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: us-east-1
Klik Simpan dan mulai ulang layanan agar perubahan diterapkan.
Menyiapkan feed
Ada dua titik entri berbeda untuk menyiapkan feed di platform Google SecOps:
- Setelan SIEM > Feed
- Hub Konten > Paket Konten
Menyiapkan feed dari Setelan SIEM > Feed
Untuk mengonfigurasi feed, ikuti langkah-langkah berikut:
- Buka Setelan SIEM > Feed.
- Klik Tambahkan Feed Baru.
- Di halaman berikutnya, klik Konfigurasi satu feed.
- Di kolom Feed name, masukkan nama untuk feed (misalnya, Carbon Black EDR Logs).
- Pilih Amazon S3 sebagai Jenis sumber.
- Pilih Carbon Black EDR sebagai Jenis log.
- Klik Berikutnya.
Tentukan nilai untuk parameter input berikut:
- Region: region tempat bucket Amazon S3 berada.
- URI S3: URI bucket.
s3:/BUCKET_NAME
- Ganti
BUCKET_NAME
dengan nama bucket yang sebenarnya.
- Ganti
- URI adalah: pilih URI_TYPE sesuai dengan konfigurasi aliran log (File tunggal | Direktori | Direktori yang menyertakan subdirektori).
- Opsi penghapusan sumber: pilih opsi penghapusan sesuai preferensi Anda.
- ID Kunci Akses: Kunci akses pengguna dengan akses ke bucket S3.
- Kunci Akses Rahasia: kunci rahasia Pengguna dengan akses ke bucket S3.
Klik Berikutnya.
Tinjau konfigurasi feed baru Anda di layar Selesaikan, lalu klik Kirim.
Menyiapkan feed dari Hub Konten
Tentukan nilai untuk kolom berikut:
- Region: region tempat bucket Amazon S3 berada.
- URI S3: URI bucket.
s3:/BUCKET_NAME
- Ganti
BUCKET_NAME
dengan nama bucket yang sebenarnya.
- Ganti
- URI adalah: pilih URI_TYPE sesuai dengan konfigurasi aliran log (File tunggal | Direktori | Direktori yang menyertakan subdirektori).
- Opsi penghapusan sumber: pilih opsi penghapusan sesuai preferensi Anda.
- ID Kunci Akses: Kunci akses pengguna dengan akses ke bucket S3.
- Kunci Akses Rahasia: kunci rahasia Pengguna dengan akses ke bucket S3.
Opsi lanjutan
- Nama Feed: Nilai yang telah diisi otomatis yang mengidentifikasi feed.
- Jenis Sumber: Metode yang digunakan untuk mengumpulkan log ke Google SecOps.
- Namespace Aset: Namespace yang terkait dengan feed.
- Label Penyerapan: Label yang diterapkan ke semua peristiwa dari feed ini.
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
action |
security_result.detection_fields[?key == 'action'].value |
Nilai kolom action dari log mentah. |
cb_server |
intermediary.hostname |
Nilai kolom cb_server dari log mentah. |
cb_version |
metadata.product_version |
Nilai kolom cb_version dari log mentah. |
child_pid |
target.process.pid (untuk acara ingress.event.childproc ) |
Nilai kolom child_pid dari log mentah saat type adalah ingress.event.childproc . |
child_process_guid |
target.process.product_specific_process_id (untuk acara ingress.event.childproc ) |
"CB:" digabungkan dengan nilai kolom child_process_guid dari log mentah saat type adalah ingress.event.childproc . |
child_username |
target.user.userid (untuk acara ingress.event.childproc ) |
Nilai kolom child_username dari log mentah saat type adalah ingress.event.childproc . |
childproc_guid |
target.process.product_specific_process_id (untuk acara endpoint.event.procstart ) |
"CB:" digabungkan dengan nilai kolom childproc_guid dari log mentah saat type adalah endpoint.event.procstart . |
childproc_hash.0 |
target.process.file.md5 (untuk acara endpoint.event.procstart ) |
Elemen pertama array childproc_hash dari log mentah saat type adalah endpoint.event.procstart . |
childproc_hash.1 |
target.process.file.sha256 (untuk acara endpoint.event.procstart ) |
Elemen kedua array childproc_hash dari log mentah saat type adalah endpoint.event.procstart . |
childproc_name |
target.process.file.full_path (untuk acara endpoint.event.procstart ) |
Nilai kolom childproc_name dari log mentah saat type adalah endpoint.event.procstart . |
childproc_pid |
target.process.pid (untuk acara endpoint.event.procstart ) |
Nilai kolom childproc_pid dari log mentah saat type adalah endpoint.event.procstart . |
childproc_publisher.0.name |
security_result.detection_fields[?key == 'childproc_publisher_name'].value (untuk acara endpoint.event.procstart ) |
"childproc_publisher_name:" digabungkan dengan nilai childproc_publisher.0.name dari log mentah saat type adalah endpoint.event.procstart . |
childproc_publisher.0.state |
security_result.detection_fields[?key == 'childproc_publisher_state'].value (untuk acara endpoint.event.procstart ) |
"childproc_publisher_state:" digabungkan dengan nilai childproc_publisher.0.state dari log mentah saat type adalah endpoint.event.procstart . |
childproc_reputation |
security_result.detection_fields[?key == 'childproc_reputation'].value (untuk acara endpoint.event.procstart ) |
Nilai kolom childproc_reputation dari log mentah saat type adalah endpoint.event.procstart . |
childproc_username |
target.user.userid (untuk acara endpoint.event.procstart ) |
Nilai kolom childproc_username dari log mentah saat type adalah endpoint.event.procstart . |
clientIp |
principal.ip , principal.asset.ip |
Nilai kolom clientIp dari log mentah. |
cmdline |
target.process.command_line (untuk acara feed.query.hit.process dan feed.storage.hit.process ), additional.fields[?key == 'cmdline_*'].value.string_value (untuk acara watchlist.storage.hit.process ) |
Nilai kolom cmdline dari log mentah saat type adalah feed.query.hit.process atau feed.storage.hit.process . Untuk peristiwa watchlist.storage.hit.process , peristiwa ini disimpan di additional.fields dengan kunci "cmdline_*". |
command_line |
target.process.command_line (untuk acara ingress.event.procstart ) |
Nilai kolom command_line dari log mentah saat type adalah ingress.event.procstart . |
comms_ip |
intermediary.ip |
Nilai kolom comms_ip dari log mentah. |
computer_name |
principal.hostname , principal.asset.hostname |
Nilai kolom computer_name dari log mentah. |
crossproc_api |
additional.fields[?key == 'crossproc_api'].value.string_value (untuk acara endpoint.event.apicall ) |
Nilai kolom crossproc_api dari log mentah saat type adalah endpoint.event.apicall . |
crossproc_guid |
additional.fields[?key == 'crossproc_guid'].value.string_value (untuk acara endpoint.event.crossproc ) |
Nilai kolom crossproc_guid dari log mentah saat type adalah endpoint.event.crossproc . |
crossproc_hash.0 |
additional.fields[?key == 'crossproc_md5'].value.string_value (untuk acara endpoint.event.crossproc ) |
Elemen pertama array crossproc_hash dari log mentah saat type adalah endpoint.event.crossproc . |
crossproc_hash.1 |
additional.fields[?key == 'crossproc_sha256'].value.string_value (untuk acara endpoint.event.crossproc ) |
Elemen kedua array crossproc_hash dari log mentah saat type adalah endpoint.event.crossproc . |
crossproc_name |
target.process.file.full_path (untuk acara endpoint.event.crossproc ) |
Nilai kolom crossproc_name dari log mentah saat type adalah endpoint.event.crossproc . |
crossproc_publisher.0.name |
security_result.detection_fields[?key == 'crossproc_publisher_name'].value (untuk acara endpoint.event.crossproc ) |
"crossproc_publisher_name:" digabungkan dengan nilai crossproc_publisher.0.name dari log mentah saat type adalah endpoint.event.crossproc . |
crossproc_publisher.0.state |
security_result.detection_fields[?key == 'crossproc_publisher_state'].value (untuk acara endpoint.event.crossproc ) |
"crossproc_publisher_state:" digabungkan dengan nilai crossproc_publisher.0.state dari log mentah saat type adalah endpoint.event.crossproc . |
crossproc_reputation |
additional.fields[?key == 'crossproc_reputation'].value.string_value (untuk acara endpoint.event.crossproc ) |
Nilai kolom crossproc_reputation dari log mentah saat type adalah endpoint.event.crossproc . |
crossproc_target |
additional.fields[?key == 'crossproc_target'].value.string_value (untuk acara endpoint.event.crossproc ) |
Nilai kolom crossproc_target dari log mentah saat type adalah endpoint.event.crossproc . Dikonversi menjadi string "true" atau "false". |
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.