Mengumpulkan log Rapid7 InsightIDR
Parser ini menangani log berformat JSON dan SYSLOG dari Rapid7 InsightIDR. Proses ini mengekstrak kolom, menormalisasinya ke UDM, dan menjalankan logika khusus untuk data kerentanan, termasuk skor CVSS dan informasi eksploitasi, dengan menangani format JSON dan syslog secara terpisah. Selain itu, alat ini memetakan upaya autentikasi dan peristiwa sesi ke jenis peristiwa UDM yang sesuai.
Sebelum memulai
Pastikan Anda memiliki prasyarat berikut:
- Instance Google SecOps.
- Akses istimewa ke konsol pengelolaan InsightIDR.
Mengonfigurasi kunci API di Rapid7 InsightIDR
- Login ke InsightIDR Command Platform.
- Klik Administrasi.
- Klik Kunci API.
- Buka tab Kunci Organisasi.
- 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.
Menyiapkan feed
Ada dua titik entri berbeda untuk menyiapkan feed di platform Google SecOps:
- Setelan SIEM > Feed
- Hub Konten > Paket Konten
Menyiapkan feed dari Setelan SIEM > Feed
Untuk mengonfigurasi feed, ikuti langkah-langkah berikut:
- Buka Setelan SIEM > Feed.
- Klik Tambahkan Feed Baru.
- Di halaman berikutnya, klik Konfigurasi satu feed.
- Di kolom Feed name, masukkan nama untuk feed; misalnya, Rapid7 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 vulnerabilities atau assets.
- Nama Host API: FQDN (nama domain yang sepenuhnya memenuhi syarat) endpoint Rapid7 API dalam format
[region].api.insight.rapid7.com
.
- Header HTTP Autentikasi: token yang sebelumnya dibuat dalam format
- Klik Berikutnya.
- Tinjau konfigurasi feed di layar Selesaikan, lalu klik Kirim.
Menyiapkan feed dari Hub Konten
Tentukan nilai untuk kolom berikut:
- Header HTTP Autentikasi: token yang sebelumnya dibuat dalam format
X-Api-Key:<value>
(misalnya, X-Api-Key:AAAABBBBCCCC111122223333). - Endpoint API: masukkan vulnerabilities atau assets.
- Nama Host API: FQDN (nama domain yang sepenuhnya memenuhi syarat) endpoint Rapid7 API dalam format
[region].api.insight.rapid7.com
.
Opsi lanjutan
- Nama Feed: Nilai yang telah diisi otomatis yang mengidentifikasi feed.
- Jenis Sumber: Metode yang digunakan untuk mengumpulkan log ke Google SecOps.
- Namespace Aset: Namespace yang terkait dengan feed.
- Label Penyerapan: Label yang diterapkan ke semua peristiwa dari feed ini.
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 "Jumlah Eksploitasi" atau "Peringkat Eksploitasi" berdasarkan keberadaan kolom "peringkat" 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 menjadi 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 di atas, 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 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", maka 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 "Skor Risiko". |
security_result_summary |
security_result.summary |
Nilai security_result_summary dipetakan ke security_result.summary . Jika cocok dengan pola "Total sesi untuk kepala sekolah: 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 Parah". |
severity |
vulnerabilities.severity , security_result.severity |
Nilai severity dikonversi menjadi huruf besar. Jika "HIGH", "LOW", "CRITICAL", atau "MEDIUM", maka akan dipetakan ke vulnerabilities.severity . Untuk pesan syslog, jika "Info", pesan tersebut dipetakan ke "INFORMATIONAL" di security_result.severity . Jika "Error", maka 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 petik yang dihapus dipetakan ke target.resource.name . |
SourceModuleType |
observer.application |
Nilai SourceModuleType dengan tanda petik dan tanda kurung penutup 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, kolom ini 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 . Header ini juga dipetakan ke network.http.parsed_user_agent dan dikonversi menjadi objek agen pengguna yang diuraikan. Dikodekan secara permanen ke "Rapid7 Insight". Dikodekan secara permanen ke "Rapid7 Insight". Dikodekan secara permanen ke "ASSET" untuk log JSON. Awalnya disetel ke "GENERIC_EVENT", lalu berpotensi diubah menjadi "PROCESS_UNCATEGORIZED", "STATUS_UPDATE", atau "USER_LOGIN" berdasarkan kolom lainnya. Disetel ke "AUTHTYPE_UNSPECIFIED" untuk peristiwa "USER_LOGIN". Tetapkan ke "ALLOW" atau "BLOCK" berdasarkan product_event_type . Dikodekan secara permanen ke "RAPID7_INSIGHT" untuk pesan syslog. |
username |
principal.user.user_display_name |
Nilai username , dengan tanda petik dihapus dan berpotensi diuraikan untuk alamat email, dipetakan ke principal.user.user_display_name . Alamat email yang diekstrak, jika ada, dipetakan ke principal.user.email_addresses . |
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.