Mengumpulkan log Kerentanan Armis

Didukung di:

Dokumen ini menjelaskan cara menyerap log Kerentanan Armis ke Google Security Operations menggunakan Google Cloud Functions. Parser mengubah log kerentanan keamanan berformat JSON mentah menjadi format terstruktur yang sesuai dengan UDM Google SecOps. Proses ini mengekstrak berbagai kolom dari log mentah, memetakannya ke kolom UDM yang sesuai, melakukan konversi jenis data, dan menyusun output untuk penyerapan ke dalam platform Google SecOps.

Sebelum memulai

Pastikan Anda memiliki prasyarat berikut:

  • Instance Google SecOps dengan kredensial akun layanan dan ID pelanggan
  • Akses istimewa ke platform Armis Centrix
  • Kunci Rahasia API Armis dan URL Server
  • Akses ke Google Cloud dengan izin untuk membuat Cloud Functions, secret Secret Manager, dan tugas Cloud Scheduler
  • Akses modul atau lisensi Armis Asset Vulnerability Management (AVM)

Mendapatkan ID pelanggan Google SecOps

  1. Login ke konsol Google SecOps.
  2. Buka Setelan SIEM > Profil.
  3. Salin dan simpan ID pelanggan dari bagian Detail Organisasi.

Mendapatkan kredensial akun layanan Google SecOps

  1. Login ke konsol Google SecOps.
  2. Buka Setelan SIEM > Agen Pengumpulan.
  3. Download File Autentikasi Penyerapan (file JSON akun layanan).
  4. Simpan file dengan aman karena Anda harus menguploadnya ke Google Secret Manager.

Mendapatkan Kunci Rahasia Armis API

  1. Login ke platform Armis Centrix.
  2. Buka Setelan > Pengelolaan API.
  3. Klik Buat jika Anda perlu membuat kunci rahasia API baru.
  4. Klik Tampilkan untuk melihat kunci rahasia.
  5. Salin dan simpan kunci rahasia dengan aman.

Mengonfigurasi Google Secret Manager

Bagian ini memandu Anda menggunakan Google Secret Manager untuk menyimpan kunci akun layanan yang diperlukan untuk integrasi secara aman.

Tambahkan rahasia akun layanan Google SecOps

  1. Login ke Google Cloud console.
  2. Buka Security > Secret Manager.
  3. Klik Buat Secret.
  4. Berikan detail konfigurasi berikut:
    • Name: Masukkan nama untuk secret (misalnya, secops-service-account).
    • Nilai rahasia: Upload file JSON akun layanan Google SecOps yang Anda download sebelumnya, atau tempelkan kontennya secara langsung.
  5. Klik Buat Secret.
  6. Salin ID resource secret yang dibuat dalam format berikut:

    projects/{project_id}/secrets/{secret_id}/versions/{version_id}
    

Tambahkan secret Armis API Secret Key

  1. Di Secret Manager, klik Buat Secret.
  2. Berikan detail konfigurasi berikut:
    • Name: Masukkan nama untuk secret (misalnya, armis-api-secret).
    • Nilai secret: Tempelkan Kunci Secret API Armis yang Anda peroleh sebelumnya.
  3. Klik Buat Secret.
  4. Salin ID resource secret yang dibuat dalam format berikut:

    projects/{project_id}/secrets/{secret_id}/versions/{version_id}`
    

Mendownload dan menyiapkan skrip penyerapan

  1. Akses repositori skrip penyerapan resmi Google SecOps di https://github.com/chronicle/ingestion-scripts.
  2. Download konten direktori armis dari repositori.
  3. Download direktori common dari repositori (dependensi yang diperlukan).
  4. Buat direktori baru untuk deployment Cloud Function di komputer lokal Anda.
  5. Salin konten direktori armis dan common ke direktori deployment Anda.

Mengonfigurasi variabel lingkungan

  1. Buka file .env.yml di editor teks.
  2. Edit file dengan konfigurasi berikut:

    CHRONICLE_CUSTOMER_ID: <YOUR_CUSTOMER_ID>
    CHRONICLE_REGION: "us"
    CHRONICLE_SERVICE_ACCOUNT: projects/{project_id}/secrets/{chronicle-secret-id}/versions/{version_id}
    CHRONICLE_NAMESPACE: <YOUR_NAMESPACE>
    POLL_INTERVAL: "10"
    ARMIS_SERVER_URL: https://<your-armis-instance>.armis.com
    ARMIS_API_SECRET_KEY: projects/{project_id}/secrets/{armis-secret-id}/versions/{version_id}
    HTTPS_PROXY: 
    CHRONICLE_DATA_TYPE: ARMIS_VULNERABILITIES
    
    • Ganti nilai berikut:

      • <YOUR_CUSTOMER_ID>: ID pelanggan Google SecOps Anda
      • projects/{project_id}/secrets/{chronicle-secret-id}/versions/{version_id}: Jalur ID resource lengkap secret akun layanan Google SecOps Anda dari Secret Manager
      • <YOUR_NAMESPACE>: Namespace opsional untuk log Google Security Operations (misalnya, armis-vulnerabilities)
      • <your-armis-instance>: Subdomain tenant Armis Anda (misalnya, jika URL Anda adalah https://company.armis.com, gunakan company)
      • projects/{project_id}/secrets/{armis-secret-id}/versions/{version_id}: Jalur ID resource lengkap secret Armis API Anda dari Secret Manager

Men-deploy Cloud Function

  1. Buka Cloud Shell atau terminal lokal Anda dengan gcloud CLI terinstal.
  2. Buka direktori yang berisi file skrip penyerapan.
  3. Jalankan perintah berikut:

    gcloud functions deploy armis-vulnerabilities-ingestion \
      --gen2 \
      --entry-point main \
      --trigger-http \
      --runtime python39 \
      --env-vars-file .env.yml \
      --memory 512MB \
      --timeout 3600s \
      --region us-central1
    

Men-deploy menggunakan Cloud Function Gen1 (Alternatif)

  • Jalankan perintah berikut:

    gcloud functions deploy armis-vulnerabilities-ingestion \
      --entry-point main \
      --trigger-http \
      --runtime python39 \
      --env-vars-file .env.yml \
      --memory 512MB \
      --timeout 540s \
      --region us-central1
    

Buat tugas Cloud Scheduler

  1. Di konsol Google Cloud , buka Cloud Scheduler.
  2. Klik Create Job.
  3. Berikan detail konfigurasi berikut:
    • Name: Masukkan nama untuk tugas (misalnya, armis-vulnerabilities-scheduler).
    • Region: Pilih region yang sama dengan Cloud Function Anda (misalnya, us-central1).
    • Frekuensi: Masukkan jadwal menggunakan sintaksis cron (misalnya, */10 * * * * untuk setiap 10 menit).
    • Zona waktu: Pilih zona waktu yang Anda inginkan (misalnya, UTC).
  4. Klik Lanjutkan.
  5. Pilih HTTP sebagai jenis target.
  6. Berikan detail konfigurasi berikut:
    • URL: Di konsol Cloud Functions, buka tab TRIGGER fungsi Anda dan salin URL pemicu. Tempel di sini.
    • Metode HTTP: Pilih POST.
  7. Klik Header Auth > Tambahkan token OIDC.
  8. Pilih Service account yang digunakan oleh Cloud Function.
  9. Klik Buat.

Tabel Pemetaan UDM

Kolom Log Pemetaan UDM Logika
affectedDevicesCount read_only_udm.security_result.detection_fields.value Pemetaan langsung, dikonversi menjadi string.
attackComplexity read_only_udm.extensions.vulns.vulnerabilities.about.labels.value Pemetaan langsung.
attackVector read_only_udm.extensions.vulns.vulnerabilities.about.labels.value Pemetaan langsung.
availabilityImpact read_only_udm.extensions.vulns.vulnerabilities.about.labels.value Pemetaan langsung.
avmRating read_only_udm.security_result.detection_fields.value Pemetaan langsung.
botnet read_only_udm.extensions.vulns.vulnerabilities.about.labels.value Digabungkan menjadi satu string jika ada beberapa botnet.
cisaDueDate read_only_udm.extensions.vulns.vulnerabilities.about.labels.value Pemetaan langsung.
collection_time.nanos read_only_udm.metadata.event_timestamp.nanos Pemetaan langsung.
collection_time.seconds read_only_udm.metadata.event_timestamp.seconds Pemetaan langsung.
commonName read_only_udm.extensions.vulns.vulnerabilities.name Pemetaan langsung.
confidentialityImpact read_only_udm.security_result.detection_fields.value Pemetaan langsung.
cveUid read_only_udm.extensions.vulns.vulnerabilities.cve_id Pemetaan langsung.
cvssScore read_only_udm.extensions.vulns.vulnerabilities.cvss_base_score Pemetaan langsung, dikonversi menjadi float.
deskripsi read_only_udm.metadata.description Pemetaan langsung.
epssPercentile read_only_udm.extensions.vulns.vulnerabilities.about.labels.value Pemetaan langsung, dikonversi menjadi string.
epssScore read_only_udm.extensions.vulns.vulnerabilities.about.labels.value Pemetaan langsung, dikonversi menjadi string.
exploitabilityScore read_only_udm.extensions.vulns.vulnerabilities.about.labels.value Pemetaan langsung, dikonversi menjadi string.
firstReferencePublishDate read_only_udm.extensions.vulns.vulnerabilities.first_found Diuraikan ke stempel waktu, menangani format dengan dan tanpa milidetik.
firstWeaponizedReferencePublishDate read_only_udm.extensions.vulns.vulnerabilities.about.labels.value Pemetaan langsung.
hasRansomware read_only_udm.extensions.vulns.vulnerabilities.about.labels.value Pemetaan langsung, dikonversi menjadi string.
id read_only_udm.metadata.product_log_id Pemetaan langsung.
impactScore read_only_udm.security_result.detection_fields.value Pemetaan langsung, dikonversi menjadi string.
integrityImpact read_only_udm.security_result.detection_fields.value Pemetaan langsung.
isWeaponized read_only_udm.extensions.vulns.vulnerabilities.about.labels.value Pemetaan langsung, dikonversi menjadi string.
latestExploitUpdate read_only_udm.extensions.vulns.vulnerabilities.about.labels.value Pemetaan langsung.
numOfExploits read_only_udm.security_result.detection_fields.value Pemetaan langsung, dikonversi menjadi string.
numberOfThreatActors read_only_udm.security_result.detection_fields.value Pemetaan langsung, dikonversi menjadi string.
orgPriorityManualChangeReason read_only_udm.security_result.detection_fields.value Pemetaan langsung.
orgPriorityManualChangedBy read_only_udm.principal.user.userid Pemetaan langsung.
orgPriorityManualUpdateTime read_only_udm.principal.labels.value Pemetaan langsung.
privilegesRequired read_only_udm.security_result.detection_fields.value Pemetaan langsung.
publishedDate read_only_udm.extensions.vulns.vulnerabilities.about.labels.value Pemetaan langsung.
reportedByGoogleZeroDays read_only_udm.extensions.vulns.vulnerabilities.about.labels.value Pemetaan langsung, dikonversi menjadi string.
cakupan read_only_udm.extensions.vulns.vulnerabilities.about.labels.value Pemetaan langsung.
tingkat keseriusan, read_only_udm.extensions.vulns.vulnerabilities.severity Dipetakan ke KRITIS, TINGGI, SEDANG, RENDAH berdasarkan nilai, nilai asli juga dipetakan ke severity_details.
status read_only_udm.extensions.vulns.vulnerabilities.about.labels.value Pemetaan langsung.
threatTags read_only_udm.extensions.vulns.vulnerabilities.about.labels.value Digabungkan menjadi satu string jika ada beberapa tag ancaman.
userInteraction read_only_udm.about.labels.value Pemetaan langsung.
vulnerabilities_matches read_only_udm.metadata.url_back_to_product Pemetaan langsung.
read_only_udm.metadata.event_type Tetapkan ke "GENERIC_EVENT".
read_only_udm.metadata.product_name Ditetapkan ke "ARMIS".
read_only_udm.metadata.vendor_name Ditetapkan ke "ARMIS".
read_only_udm.metadata.log_type Tetapkan ke "ARMIS_VULNERABILITIES".
read_only_udm.extensions.vulns.vulnerabilities.severity_details Nilai kolom "severity" dipetakan ke kolom ini

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