Mengumpulkan log Kerentanan Armis
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
- Login ke konsol Google SecOps.
- Buka Setelan SIEM > Profil.
- Salin dan simpan ID pelanggan dari bagian Detail Organisasi.
Mendapatkan kredensial akun layanan Google SecOps
- Login ke konsol Google SecOps.
- Buka Setelan SIEM > Agen Pengumpulan.
- Download File Autentikasi Penyerapan (file JSON akun layanan).
- Simpan file dengan aman karena Anda harus menguploadnya ke Google Secret Manager.
Mendapatkan Kunci Rahasia Armis API
- Login ke platform Armis Centrix.
- Buka Setelan > Pengelolaan API.
- Klik Buat jika Anda perlu membuat kunci rahasia API baru.
- Klik Tampilkan untuk melihat kunci rahasia.
- 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
- Login ke Google Cloud console.
- Buka Security > Secret Manager.
- Klik Buat Secret.
- 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.
- Name: Masukkan nama untuk secret (misalnya,
- Klik Buat Secret.
Salin ID resource secret yang dibuat dalam format berikut:
projects/{project_id}/secrets/{secret_id}/versions/{version_id}
Tambahkan secret Armis API Secret Key
- Di Secret Manager, klik Buat Secret.
- Berikan detail konfigurasi berikut:
- Name: Masukkan nama untuk secret (misalnya,
armis-api-secret). - Nilai secret: Tempelkan Kunci Secret API Armis yang Anda peroleh sebelumnya.
- Name: Masukkan nama untuk secret (misalnya,
- Klik Buat Secret.
Salin ID resource secret yang dibuat dalam format berikut:
projects/{project_id}/secrets/{secret_id}/versions/{version_id}`
Mendownload dan menyiapkan skrip penyerapan
- Akses repositori skrip penyerapan resmi Google SecOps di https://github.com/chronicle/ingestion-scripts.
- Download konten direktori armis dari repositori.
- Download direktori common dari repositori (dependensi yang diperlukan).
- Buat direktori baru untuk deployment Cloud Function di komputer lokal Anda.
- Salin konten direktori armis dan common ke direktori deployment Anda.
Mengonfigurasi variabel lingkungan
- Buka file
.env.ymldi editor teks. 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_VULNERABILITIESGanti nilai berikut:
<YOUR_CUSTOMER_ID>: ID pelanggan Google SecOps Andaprojects/{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, gunakancompany)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
Men-deploy menggunakan Cloud Function Gen2 (direkomendasikan)
- Buka Cloud Shell atau terminal lokal Anda dengan gcloud CLI terinstal.
- Buka direktori yang berisi file skrip penyerapan.
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
- Di konsol Google Cloud , buka Cloud Scheduler.
- Klik Create Job.
- 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).
- Name: Masukkan nama untuk tugas (misalnya,
- Klik Lanjutkan.
- Pilih HTTP sebagai jenis target.
- 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.
- Klik Header Auth > Tambahkan token OIDC.
- Pilih Service account yang digunakan oleh Cloud Function.
- 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.