Raccogliere i log di Rapid7 InsightIDR
Questo analizzatore gestisce i log in formato JSON e SYSLOG di Rapid7 InsightIDR. Estrae i campi, li normalizza in base al modello UDM ed esegue una logica specifica per i dati sulle vulnerabilità, inclusi i punteggi CVSS e le informazioni sugli exploit, gestendo separatamente i formati JSON e syslog. Inoltre, mappa i tentativi di autenticazione e gli eventi di sessione ai tipi di eventi UDM appropriati.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Istanza Google SecOps.
- Accesso con privilegi alla console di gestione InsightIDR.
Configurazione di una chiave API in Rapid7 InsightIDR
- Accedi alla piattaforma di comando InsightIDR.
- Fai clic su Amministrazione.
- Fai clic su Chiavi API.
- Vai alla scheda Chiavi dell'organizzazione.
- Fai clic su Nuova chiave dell'organizzazione.
- Seleziona un'organizzazione e fornisci un nome per la chiave (ad esempio, Google SecOps).
- Genera la chiave.
Copia la chiave da una nuova finestra che la mostra.
Configurare i feed
Esistono due diversi punti di accesso per configurare i feed nella piattaforma Google SecOps:
- Impostazioni SIEM > Feed
- Hub dei contenuti > Pacchetti di contenuti
Configura i feed da Impostazioni SIEM > Feed
Per configurare un feed:
- Vai a Impostazioni SIEM > Feed.
- Fai clic su Aggiungi nuovo feed.
- Nella pagina successiva, fai clic su Configura un singolo feed.
- Nel campo Nome feed, inserisci un nome per il feed, ad esempio Log di Rapid7 InsightIDR.
- Seleziona API di terze parti come Tipo di origine.
- Seleziona Rapid7 Insight come Tipo di log.
- Fai clic su Avanti.
- Specifica i valori per i seguenti parametri di input:
- Intestazione HTTP di autenticazione: token generato in precedenza nel formato
X-Api-Key:<value>
(ad esempio, X-Api-Key:AAAABBBBCCCC111122223333). - Endpoint API: inserisci vulnerabilities o assets.
- Nome host API: il nome di dominio completo (FQDN) dell'endpoint API Rapid7 nel formato
[region].api.insight.rapid7.com
.
- Intestazione HTTP di autenticazione: token generato in precedenza nel formato
- Fai clic su Avanti.
- Controlla la configurazione del feed nella schermata Finalizza e poi fai clic su Invia.
Configurare i feed dall'hub dei contenuti
Specifica i valori per i seguenti campi:
- Intestazione HTTP di autenticazione: token generato in precedenza nel formato
X-Api-Key:<value>
(ad esempio, X-Api-Key:AAAABBBBCCCC111122223333). - Endpoint API: inserisci vulnerabilities o assets.
- Nome host API: il nome di dominio completo (FQDN) dell'endpoint API Rapid7 nel formato
[region].api.insight.rapid7.com
.
Opzioni avanzate
- Nome feed: un valore precompilato che identifica il feed.
- Tipo di origine: metodo utilizzato per raccogliere i log in Google SecOps.
- Spazio dei nomi dell'asset: lo spazio dei nomi associato al feed.
- Etichette di importazione: etichette applicate a tutti gli eventi di questo feed.
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logic |
---|---|---|
added |
vulnerabilities.first_found |
Il campo added viene convertito in un timestamp e mappato a vulnerabilities.first_found . |
Authentication |
security_result.detection_fields.value |
Il valore di Authentication del log non elaborato viene mappato al campo value all'interno di security_result.detection_fields . Il key corrispondente è impostato su "Autenticazione". |
critical_vulnerabilities |
asset.attribute.labels.value |
Il valore di critical_vulnerabilities viene mappato al campo value all'interno di asset.attribute.labels . Il key corrispondente è impostato su "Vulnerabilità critiche". |
cves |
vulnerabilities.cve_id |
Il valore di cves è mappato a vulnerabilities.cve_id . |
cvss_v2_access_complexity |
asset.attribute.labels.value |
Il valore di cvss_v2_access_complexity viene mappato al campo value all'interno di asset.attribute.labels . Il key corrispondente è impostato su "Access Complexity(Ac)". |
cvss_v2_availability_impact |
asset.attribute.labels.value |
Il valore di cvss_v2_availability_impact viene mappato al campo value all'interno di asset.attribute.labels . Il key corrispondente è impostato su "Impatto sulla disponibilità (A)". |
cvss_v2_confidentiality_impact |
asset.attribute.labels.value |
Il valore di cvss_v2_confidentiality_impact viene mappato al campo value all'interno di asset.attribute.labels . Il valore key corrispondente è impostato su "Impatto sulla riservatezza (C)". |
cvss_v2_integrity_impact |
asset.attribute.labels.value |
Il valore di cvss_v2_integrity_impact viene mappato al campo value all'interno di asset.attribute.labels . Il key corrispondente è impostato su "Impatto sull'integrità (I)". |
cvss_v2_score |
vulnerabilities.cvss_base_score |
Il valore di cvss_v2_score viene convertito in una stringa, poi in un numero in virgola mobile e mappato a vulnerabilities.cvss_base_score . |
cvss_v2_vector |
vulnerabilities.cvss_vector |
Il valore di cvss_v2_vector è mappato a vulnerabilities.cvss_vector . |
cvss_v3_availability_impact |
asset.attribute.labels.value |
Il valore di cvss_v3_availability_impact viene mappato al campo value all'interno di asset.attribute.labels . Il key corrispondente è impostato su "Impatto sulla disponibilità (A)". |
cvss_v3_score |
vulnerabilities.cvss_base_score |
Il valore di cvss_v3_score viene convertito in una stringa, poi in un numero in virgola mobile e mappato a vulnerabilities.cvss_base_score . |
cvss_v3_vector |
vulnerabilities.cvss_vector |
Il valore di cvss_v3_vector è mappato a vulnerabilities.cvss_vector . |
description |
vulnerabilities.description |
Il valore di description del log non elaborato viene mappato a vulnerabilities.description . |
exploits |
asset.attribute.labels.value |
Il valore di exploits viene convertito in una stringa e mappato al campo value all'interno di asset.attribute.labels . Il key corrispondente è "Numero di exploit" o "Classifica dell'exploit" in base alla presenza del campo "rank" all'interno dell'oggetto exploits . |
host_name |
asset.hostname |
Il valore di host_name è mappato a asset.hostname . Se host_name è vuoto e anche ip e mac sono vuoti, viene utilizzato il valore di id . |
id |
asset.product_object_id |
Il valore di id è mappato a asset.product_object_id . Se host_name è vuoto e anche ip e mac sono vuoti, viene utilizzato il valore di id per asset.hostname . |
ip |
asset.ip , entity.asset.ip |
Il valore di ip è mappato sia su asset.ip che su entity.asset.ip . |
last_assessed_for_vulnerabilities |
vulnerabilities.scan_end_time |
Il campo last_assessed_for_vulnerabilities viene convertito in un timestamp e mappato a vulnerabilities.scan_end_time . |
last_scan_end |
vulnerabilities.last_found |
Il campo last_scan_end viene convertito in un timestamp e mappato a vulnerabilities.last_found . |
last_scan_start |
vulnerabilities.first_found |
Il campo last_scan_start viene convertito in un timestamp e mappato a vulnerabilities.first_found . |
links |
vulnerabilities.cve_id , vulnerabilities.vendor_knowledge_base_article_id |
Il campo id all'interno di links è mappato a vulnerabilities.cve_id e il campo href all'interno di links è mappato a vulnerabilities.vendor_knowledge_base_article_id . |
mac |
asset.mac , entity.asset.mac |
Il valore di mac viene convertito in minuscolo e mappato sia su asset.mac che su entity.asset.mac . |
MessageSourceAddress |
principal.ip , principal.asset.ip |
L'indirizzo IP estratto da MessageSourceAddress è mappato a principal.ip e principal.asset.ip . |
Method |
network.http.method |
Il valore di Method è mappato a network.http.method . |
moderate_vulnerabilities |
asset.attribute.labels.value |
Il valore di moderate_vulnerabilities viene convertito in una stringa e mappato al campo value all'interno di asset.attribute.labels . Il key corrispondente è impostato su "Vulnerabilità moderate". |
os_architecture |
asset.hardware.cpu_platform |
Il valore di os_architecture è mappato a asset.hardware.cpu_platform . |
os_description |
asset.platform_software.platform_version |
Il valore di os_description è mappato a asset.platform_software.platform_version . |
os_family |
asset.platform_software.platform |
Il valore di os_family viene convertito in maiuscolo e mappato a asset.platform_software.platform . La gestione speciale viene eseguita per "MAC OS X", "IOS", "WINDOWS", "MAC" e "LINUX". Se non corrisponde a nessuna di queste, viene impostato su "UNKNOWN_PLATFORM". |
Port |
principal.port |
Il valore di Port viene mappato su principal.port e convertito in un numero intero. |
Principal |
principal.user.email_addresses |
Se Principal è un indirizzo email, viene mappato su principal.user.email_addresses . |
product_event_type |
metadata.product_event_type |
Il valore di product_event_type è mappato a metadata.product_event_type . |
Protocol |
network.application_protocol |
Se Protocol è "HTTP" o "HTTPS", viene mappato a network.application_protocol . |
published |
vulnerabilities.last_found |
Il campo published viene convertito in un timestamp e mappato a vulnerabilities.last_found . |
Referer |
network.http.referral_url |
Il valore di Referer è mappato a network.http.referral_url . |
risk_score |
asset.attribute.labels.value |
Il valore di risk_score viene convertito in una stringa e mappato al campo value all'interno di asset.attribute.labels . Il key corrispondente è impostato su "Punteggio di rischio". |
security_result_summary |
security_result.summary |
Il valore di security_result_summary è mappato a security_result.summary . Se corrisponde al pattern "Total sessions for principal: security_result.detection_fields . |
Session |
network.session_id |
Il valore di Session è mappato a network.session_id . |
severe_vulnerabilities |
asset.attribute.labels.value |
Il valore di severe_vulnerabilities viene convertito in una stringa e mappato al campo value all'interno di asset.attribute.labels . Il key corrispondente è impostato su "Vulnerabilità gravi". |
severity |
vulnerabilities.severity , security_result.severity |
Il valore di severity viene convertito in maiuscolo. Se è "HIGH", "LOW", "CRITICAL" o "MEDIUM", viene mappato su vulnerabilities.severity . Per i messaggi syslog, se è "Info", viene mappato su "INFORMATIONAL" in security_result.severity . Se è "Error", viene mappato su "ERROR" in security_result.severity . |
severity_score |
asset.attribute.labels.value |
Il valore di severity_score viene convertito in una stringa e mappato al campo value all'interno di asset.attribute.labels . Il campo key corrispondente è impostato su "Punteggio di gravità". |
SiloID |
security_result.detection_fields.value |
Il valore di SiloID viene mappato al campo value all'interno di security_result.detection_fields . Il key corrispondente è impostato su "ID silo". |
SourceModuleName |
target.resource.name |
Il valore di SourceModuleName senza virgolette è mappato su target.resource.name . |
SourceModuleType |
observer.application |
Il valore di SourceModuleType con virgolette e parentesi chiuse rimosse viene mappato a observer.application . |
Status |
network.http.response_code |
Il valore di Status viene mappato su network.http.response_code e convertito in un numero intero. |
tags |
asset.attribute.labels |
Per ogni elemento dell'array tags , il campo type viene mappato a key e il campo name viene mappato a value all'interno di asset.attribute.labels . |
Thread |
security_result.detection_fields.value |
Il valore di Thread viene mappato al campo value all'interno di security_result.detection_fields . Il key corrispondente è impostato su "Thread". |
timestamp |
event.timestamp , metadata.collected_timestamp , read_only_udm.metadata.event_timestamp |
Il campo timestamp viene convertito in un timestamp e mappato a event.timestamp per i log JSON e a metadata.collected_timestamp per gli eventi delle entità. Per i messaggi syslog, viene mappato a read_only_udm.metadata.event_timestamp . |
title |
vulnerabilities.description |
Il valore di title è mappato a vulnerabilities.description . |
total_vulnerabilities |
asset.attribute.labels.value |
Il valore di total_vulnerabilities viene convertito in una stringa e mappato al campo value all'interno di asset.attribute.labels . Il key corrispondente è impostato su "Vulnerabilità totali". |
URI |
security_result.detection_fields.value |
Il valore di URI viene mappato al campo value all'interno di security_result.detection_fields . Il key corrispondente è impostato su "URI". |
User-Agent |
network.http.user_agent , network.http.parsed_user_agent |
Il valore di User-Agent è mappato a network.http.user_agent . Viene anche mappato a network.http.parsed_user_agent e convertito in un oggetto user agent analizzato. Codificato in modo permanente su "Rapid7 Insight". Codificato in modo permanente su "Rapid7 Insight". Codificato come "ASSET" per i log JSON. Impostato inizialmente su "GENERIC_EVENT", poi potenzialmente modificato in "PROCESS_UNCATEGORIZED", "STATUS_UPDATE" o "USER_LOGIN" in base ad altri campi. Imposta "AUTHTYPE_UNSPECIFIED" per gli eventi "USER_LOGIN". Imposta "ALLOW" (CONSENTI) o "BLOCK" (BLOCCA) in base a product_event_type . Codificato come "RAPID7_INSIGHT" per i messaggi syslog. |
username |
principal.user.user_display_name |
Il valore di username , con le virgolette rimosse e potenzialmente analizzato per l'indirizzo email, viene mappato a principal.user.user_display_name . L'indirizzo email estratto, se presente, viene mappato a principal.user.email_addresses . |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.