Mengumpulkan log Rapid7 InsightIDR
Parser ini menangani log berformat JSON dan SYSLOG dari Rapid7 InsightIDR. Fungsi ini mengekstrak kolom, menormalisasinya ke UDM, dan menjalankan logika tertentu untuk data kerentanan, termasuk skor CVSS dan informasi eksploit, yang menangani format JSON dan syslog secara terpisah. Alat ini juga memetakan upaya autentikasi dan peristiwa sesi ke jenis peristiwa UDM yang sesuai.
Sebelum memulai
- Pastikan Anda memiliki instance Google Chronicle.
- Pastikan Anda memiliki akses dengan hak istimewa ke konsol pengelolaan InsightIDR.
Mengonfigurasi kunci API di Rapid7 InsightIDR
- Login ke InsightIDR Command Platform.
- Klik Administrasi.
- Klik API Keys.
- Buka tab Organization Keys.
- Klik New Organization Key.
- Pilih organisasi dan berikan nama untuk kunci (misalnya, Google SecOps).
- Buat kunci.
Salin kunci dari jendela baru yang menampilkan kunci yang dibuat.
Mengonfigurasi feed di Google SecOps untuk menyerap log Rapid7 InsightIDR
- Klik Tambahkan baru.
- Di kolom Nama feed, masukkan nama untuk feed (misalnya, InsightIDR Logs).
- Pilih Third party API sebagai Source type.
- Pilih Rapid7 Insight sebagai Jenis log.
- Klik Berikutnya.
- Tentukan nilai untuk parameter input berikut:
- Header HTTP Autentikasi: token yang sebelumnya dibuat dalam format
X-Api-Key:<value>
(misalnya, X-Api-Key:AAAABBBBCCCC111122223333). - Endpoint API: masukkan kerentanan atau aset.
- Nama Host API: FQDN (nama domain yang sepenuhnya memenuhi syarat) endpoint Rapid7 API dalam format
[region].api.insight.rapid7.com
. - Namespace aset: namespace aset.
- Label penyerapan: label yang diterapkan ke peristiwa dari feed ini.
- Header HTTP Autentikasi: token yang sebelumnya dibuat dalam format
- Klik Berikutnya.
- Tinjau konfigurasi feed di layar Finalize, lalu klik Submit.
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
added |
vulnerabilities.first_found |
Kolom added dikonversi menjadi stempel waktu dan dipetakan ke vulnerabilities.first_found . |
Authentication |
security_result.detection_fields.value |
Nilai Authentication dari log mentah dipetakan ke kolom value dalam security_result.detection_fields . key yang sesuai ditetapkan ke "Autentikasi". |
critical_vulnerabilities |
asset.attribute.labels.value |
Nilai critical_vulnerabilities dipetakan ke kolom value dalam asset.attribute.labels . key yang sesuai ditetapkan ke "Kerentanan Kritis". |
cves |
vulnerabilities.cve_id |
Nilai cves dipetakan ke vulnerabilities.cve_id . |
cvss_v2_access_complexity |
asset.attribute.labels.value |
Nilai cvss_v2_access_complexity dipetakan ke kolom value dalam asset.attribute.labels . key yang sesuai ditetapkan ke "Kompleksitas Akses(Ac)". |
cvss_v2_availability_impact |
asset.attribute.labels.value |
Nilai cvss_v2_availability_impact dipetakan ke kolom value dalam asset.attribute.labels . key yang sesuai ditetapkan ke "Dampak Ketersediaan (A)". |
cvss_v2_confidentiality_impact |
asset.attribute.labels.value |
Nilai cvss_v2_confidentiality_impact dipetakan ke kolom value dalam asset.attribute.labels . key yang sesuai ditetapkan ke "Dampak Kerahasiaan (C)". |
cvss_v2_integrity_impact |
asset.attribute.labels.value |
Nilai cvss_v2_integrity_impact dipetakan ke kolom value dalam asset.attribute.labels . key yang sesuai ditetapkan ke "Dampak Integritas (I)". |
cvss_v2_score |
vulnerabilities.cvss_base_score |
Nilai cvss_v2_score dikonversi menjadi string, lalu menjadi float, dan dipetakan ke vulnerabilities.cvss_base_score . |
cvss_v2_vector |
vulnerabilities.cvss_vector |
Nilai cvss_v2_vector dipetakan ke vulnerabilities.cvss_vector . |
cvss_v3_availability_impact |
asset.attribute.labels.value |
Nilai cvss_v3_availability_impact dipetakan ke kolom value dalam asset.attribute.labels . key yang sesuai ditetapkan ke "Dampak Ketersediaan (A)". |
cvss_v3_score |
vulnerabilities.cvss_base_score |
Nilai cvss_v3_score dikonversi menjadi string, lalu menjadi float, dan dipetakan ke vulnerabilities.cvss_base_score . |
cvss_v3_vector |
vulnerabilities.cvss_vector |
Nilai cvss_v3_vector dipetakan ke vulnerabilities.cvss_vector . |
description |
vulnerabilities.description |
Nilai description dari log mentah dipetakan ke vulnerabilities.description . |
exploits |
asset.attribute.labels.value |
Nilai exploits dikonversi menjadi string dan dipetakan ke kolom value dalam asset.attribute.labels . key yang sesuai adalah "Number of Exploits" atau "Rank of Exploit" berdasarkan keberadaan kolom "rank" dalam objek exploits . |
host_name |
asset.hostname |
Nilai host_name dipetakan ke asset.hostname . Jika host_name kosong dan ip serta mac kosong, nilai id akan digunakan. |
id |
asset.product_object_id |
Nilai id dipetakan ke asset.product_object_id . Jika host_name kosong dan ip serta mac kosong, nilai id akan digunakan untuk asset.hostname . |
ip |
asset.ip , entity.asset.ip |
Nilai ip dipetakan ke asset.ip dan entity.asset.ip . |
last_assessed_for_vulnerabilities |
vulnerabilities.scan_end_time |
Kolom last_assessed_for_vulnerabilities dikonversi menjadi stempel waktu dan dipetakan ke vulnerabilities.scan_end_time . |
last_scan_end |
vulnerabilities.last_found |
Kolom last_scan_end dikonversi menjadi stempel waktu dan dipetakan ke vulnerabilities.last_found . |
last_scan_start |
vulnerabilities.first_found |
Kolom last_scan_start dikonversi menjadi stempel waktu dan dipetakan ke vulnerabilities.first_found . |
links |
vulnerabilities.cve_id , vulnerabilities.vendor_knowledge_base_article_id |
Kolom id dalam links dipetakan ke vulnerabilities.cve_id , dan kolom href dalam links dipetakan ke vulnerabilities.vendor_knowledge_base_article_id . |
mac |
asset.mac , entity.asset.mac |
Nilai mac dikonversi menjadi huruf kecil dan dipetakan ke asset.mac dan entity.asset.mac . |
MessageSourceAddress |
principal.ip , principal.asset.ip |
Alamat IP yang diekstrak dari MessageSourceAddress dipetakan ke principal.ip dan principal.asset.ip . |
Method |
network.http.method |
Nilai Method dipetakan ke network.http.method . |
moderate_vulnerabilities |
asset.attribute.labels.value |
Nilai moderate_vulnerabilities dikonversi menjadi string dan dipetakan ke kolom value dalam asset.attribute.labels . key yang sesuai ditetapkan ke "Kerentanan Sedang". |
os_architecture |
asset.hardware.cpu_platform |
Nilai os_architecture dipetakan ke asset.hardware.cpu_platform . |
os_description |
asset.platform_software.platform_version |
Nilai os_description dipetakan ke asset.platform_software.platform_version . |
os_family |
asset.platform_software.platform |
Nilai os_family dikonversi ke huruf besar dan dipetakan ke asset.platform_software.platform . Penanganan khusus dilakukan untuk "MAC OS X", "IOS", "WINDOWS", "MAC", dan "LINUX". Jika tidak cocok dengan salah satu platform tersebut, platform akan ditetapkan ke "UNKNOWN_PLATFORM". |
Port |
principal.port |
Nilai Port dipetakan ke principal.port dan dikonversi menjadi bilangan bulat. |
Principal |
principal.user.email_addresses |
Jika Principal adalah alamat email, alamat tersebut akan dipetakan ke principal.user.email_addresses . |
product_event_type |
metadata.product_event_type |
Nilai product_event_type dipetakan ke metadata.product_event_type . |
Protocol |
network.application_protocol |
Jika Protocol adalah "HTTP" atau "HTTPS", Protocol akan dipetakan ke network.application_protocol . |
published |
vulnerabilities.last_found |
Kolom published dikonversi menjadi stempel waktu dan dipetakan ke vulnerabilities.last_found . |
Referer |
network.http.referral_url |
Nilai Referer dipetakan ke network.http.referral_url . |
risk_score |
asset.attribute.labels.value |
Nilai risk_score dikonversi menjadi string dan dipetakan ke kolom value dalam asset.attribute.labels . key yang sesuai ditetapkan ke "Risk Score". |
security_result_summary |
security_result.summary |
Nilai security_result_summary dipetakan ke security_result.summary . Jika cocok dengan pola "Total sesi untuk akun utama: security_result.detection_fields . |
Session |
network.session_id |
Nilai Session dipetakan ke network.session_id . |
severe_vulnerabilities |
asset.attribute.labels.value |
Nilai severe_vulnerabilities dikonversi menjadi string dan dipetakan ke kolom value dalam asset.attribute.labels . key yang sesuai ditetapkan ke "Kerentanan Berat". |
severity |
vulnerabilities.severity , security_result.severity |
Nilai severity dikonversi ke huruf besar. Jika "TINGGI", "RENDAH", "KRITIS", atau "SEDANG", nilai ini akan dipetakan ke vulnerabilities.severity . Untuk pesan syslog, jika "Info", pesan akan dipetakan ke "INFORMATIONAL" di security_result.severity . Jika "Error", nilai ini akan dipetakan ke "ERROR" di security_result.severity . |
severity_score |
asset.attribute.labels.value |
Nilai severity_score dikonversi menjadi string dan dipetakan ke kolom value dalam asset.attribute.labels . key yang sesuai ditetapkan ke "Skor Keparahan". |
SiloID |
security_result.detection_fields.value |
Nilai SiloID dipetakan ke kolom value dalam security_result.detection_fields . key yang sesuai ditetapkan ke "ID Silo". |
SourceModuleName |
target.resource.name |
Nilai SourceModuleName dengan tanda kutip dihapus dipetakan ke target.resource.name . |
SourceModuleType |
observer.application |
Nilai SourceModuleType dengan tanda kutip dan tanda kurung tutup yang dihapus dipetakan ke observer.application . |
Status |
network.http.response_code |
Nilai Status dipetakan ke network.http.response_code dan dikonversi menjadi bilangan bulat. |
tags |
asset.attribute.labels |
Untuk setiap elemen dalam array tags , kolom type dipetakan ke key dan kolom name dipetakan ke value dalam asset.attribute.labels . |
Thread |
security_result.detection_fields.value |
Nilai Thread dipetakan ke kolom value dalam security_result.detection_fields . key yang sesuai ditetapkan ke "Thread". |
timestamp |
event.timestamp , metadata.collected_timestamp , read_only_udm.metadata.event_timestamp |
Kolom timestamp dikonversi menjadi stempel waktu dan dipetakan ke event.timestamp untuk log JSON dan metadata.collected_timestamp untuk peristiwa entitas. Untuk pesan syslog, pesan tersebut dipetakan ke read_only_udm.metadata.event_timestamp . |
title |
vulnerabilities.description |
Nilai title dipetakan ke vulnerabilities.description . |
total_vulnerabilities |
asset.attribute.labels.value |
Nilai total_vulnerabilities dikonversi menjadi string dan dipetakan ke kolom value dalam asset.attribute.labels . key yang sesuai ditetapkan ke "Total Kerentanan". |
URI |
security_result.detection_fields.value |
Nilai URI dipetakan ke kolom value dalam security_result.detection_fields . key yang sesuai ditetapkan ke "URI". |
User-Agent |
network.http.user_agent , network.http.parsed_user_agent |
Nilai User-Agent dipetakan ke network.http.user_agent . Objek ini juga dipetakan ke network.http.parsed_user_agent dan dikonversi menjadi objek agen pengguna yang diuraikan. Di-hardcode ke "Rapid7 Insight". Di-hardcode ke "Rapid7 Insight". Di-hardcode ke "ASSET" untuk log JSON. Awalnya ditetapkan ke "GENERIC_EVENT", lalu berpotensi diubah menjadi "PROCESS_UNCATEGORIZED", "STATUS_UPDATE", atau "USER_LOGIN" berdasarkan kolom lain. Tetapkan ke "AUTHTYPE_UNSPECIFIED" untuk peristiwa "USER_LOGIN". Tetapkan ke "ALLOW" atau "BLOCK" berdasarkan product_event_type . Di-hardcode ke "RAPID7_INSIGHT" untuk pesan syslog. |
username |
principal.user.user_display_name |
Nilai username , dengan tanda kutip dihapus dan berpotensi diuraikan untuk alamat email, dipetakan ke principal.user.user_display_name . Alamat email yang diekstrak, jika ada, akan dipetakan ke principal.user.email_addresses . |
Perubahan
2024-05-13
- Menambahkan dukungan untuk format log SYSLOG+KV yang baru.
2023-05-05
- Penyempurnaan
- Memetakan "tags.type" ke "asset.attribute.labels.key".
- Memetakan "tags.name" ke "asset.attribute.labels.value".
2022-12-15
- Penyempurnaan
- Pengurai yang ditingkatkan untuk mengurai log aplikasi yang memiliki format Syslog.
- Menambahkan pola Grok untuk log dengan jenis "Session created", "Session destroyed", "Authentication attempt succeeded", dan "Authentication attempt failed".