Mengumpulkan log Kerentanan Armis
Versi Parser: 2.0
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 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 API Armis
- Login ke platform Armis Centrix.
- Buka Settings > API Management.
- 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 konsol.
- 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 Rahasia API Armis
- Di Secret Manager, klik Create Secret.
- Berikan detail konfigurasi berikut:
- Name: Masukkan nama untuk secret (misalnya,
armis-api-secret). - Nilai rahasia: Tempelkan Rahasia 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 Google SecOps resmi 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 mesin 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. Tempelkan di sini.
- Metode HTTP: Pilih POST.
- Klik Auth header > Add OIDC token.
- Pilih akun layanan yang digunakan oleh Cloud Function.
- Klik Create.
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 | Ditetapkan ke "GENERIC_EVENT". | |
| read_only_udm.metadata.product_name | Tetapkan ke "ARMIS". | |
| read_only_udm.metadata.vendor_name | Tetapkan ke "ARMIS". | |
| read_only_udm.metadata.log_type | Disetel ke "ARMIS_VULNERABILITIES". | |
| read_only_udm.extensions.vulns.vulnerabilities.severity_details | Nilai kolom "severity" dipetakan ke kolom ini |
Log Perubahan
Melihat Log Perubahan untuk parser ini
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.