Rapid7 InsightIDR-Protokolle erfassen
Dieser Parser verarbeitet sowohl JSON- als auch SYSLOG-formatierte Protokolle von Rapid7 InsightIDR. Dabei werden Felder extrahiert, an das UDM normalisiert und eine spezielle Logik für Sicherheitsdaten angewendet, einschließlich CVSS-Bewertungen und Exploit-Informationen. Dabei werden sowohl JSON- als auch syslog-Formate separat verarbeitet. Außerdem werden Authentifizierungsversuche und Sitzungsereignisse den entsprechenden UDM-Ereignistypen zugeordnet.
Hinweis
- Sie benötigen eine Google SecOps-Instanz.
- Sie benötigen Berechtigungen für 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 ein, z. B. Google SecOps.
- Erstellen Sie den Schlüssel.
Kopieren Sie den Schlüssel aus dem neuen Fenster, in dem der generierte Schlüssel angezeigt wird.
Feed in Google SecOps für die Aufnahme von Rapid7 InsightIDR-Protokollen konfigurieren
- Klicken Sie auf Neu hinzufügen.
- Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. InsightIDR-Protokolle.
- Wählen Sie API eines Drittanbieters als Quelltyp aus.
- Wählen Sie Rapid7 Insight als Protokolltyp aus.
- Klicken Sie auf Weiter.
- Geben Sie Werte für die folgenden Eingabeparameter an:
- HTTP-Authentifizierungsheader: Token, das zuvor im
X-Api-Key:<value>
-Format generiert wurde (z. B. X-Api-Key:AAAABBBBCCCC111122223333). - API-Endpunkt: Geben Sie Sicherheitslücken oder Assets ein.
- API-Hostname: Der FQDN (voll qualifizierter Domainname) des Rapid7 API-Endpunkt im
[region].api.insight.rapid7.com
-Format. - Asset-Namespace: der Asset-Namespace.
- Aufnahmelabels: Das Label, das auf die Ereignisse aus diesem Feed angewendet wird.
- HTTP-Authentifizierungsheader: Token, das zuvor im
- Klicken Sie auf Weiter.
- Überprüfen Sie die Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.
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 Rohprotokoll 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“ gesetzt. |
cves |
vulnerabilities.cve_id |
Der Wert 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 „Zugriffskomplexität(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 „Verfügbarkeitsauswirkung (A)“ gesetzt. |
cvss_v2_confidentiality_impact |
asset.attribute.labels.value |
Der Wert von cvss_v2_confidentiality_impact wird dem Feld value in asset.attribute.labels zugeordnet. Die entsprechende key ist auf „Auswirkungen auf die Vertraulichkeit (C)“ gesetzt. |
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 „Auswirkungen auf die Integrität (I)“ gesetzt. |
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 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 „Verfügbarkeitsauswirkung (A)“ gesetzt. |
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 cvss_v3_vector wird vulnerabilities.cvss_vector zugeordnet. |
description |
vulnerabilities.description |
Der Wert von description aus dem Rohprotokoll 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. Die entsprechende key ist entweder „Anzahl der Exploits“ oder „Rang des Exploits“, je nachdem, ob das Feld „rank“ im exploits -Objekt vorhanden ist. |
host_name |
asset.hostname |
Der Wert 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 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 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 ist vulnerabilities.cve_id zugeordnet und das Feld href in links ist 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 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 „Mittelschwere Sicherheitslücken“ gesetzt. |
os_architecture |
asset.hardware.cpu_platform |
Der Wert os_architecture wird asset.hardware.cpu_platform zugeordnet. |
os_description |
asset.platform_software.platform_version |
Der Wert 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. Für „MAC OS X“, „IOS“, „WINDOWS“, „MAC“ und „LINUX“ wird eine spezielle Behandlung durchgeführt. Wenn keine Übereinstimmung gefunden wird, 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 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 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. Die entsprechende key ist auf „Risikobewertung“ gesetzt. |
security_result_summary |
security_result.summary |
Der Wert security_result_summary wird security_result.summary zugeordnet. Wenn der String dem Muster „Sitzungen insgesamt für Hauptkonto: security_result.detection_fields zugeordnet. |
Session |
network.session_id |
Der Wert 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. Die entsprechende key ist auf „Schwere 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. Wenn für syslog-Nachrichten „Info“ angegeben ist, wird dies in security_result.severity als „INFORMATIONSMELDUNG“ zugeordnet. Wenn der Wert „Fehler“ lautet, wird er in security_result.severity mit „ERROR“ abgeglichen. |
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 ist auf „Schweregrad“ gesetzt. |
SiloID |
security_result.detection_fields.value |
Der Wert von SiloID wird dem Feld value in security_result.detection_fields zugeordnet. Die entsprechende key ist auf „Silo-ID“ gesetzt. |
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 auf key und das Feld name auf value in asset.attribute.labels abgebildet. |
Thread |
security_result.detection_fields.value |
Der Wert von Thread wird dem Feld value in security_result.detection_fields zugeordnet. Die 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-Protokolle event.timestamp und für Ereignise von Entitäten metadata.collected_timestamp zugeordnet. Bei syslog-Nachrichten wird read_only_udm.metadata.event_timestamp zugewiesen. |
title |
vulnerabilities.description |
Der Wert 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 „Gesamtzahl der Sicherheitslücken“ gesetzt. |
URI |
security_result.detection_fields.value |
Der Wert von URI wird dem Feld value in security_result.detection_fields zugeordnet. Die entsprechende key ist auf „URI“ gesetzt. |
User-Agent |
network.http.user_agent , network.http.parsed_user_agent |
Der Wert User-Agent wird network.http.user_agent zugeordnet. Außerdem wird es network.http.parsed_user_agent zugeordnet und in ein geparstes User-Agent-Objekt umgewandelt. „Rapid7 Insight“ ist hartcodiert. „Rapid7 Insight“ ist hartcodiert. Für JSON-Protokolle hartcodiert auf „ASSET“. Wird zuerst auf „GENERIC_EVENT“ gesetzt und dann je nach anderen Feldern möglicherweise in „PROCESS_UNCATEGORIZED“, „STATUS_UPDATE“ oder „USER_LOGIN“ geändert. Legen Sie für „USER_LOGIN“-Ereignisse „AUTHTYPE_UNSPECIFIED“ fest. Legen Sie je nach product_event_type „ZULASSEN“ oder „BLOCKIEREN“ fest. Für syslog-Nachrichten hartcodiert auf „RAPID7_INSIGHT“. |
username |
principal.user.user_display_name |
Der Wert von username , aus dem Anführungszeichen entfernt wurden und der möglicherweise nach E-Mail-Adressen geparst wurde, wird principal.user.user_display_name zugeordnet. Die extrahierte E-Mail-Adresse, falls vorhanden, wird principal.user.email_addresses zugeordnet. |
Änderungen
2024-05-13
- Unterstützung für das neue Format von SYSLOG+KV-Protokollen hinzugefügt.
2023-05-05
- Optimierung
- „tags.type“ wurde in „asset.attribute.labels.key“ geändert.
- „tags.name“ wurde in „asset.attribute.labels.value“ umgewandelt.
2022-12-15
- Optimierung
- Erweiterter Parser zum Parsen von Anwendungsprotokollen im Syslog-Format.
- Es wurden Grok-Muster für die Protokolle vom Typ „Session created“, „Session destroyed“, „Authentication attempt succeeded“ und „Authentication attempt failed“ hinzugefügt.