Mengumpulkan log Carbon Black EDR

Didukung di:

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

  1. Buat bucket Amazon S3 dengan mengikuti panduan pengguna ini: Membuat bucket
  2. Simpan Nama dan Region bucket untuk digunakan nanti.
  3. Buat pengguna dengan mengikuti panduan pengguna ini: Membuat pengguna IAM.
  4. Pilih Pengguna yang dibuat.
  5. Pilih tab Kredensial keamanan.
  6. Klik Create Access Key di bagian Access Keys.
  7. Pilih Layanan pihak ketiga sebagai Kasus penggunaan.
  8. Klik Berikutnya.
  9. Opsional: tambahkan tag deskripsi.
  10. Klik Create access key.
  11. Klik Download CSV file untuk menyimpan Access Key dan Secret Access Key untuk digunakan nanti.
  12. Klik Selesai.
  13. Pilih tab Izin.
  14. Klik Tambahkan izin di bagian Kebijakan izin.
  15. Pilih Tambahkan izin.
  16. Pilih Lampirkan kebijakan secara langsung.
  17. Telusuri dan pilih kebijakan AmazonS3FullAccess.
  18. Klik Berikutnya.
  19. Klik Tambahkan izin.

Menginstal cb-event-forwarder di Server EDR lokal

  1. Instal repositori CbOpenSource jika belum ada:

    cd /etc/yum.repos.d
    curl -O https://opensource.carbonblack.com/release/x86_64/CbOpenSource.repo
    
  2. Instal RPM menggunakan YUM:

    yum install cb-event-forwarder
    
  3. 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

  1. Buka file konfigurasi:

    sudo nano /etc/cb/integrations/event-forwarder/cb-event-forwarder.conf
    
  2. 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
    
  3. Menyimpan dan keluar menggunakan keyboard:

    • Ctrl + X, lalu Y dan Enter.
  4. 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

  1. Login ke AWS Management Console.
  2. Pastikan region AWS cocok dengan region Event Forwarder:
    1. Di halaman AWS Console, temukan region.
    2. Gunakan drop-down untuk memilih region yang benar dari Penerusan Peristiwa Anda.
    3. 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)
  3. Pilih Layanan.
  4. Buka konsol S3.
  5. Klik Buat bucket untuk membuka wizard Buat bucket.
    1. Di Nama bucket, masukkan nama unik untuk bucket Anda (misalnya, CB-EDR).
    2. Pastikan Region ditetapkan secara default ke region yang Anda pilih sebelumnya.
    3. Perbarui default Blokir Akses Publik untuk mengizinkan akses publik (tindakan ini diperlukan untuk menyerap log ke Google SecOps).
    4. Pilih Create Bucket.

Mengonfigurasi Bucket S3 agar Pengirim Peristiwa dapat menulis peristiwa

  1. Buat Pengguna dengan mengikuti panduan pengguna ini: Membuat pengguna IAM.
  2. Pilih Pengguna yang dibuat.
  3. Pilih tab Kredensial keamanan.
  4. Klik Create Access Key di bagian Access Keys.
  5. Pilih Layanan pihak ketiga sebagai Kasus penggunaan.
  6. Klik Berikutnya.
  7. Opsional: tambahkan tag deskripsi.
  8. Klik Create access key.
  9. Klik Download CSV file untuk menyimpan Access Key dan Secret Access Key untuk digunakan nanti.
  10. Klik Selesai.
  11. Pilih tab Izin.
  12. Klik Tambahkan izin di bagian Kebijakan izin.
  13. Pilih Tambahkan izin.
  14. Pilih Lampirkan kebijakan secara langsung.
  15. Telusuri kebijakan AmazonS3FullAccess.
  16. Pilih kebijakan.
  17. Klik Berikutnya.
  18. Klik Tambahkan izin.

Mengonfigurasi Penerusan peristiwa di Konsol EDR

  1. Login ke VMware Carbon Black Cloud.
  2. Buka tab penerusan peristiwa
  3. Aktifkan peristiwa yang Anda inginkan agar produk diupload ke S3.
  4. Buka Output and Type, lalu tetapkan ke S3.
  5. Berikan nama bucket S3 dalam format berikut <region>:<bucket-name> (misalnya, us-east-1:cb-edr).
  6. Pilih file upload kredensial AWS dalam format INI.
  7. 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
    
  8. 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:

  1. Buka Setelan SIEM > Feed.
  2. Klik Tambahkan Feed Baru.
  3. Di halaman berikutnya, klik Konfigurasi satu feed.
  4. Di kolom Feed name, masukkan nama untuk feed (misalnya, Carbon Black EDR Logs).
  5. Pilih Amazon S3 sebagai Jenis sumber.
  6. Pilih Carbon Black EDR sebagai Jenis log.
  7. Klik Berikutnya.
  8. 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.
    • 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.
  9. Klik Berikutnya.

  10. 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.
  • 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.