Mengumpulkan log Carbon Black EDR

Didukung di:

Dokumen ini menjelaskan cara mengumpulkan log Carbon Black EDR dari lingkungan Cloud dan On-Prem menggunakan AWS S3. Parser mengekstrak kolom dari pesan berformat JSON, CSV, atau syslog, menormalisasinya, dan memetakan ke UDM. Fitur ini menangani berbagai jenis peristiwa Carbon Black, termasuk koneksi jaringan, peristiwa proses, modifikasi file, perubahan registry, dan hit IOC, yang memperkaya data dengan intelijen ancaman dan informasi perangkat jika tersedia.

Sebelum memulai

Pastikan Anda memiliki:

  • Instance Google SecOps yang dikonfigurasi.
  • Akses dengan hak istimewa ke AWS IAM dan S3.
  • Akses dengan hak istimewa ke Carbon Black EDR Cloud atau On-Prem.

Mengonfigurasi Carbon Black EDR On-Prem

Mengonfigurasi bucket Amazon S3 untuk On-Prem

  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 file CSV untuk menyimpan Kunci Akses dan Kunci Akses Rahasia 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 On-Prem

  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 Menghasilkan 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. Simpan 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

Membuat 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 Event Forwarder 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 Pasifik (Singapura) (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 setelan default Blokir Akses Publik untuk mengizinkan akses publik (tindakan ini diperlukan untuk menyerap log ke Google SecOps).
    4. Pilih Create Bucket.

Mengonfigurasi Bucket S3 untuk mengizinkan Event Forwarder 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 file CSV untuk menyimpan Kunci Akses dan Kunci Akses Rahasia 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 pengirim peristiwa
  3. Aktifkan peristiwa yang ingin Anda upload ke S3 oleh produk.
  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 AWS credentials 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.

Mengonfigurasi feed di Google SecOps untuk menyerap log Carbon Black EDR

  1. Buka Setelan SIEM > Feed.
  2. Klik Tambahkan baru.
  3. Di kolom Nama feed, masukkan nama untuk feed (misalnya, Log EDR Carbon Black).
  4. Pilih Amazon S3 sebagai Source type.
  5. Pilih Carbon Black EDR sebagai Jenis log.
  6. Klik Berikutnya.
  7. Tentukan nilai untuk parameter input berikut:

    • Region: region tempat bucket Amazon S3 berada.
    • S3 URI: 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.
    • Access Key ID: Kunci akses pengguna dengan akses ke bucket S3.
    • Kunci Akses Rahasia: kunci rahasia Pengguna dengan akses ke bucket S3.
    • Namespace aset: namespace aset.
    • Label penyerapan: label yang akan diterapkan ke peristiwa dari feed ini.
  8. Klik Berikutnya.

  9. Tinjau konfigurasi feed baru Anda di layar Finalize, lalu klik Submit.

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 peristiwa 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 peristiwa 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 peristiwa 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 peristiwa 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 peristiwa 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 peristiwa 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 peristiwa endpoint.event.procstart) Nilai kolom childproc_name dari log mentah saat type adalah endpoint.event.procstart.
childproc_pid target.process.pid (untuk peristiwa 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 peristiwa 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 peristiwa 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 peristiwa endpoint.event.procstart) Nilai kolom childproc_reputation dari log mentah saat type adalah endpoint.event.procstart.
childproc_username target.user.userid (untuk peristiwa 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 peristiwa feed.query.hit.process dan feed.storage.hit.process), additional.fields[?key == 'cmdline_*'].value.string_value (untuk peristiwa 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 tersebut disimpan di additional.fields dengan kunci "cmdline_*".
command_line target.process.command_line (untuk peristiwa 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 peristiwa 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 peristiwa 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 peristiwa 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 peristiwa 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 peristiwa 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 peristiwa 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 peristiwa 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 peristiwa 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 peristiwa endpoint.event.crossproc) Nilai kolom crossproc_target dari log mentah saat type adalah endpoint.event.crossproc. Dikonversi menjadi string "true" atau "false".

Perubahan

2024-05-13

  • Memetakan kolom "alert_url" ke kolom UDM "metadata.url_back_to_product".

2024-01-19

  • Menambahkan pemeriksaan null untuk "filemod_hash.0" dan "filemod_hash.1" sebelum pemetaan.

2023-12-27

  • Melakukan inisialisasi "filemod_hash.0" dan "filemod_hash.1" ke null untuk mengurai log yang tidak diuraikan.

2023-10-26

  • Menambahkan fungsi "gsub" untuk mengurai kolom yang tidak diuraikan.

2023-10-13

  • Menangani log JSON baru dengan menambahkan blok JSON.
  • Menghapus kode yang berlebihan untuk kolom "computer_name", "parent_name", "process_name", "pid", "process_path", "md5", "sha256", "process_guid", "parent_pid", "docs.0.process_pid", "cb_version", "process_hash.0", "process_hash.1", "parent_hash.0", dan "parent_hash.1".

2023-07-21

  • Menambahkan detail taktik dan teknik MITRE ATT&CK ke "security_result.attack_details".

24-03-2023

  • Memetakan kolom "protocol" ke "network.ip_protocol".
  • Menambahkan pemeriksaan kondisional null untuk kolom "child_username", "child_pid", "child_command_line".
  • Mengubah "metadata.event_type" dari "GENERIC_EVENT" menjadi "STATUS_UPDATE" saat "principal.hostname" atau "principal.ip" bukan null.

2023-03-14

  • Perbaikan bug:
  • Memetakan kolom berikut saat kolom "type" null:
  • Memetakan kolom "process_guid" ke "principal.process.product_specific_process_id".
  • Memetakan kolom "device_external_ip" ke "target.ip".
  • Memetakan kolom "device_os" ke "principal.platform".
  • Memetakan kolom "device_group" ke "principal.group.group_display_name".
  • Memetakan kolom "process_pid" ke "principal.process.pid".
  • Memetakan kolom "process_path" ke "principal.process.file.full_path".
  • Memetakan kolom "process_cmdline" ke "principal.process.command_line".
  • Memetakan kolom "process_hash.0" ke "principal.process.file.md5".
  • Memetakan kolom "principal.1" ke "principal.process.file.sha256".
  • Memetakan kolom "process_username" ke "principal.user.userid".
  • Memetakan kolom "clientIp" ke "principal.ip".
  • Memetakan kolom "description" ke "metadata.description".
  • Memetakan kolom "orgName" ke "principal.administrative_domain".
  • Memetakan kolom berikut saat kolom "ruleName" berisi "CYDERES":
  • Memetakan kolom "deviceInfo.internalIpAddress" ke "principal.ip".
  • Memetakan kolom "deviceInfo.externalIpAddress" ke "target.ip".
  • Memetakan kolom "ruleName" ke "security_result.rule_name".
  • Memetakan kolom "deviceInfo.deviceType" ke "principal.asset.platform_software.platform".
  • Memetakan kolom "domain" ke "principal.administrative_domain".
  • Memetakan kolom "deviceInfo.groupName" ke "principal.group.group_display_name".
  • Memetakan kolom "deviceInfo.deviceVersion" ke "principal.asset.platform_software.platform_version".
  • Memetakan kolom "deviceInfo.deviceId" ke "principal.asset.asset_id".
  • Memetakan kolom "eventId" ke "additional.fields".
  • Mengubah "metadata.event_type" dari "GENERIC_EVENT" menjadi "NETWORK_CONNECTION" jika "principal.ip" dan "target.ip" bukan null.
  • Mengubah "metadata.event_type" dari "GENERIC_EVENT" menjadi "STATUS_UPDATE" saat "principal.ip" bukan null.

2023-02-03

  • Perbaikan bug: Memetakan "filemod_hash" ke "target.file", bukan "target.process.file".

2023-01-20

  • Perbaikan bug: Berhenti mengisi dan memetakan product_specific_process_id untuk ID proses kosong.

2022-11-25

  • Memetakan 'remote_ip' ke 'principal.ip' dan 'local_ip' ke 'target.ip' untuk peristiwa TCP/UDP 'Inbound'.
  • Memetakan 'remote_port' ke 'principal.port' dan 'local_port' ke 'target.port' untuk peristiwa TCP/UDP 'Inbound'.

2022-10-06

  • Memigrasikan semua parser khusus pelanggan ke parser default.

2022-07-10

  • Memperbarui pemetaan 'event_type' ke 'PROCESS_LAUNCH' untuk log jenis 'endpoint.event.'.

Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.