Rapid7 InsightIDR-Logs erfassen
Dieser Parser verarbeitet sowohl JSON- als auch SYSLOG-formatierte Logs von Rapid7 InsightIDR. Es werden Felder extrahiert, für das UDM normalisiert und eine spezifische Logik für Sicherheitslückendaten ausgeführt, einschließlich CVSS-Bewertungen und Informationen zu Exploits. Dabei werden sowohl JSON- als auch Syslog-Formate separat verarbeitet. Außerdem werden Authentifizierungsversuche und Sitzungsereignisse den entsprechenden UDM-Ereignistypen zugeordnet.
Hinweise
Prüfen Sie, ob die folgenden Voraussetzungen erfüllt sind:
- Google SecOps-Instanz.
- Privilegierter Zugriff auf die InsightIDR-Verwaltungskonsole.
API-Schlüssel in Rapid7 InsightIDR konfigurieren
- Melden Sie sich in der InsightIDR Command Platform an.
- Klicken Sie auf Verwaltung.
- Klicken Sie auf API-Schlüssel.
- Rufen Sie den Tab Organisationsschlüssel auf.
- Klicken Sie auf New Organization Key (Neuer Organisationsschlüssel).
- Wählen Sie eine Organisation aus und geben Sie einen Namen für den Schlüssel an, z. B. Google SecOps.
- Erstellen Sie den Schlüssel.
Kopieren Sie den Schlüssel aus einem neuen Fenster, in dem der generierte Schlüssel angezeigt wird.
Feeds einrichten
Es gibt zwei verschiedene Einstiegspunkte zum Einrichten von Feeds in der Google SecOps-Plattform:
- SIEM-Einstellungen > Feeds
- Content Hub> Content-Pakete
Feeds über „SIEM-Einstellungen“ > „Feeds“ einrichten
So konfigurieren Sie einen Feed:
- Rufen Sie die SIEM-Einstellungen > Feeds auf.
- Klicken Sie auf Neuen Feed hinzufügen.
- Klicken Sie auf der nächsten Seite auf Einen einzelnen Feed konfigurieren.
- Geben Sie im Feld Feed name (Feedname) einen Namen für den Feed ein, z. B. Rapid7 InsightIDR Logs.
- Wählen Sie Drittanbieter-API als Quelltyp aus.
- Wählen Sie Rapid7 Insight als Log type (Protokolltyp) aus.
- Klicken Sie auf Weiter.
- Geben Sie Werte für die folgenden Eingabeparameter an:
- HTTP-Header für die Authentifizierung: Token, das zuvor im
X-Api-Key:<value>
-Format generiert wurde (z. B. X-Api-Key:AAAABBBBCCCC111122223333). - API-Endpunkt: Geben Sie vulnerabilities oder assets ein.
- API-Hostname: Der FQDN (vollständig qualifizierte Domainname) des Rapid7-API-Endpunkt im Format
[region].api.insight.rapid7.com
.
- HTTP-Header für die Authentifizierung: Token, das zuvor im
- Klicken Sie auf Weiter.
- Prüfen Sie die Feedkonfiguration auf dem Bildschirm Finalize (Abschließen) und klicken Sie dann auf Submit (Senden).
Feeds über den Content Hub einrichten
Geben Sie Werte für die folgenden Felder an:
- HTTP-Header für die Authentifizierung: Token, das zuvor im
X-Api-Key:<value>
-Format generiert wurde (z. B. X-Api-Key:AAAABBBBCCCC111122223333). - API-Endpunkt: Geben Sie vulnerabilities oder assets ein.
- API-Hostname: Der FQDN (vollständig qualifizierte Domainname) des Rapid7-API-Endpunkt im Format
[region].api.insight.rapid7.com
.
Erweiterte Optionen
- Feedname: Ein vorausgefüllter Wert, der den Feed identifiziert.
- Quelltyp: Methode, die zum Erfassen von Logs in Google SecOps verwendet wird.
- Asset-Namespace: Der Namespace, der dem Feed zugeordnet ist.
- Aufnahmelabels: Labels, die auf alle Ereignisse aus diesem Feed angewendet werden.
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
added |
vulnerabilities.first_found |
Das Feld added wird in einen Zeitstempel umgewandelt und vulnerabilities.first_found zugeordnet. |
Authentication |
security_result.detection_fields.value |
Der Wert von Authentication aus dem Rohlog wird dem Feld value in security_result.detection_fields zugeordnet. Die entsprechende key ist auf „Authentifizierung“ gesetzt. |
critical_vulnerabilities |
asset.attribute.labels.value |
Der Wert von critical_vulnerabilities wird dem Feld value in asset.attribute.labels zugeordnet. Die entsprechende key ist auf „Kritische Sicherheitslücken“ festgelegt. |
cves |
vulnerabilities.cve_id |
Der Wert von cves wird vulnerabilities.cve_id zugeordnet. |
cvss_v2_access_complexity |
asset.attribute.labels.value |
Der Wert von cvss_v2_access_complexity wird dem Feld value in asset.attribute.labels zugeordnet. Die entsprechende key ist auf „Access Complexity(Ac)“ gesetzt. |
cvss_v2_availability_impact |
asset.attribute.labels.value |
Der Wert von cvss_v2_availability_impact wird dem Feld value in asset.attribute.labels zugeordnet. Die entsprechende key ist auf „Availability Impact (A)“ (Auswirkung auf die Verfügbarkeit (A)) festgelegt. |
cvss_v2_confidentiality_impact |
asset.attribute.labels.value |
Der Wert von cvss_v2_confidentiality_impact wird dem Feld value in asset.attribute.labels zugeordnet. Der entsprechende key ist auf „Auswirkungen auf die Vertraulichkeit (C)“ festgelegt. |
cvss_v2_integrity_impact |
asset.attribute.labels.value |
Der Wert von cvss_v2_integrity_impact wird dem Feld value in asset.attribute.labels zugeordnet. Die entsprechende key ist auf „Integrity Impact (I)“ (Auswirkungen auf die Integrität) festgelegt. |
cvss_v2_score |
vulnerabilities.cvss_base_score |
Der Wert von cvss_v2_score wird in einen String und dann in eine Gleitkommazahl konvertiert und vulnerabilities.cvss_base_score zugeordnet. |
cvss_v2_vector |
vulnerabilities.cvss_vector |
Der Wert von cvss_v2_vector wird vulnerabilities.cvss_vector zugeordnet. |
cvss_v3_availability_impact |
asset.attribute.labels.value |
Der Wert von cvss_v3_availability_impact wird dem Feld value in asset.attribute.labels zugeordnet. Die entsprechende key ist auf „Availability Impact (A)“ (Auswirkung auf die Verfügbarkeit (A)) festgelegt. |
cvss_v3_score |
vulnerabilities.cvss_base_score |
Der Wert von cvss_v3_score wird in einen String und dann in eine Gleitkommazahl konvertiert und vulnerabilities.cvss_base_score zugeordnet. |
cvss_v3_vector |
vulnerabilities.cvss_vector |
Der Wert von cvss_v3_vector wird vulnerabilities.cvss_vector zugeordnet. |
description |
vulnerabilities.description |
Der Wert von description aus dem Rohlog wird vulnerabilities.description zugeordnet. |
exploits |
asset.attribute.labels.value |
Der Wert von exploits wird in einen String konvertiert und dem Feld value in asset.attribute.labels zugeordnet. Der entsprechende key ist entweder „Number of Exploits“ (Anzahl der Exploits) oder „Rank of Exploit“ (Rang des Exploits), je nachdem, ob das Feld „rank“ im exploits -Objekt vorhanden ist. |
host_name |
asset.hostname |
Der Wert von host_name wird asset.hostname zugeordnet. Wenn host_name leer ist und sowohl ip als auch mac leer sind, wird stattdessen der Wert von id verwendet. |
id |
asset.product_object_id |
Der Wert von id wird asset.product_object_id zugeordnet. Wenn host_name leer ist und sowohl ip als auch mac leer sind, wird der Wert von id für asset.hostname verwendet. |
ip |
asset.ip , entity.asset.ip |
Der Wert von ip wird sowohl asset.ip als auch entity.asset.ip zugeordnet. |
last_assessed_for_vulnerabilities |
vulnerabilities.scan_end_time |
Das Feld last_assessed_for_vulnerabilities wird in einen Zeitstempel umgewandelt und vulnerabilities.scan_end_time zugeordnet. |
last_scan_end |
vulnerabilities.last_found |
Das Feld last_scan_end wird in einen Zeitstempel umgewandelt und vulnerabilities.last_found zugeordnet. |
last_scan_start |
vulnerabilities.first_found |
Das Feld last_scan_start wird in einen Zeitstempel umgewandelt und vulnerabilities.first_found zugeordnet. |
links |
vulnerabilities.cve_id , vulnerabilities.vendor_knowledge_base_article_id |
Das Feld id in links wird vulnerabilities.cve_id zugeordnet und das Feld href in links wird vulnerabilities.vendor_knowledge_base_article_id zugeordnet. |
mac |
asset.mac , entity.asset.mac |
Der Wert von mac wird in Kleinbuchstaben umgewandelt und sowohl asset.mac als auch entity.asset.mac zugeordnet. |
MessageSourceAddress |
principal.ip , principal.asset.ip |
Die aus MessageSourceAddress extrahierte IP-Adresse wird principal.ip und principal.asset.ip zugeordnet. |
Method |
network.http.method |
Der Wert von Method wird network.http.method zugeordnet. |
moderate_vulnerabilities |
asset.attribute.labels.value |
Der Wert von moderate_vulnerabilities wird in einen String konvertiert und dem Feld value in asset.attribute.labels zugeordnet. Die entsprechende key ist auf „Mittelmäßige Sicherheitslücken“ gesetzt. |
os_architecture |
asset.hardware.cpu_platform |
Der Wert von os_architecture wird asset.hardware.cpu_platform zugeordnet. |
os_description |
asset.platform_software.platform_version |
Der Wert von os_description wird asset.platform_software.platform_version zugeordnet. |
os_family |
asset.platform_software.platform |
Der Wert von os_family wird in Großbuchstaben umgewandelt und asset.platform_software.platform zugeordnet. „MAC OS X“, „IOS“, „WINDOWS“, „MAC“ und „LINUX“ werden speziell behandelt. Wenn keine dieser Plattformen zutrifft, wird „UNKNOWN_PLATFORM“ festgelegt. |
Port |
principal.port |
Der Wert von Port wird principal.port zugeordnet und in eine Ganzzahl konvertiert. |
Principal |
principal.user.email_addresses |
Wenn Principal eine E-Mail-Adresse ist, wird sie principal.user.email_addresses zugeordnet. |
product_event_type |
metadata.product_event_type |
Der Wert von product_event_type wird metadata.product_event_type zugeordnet. |
Protocol |
network.application_protocol |
Wenn Protocol „HTTP“ oder „HTTPS“ ist, wird es network.application_protocol zugeordnet. |
published |
vulnerabilities.last_found |
Das Feld published wird in einen Zeitstempel umgewandelt und vulnerabilities.last_found zugeordnet. |
Referer |
network.http.referral_url |
Der Wert von Referer wird network.http.referral_url zugeordnet. |
risk_score |
asset.attribute.labels.value |
Der Wert von risk_score wird in einen String konvertiert und dem Feld value in asset.attribute.labels zugeordnet. Der entsprechende key ist auf „Risikobewertung“ festgelegt. |
security_result_summary |
security_result.summary |
Der Wert von security_result_summary wird security_result.summary zugeordnet. Wenn sie dem Muster „Total sessions for principal: security_result.detection_fields |
Session |
network.session_id |
Der Wert von Session wird network.session_id zugeordnet. |
severe_vulnerabilities |
asset.attribute.labels.value |
Der Wert von severe_vulnerabilities wird in einen String konvertiert und dem Feld value in asset.attribute.labels zugeordnet. Der entsprechende key ist auf „Schwerwiegende Sicherheitslücken“ gesetzt. |
severity |
vulnerabilities.severity , security_result.severity |
Der Wert von severity wird in Großbuchstaben umgewandelt. Wenn der Wert „HIGH“, „LOW“, „CRITICAL“ oder „MEDIUM“ ist, wird er vulnerabilities.severity zugeordnet. Bei Syslog-Nachrichten wird „Info“ in security_result.severity als „INFORMATIONAL“ zugeordnet. Wenn es „Error“ ist, wird es in security_result.severity auf „ERROR“ abgebildet. |
severity_score |
asset.attribute.labels.value |
Der Wert von severity_score wird in einen String konvertiert und dem Feld value in asset.attribute.labels zugeordnet. Die entsprechende key wird auf „Severity Score“ (Schweregradwert) festgelegt. |
SiloID |
security_result.detection_fields.value |
Der Wert von SiloID wird dem Feld value in security_result.detection_fields zugeordnet. Der entsprechende key ist auf „Silo-ID“ festgelegt. |
SourceModuleName |
target.resource.name |
Der Wert von SourceModuleName ohne Anführungszeichen wird target.resource.name zugeordnet. |
SourceModuleType |
observer.application |
Der Wert von SourceModuleType ohne Anführungszeichen und schließende Klammern wird observer.application zugeordnet. |
Status |
network.http.response_code |
Der Wert von Status wird network.http.response_code zugeordnet und in eine Ganzzahl konvertiert. |
tags |
asset.attribute.labels |
Für jedes Element im tags -Array wird das Feld type in asset.attribute.labels dem Feld key und das Feld name dem Feld value zugeordnet. |
Thread |
security_result.detection_fields.value |
Der Wert von Thread wird dem Feld value in security_result.detection_fields zugeordnet. Der entsprechende key ist auf „Thread“ gesetzt. |
timestamp |
event.timestamp , metadata.collected_timestamp , read_only_udm.metadata.event_timestamp |
Das Feld timestamp wird in einen Zeitstempel umgewandelt und für JSON-Logs event.timestamp und für Entitätsereignisse metadata.collected_timestamp zugeordnet. Für Syslog-Nachrichten wird sie read_only_udm.metadata.event_timestamp zugeordnet. |
title |
vulnerabilities.description |
Der Wert von title wird vulnerabilities.description zugeordnet. |
total_vulnerabilities |
asset.attribute.labels.value |
Der Wert von total_vulnerabilities wird in einen String konvertiert und dem Feld value in asset.attribute.labels zugeordnet. Die entsprechende key ist auf „Total Vulnerabilities“ (Gesamtzahl der Sicherheitslücken) festgelegt. |
URI |
security_result.detection_fields.value |
Der Wert von URI wird dem Feld value in security_result.detection_fields zugeordnet. Der entsprechende key ist auf „URI“ gesetzt. |
User-Agent |
network.http.user_agent , network.http.parsed_user_agent |
Der Wert von User-Agent wird network.http.user_agent zugeordnet. Es wird auch network.http.parsed_user_agent zugeordnet und in ein geparstes User-Agent-Objekt konvertiert. Fest codiert auf „Rapid7 Insight“. Fest codiert auf „Rapid7 Insight“. Für JSON-Logs ist „ASSET“ fest codiert. Wird anfangs auf „GENERIC_EVENT“ festgelegt und dann basierend auf anderen Feldern möglicherweise in „PROCESS_UNCATEGORIZED“, „STATUS_UPDATE“ oder „USER_LOGIN“ geändert. Für „USER_LOGIN“-Ereignisse auf „AUTHTYPE_UNSPECIFIED“ festlegen. Legen Sie basierend auf product_event_type „ALLOW“ oder „BLOCK“ fest. Für Syslog-Nachrichten fest auf „RAPID7_INSIGHT“ codiert. |
username |
principal.user.user_display_name |
Der Wert von username , wobei Anführungszeichen entfernt und E-Mail-Adressen möglicherweise geparst werden, wird principal.user.user_display_name zugeordnet. Die extrahierte E-Mail-Adresse wird, sofern vorhanden, principal.user.email_addresses zugeordnet. |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten