Raccogli 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 all'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 avere un'istanza Google SecOps.
- Assicurati di disporre dell'accesso privilegiato alla console di gestione di 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.
Configura un feed in Google SecOps per importare i log di Rapid7 InsightIDR
- Fai clic su Aggiungi nuova.
- Nel campo Nome feed, inserisci un nome per il feed (ad esempio Log 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 in formato
X-Api-Key:<value>
(ad esempio X-Api-Key:AAAABBBBCCCC111122223333). - Endpoint API: inserisci vulnerabilities o assets.
- Nome host dell'API: il FQDN (nome di dominio completo) dell'endpoint dell'API Rapid7 nel formato
[region].api.insight.rapid7.com
. - Spazio dei nomi degli asset: lo spazio dei nomi degli asset.
- Etichette di importazione: l'etichetta applicata agli eventi di questo feed.
- Intestazione HTTP di autenticazione: token generato in precedenza in formato
- Fai clic su Avanti.
- Controlla la configurazione del feed nella schermata Concludi e poi fai clic su Invia.
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logica |
---|---|---|
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 Authentication del log non elaborato viene mappato al campo value in security_result.detection_fields . Il valore key corrispondente è impostato su "Autenticazione". |
critical_vulnerabilities |
asset.attribute.labels.value |
Il valore di critical_vulnerabilities è mappato al campo value all'interno di asset.attribute.labels . Il valore 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 è mappato al campo value all'interno di asset.attribute.labels . Il valore key corrispondente è impostato su "Access Complexity(Ac)". |
cvss_v2_availability_impact |
asset.attribute.labels.value |
Il valore di cvss_v2_availability_impact è mappato al campo value all'interno di asset.attribute.labels . Il valore key corrispondente è impostato su "Impatto sulla disponibilità (A)". |
cvss_v2_confidentiality_impact |
asset.attribute.labels.value |
Il valore di cvss_v2_confidentiality_impact è 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 è mappato al campo value all'interno di asset.attribute.labels . Il valore 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 valore a 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 è mappato al campo value all'interno di asset.attribute.labels . Il valore 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 valore a 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 description del log non elaborato è mappato a vulnerabilities.description . |
exploits |
asset.attribute.labels.value |
Il valore di exploits viene convertito in una stringa e mappato al campo value in asset.attribute.labels . Il valore key corrispondente è "Numero di exploit" o "Rank 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, per asset.hostname viene utilizzato il valore di id . |
ip |
asset.ip , entity.asset.ip |
Il valore di ip è mappato sia a asset.ip che a 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 a asset.mac che a 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 in asset.attribute.labels . Il valore 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 a principal.port e convertito in un numero intero. |
Principal |
principal.user.email_addresses |
Se Principal è un indirizzo email, viene mappato a 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 in asset.attribute.labels . Il valore key corrispondente è impostato su "Punteggio rischio". |
security_result_summary |
security_result.summary |
Il valore di security_result_summary è mappato a security_result.summary . Se corrisponde allo schema "Sessioni totali per amministratore: 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 in asset.attribute.labels . Il valore key corrispondente è impostato su "Vulnerabilità gravi". |
severity |
vulnerabilities.severity , security_result.severity |
Il valore di severity viene convertito in lettere maiuscole. Se è "HIGH", "LOW", "CRITICAL" o "MEDIUM", viene mappato a vulnerabilities.severity . Per i messaggi syslog, se il valore è "Info", viene mappato a "INFORMATIONAL" in security_result.severity . Se è "Error", viene mappato a "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 in asset.attribute.labels . Il valore key corrispondente è impostato su "Punteggio di gravità". |
SiloID |
security_result.detection_fields.value |
Il valore di SiloID è mappato al campo value all'interno di security_result.detection_fields . Il valore key corrispondente è impostato su "ID silo". |
SourceModuleName |
target.resource.name |
Il valore di SourceModuleName con le virgolette rimosse è mappato a target.resource.name . |
SourceModuleType |
observer.application |
Il valore di SourceModuleType con le virgolette e le parentesi graffe finali rimosse è mappato a observer.application . |
Status |
network.http.response_code |
Il valore di Status viene mappato a network.http.response_code e convertito in un numero intero. |
tags |
asset.attribute.labels |
Per ogni elemento nell'array tags , il campo type viene mappato a key e il campo name a value in asset.attribute.labels . |
Thread |
security_result.detection_fields.value |
Il valore di Thread è mappato al campo value all'interno di security_result.detection_fields . Il valore 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, è 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 in asset.attribute.labels . Il valore key corrispondente è impostato su "Vulnerabilità totali". |
URI |
security_result.detection_fields.value |
Il valore di URI è mappato al campo value all'interno di security_result.detection_fields . Il valore 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. Hardcoded a "Rapid7 Insight". Hardcoded a "Rapid7 Insight". Hardcoded su "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. Impostato su "AUTHTYPE_UNSPECIFIED" per gli eventi "USER_LOGIN". Imposta su "ALLOW" o "BLOCK" in base a product_event_type . Hardcoded su "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 . |
Modifiche
2024-05-13
- È stato aggiunto il supporto per il nuovo formato dei log SYSLOG+KV.
2023-05-05
- Miglioramento
- "tags.type" è stato mappato a "asset.attribute.labels.key".
- "tags.name" è stato mappato a "asset.attribute.labels.value".
2022-12-15
- Miglioramento
- È stato migliorato il parser per analizzare i log delle applicazioni in formato Syslog.
- Sono stati aggiunti pattern Grok per i log di tipo "Sessione creata", "Sessione distrutta", "Tentativo di autenticazione riuscito" e "Tentativo di autenticazione non riuscito".