Collecter les journaux Rapid7 InsightIDR

Compatible avec:

Cet analyseur gère les journaux au format JSON et SYSLOG de Rapid7 InsightIDR. Il extrait les champs, les normalise en fonction de l'UDM et exécute une logique spécifique pour les données de vulnérabilité, y compris les scores CVSS et les informations sur les failles, en traitant les formats JSON et syslog séparément. Il mappe également les tentatives d'authentification et les événements de session sur les types d'événements UDM appropriés.

Avant de commencer

  • Assurez-vous de disposer d'une instance Google SecOps.
  • Assurez-vous de disposer d'un accès privilégié à la console de gestion InsightIDR.

Configurer une clé API dans Rapid7 InsightIDR

  1. Connectez-vous à la plate-forme de commande InsightIDR.
  2. Cliquez sur Administration.
  3. Cliquez sur Clés API.
  4. Accédez à l'onglet Clés de l'organisation.
  5. Cliquez sur Nouvelle clé d'organisation.
  6. Sélectionnez une organisation et attribuez un nom à la clé (par exemple, Google SecOps).
  7. Générez la clé.
  8. Copiez la clé à partir d'une nouvelle fenêtre qui l'affiche.

Configurer un flux dans Google SecOps pour ingérer les journaux Rapid7 InsightIDR

  1. Cliquez sur Ajouter.
  2. Dans le champ Nom du flux, saisissez un nom pour le flux (par exemple, Journaux InsightIDR).
  3. Sélectionnez API tierce comme type de source.
  4. Sélectionnez Rapid7 Insight comme type de journal.
  5. Cliquez sur Suivant.
  6. Spécifiez les valeurs des paramètres d'entrée suivants :
    • En-tête HTTP d'authentification: jeton précédemment généré au format X-Api-Key:<value> (par exemple, X-Api-Key:AAAABBBBCCCC111122223333).
    • Point de terminaison de l'API: saisissez vulnérabilités ou composants.
    • Nom d'hôte de l'API: nom de domaine complet (FQDN) du point de terminaison de l'API Rapid7 au format [region].api.insight.rapid7.com.
    • Espace de noms des éléments: espace de noms des éléments.
    • Libellés d'ingestion: libellé appliqué aux événements de ce flux.
  7. Cliquez sur Suivant.
  8. Vérifiez la configuration du flux dans l'écran Finaliser, puis cliquez sur Envoyer.

Tableau de mappage UDM

Champ de journal Mappage UDM Logique
added vulnerabilities.first_found Le champ added est converti en code temporel et mappé sur vulnerabilities.first_found.
Authentication security_result.detection_fields.value La valeur de Authentication du journal brut est mappée sur le champ value dans security_result.detection_fields. Le key correspondant est défini sur "Authentication" (Authentification).
critical_vulnerabilities asset.attribute.labels.value La valeur de critical_vulnerabilities est mappée sur le champ value dans asset.attribute.labels. Le key correspondant est défini sur "Failles critiques".
cves vulnerabilities.cve_id La valeur de cves est mappée sur vulnerabilities.cve_id.
cvss_v2_access_complexity asset.attribute.labels.value La valeur de cvss_v2_access_complexity est mappée sur le champ value dans asset.attribute.labels. La key correspondante est définie sur "Access Complexity(Ac)".
cvss_v2_availability_impact asset.attribute.labels.value La valeur de cvss_v2_availability_impact est mappée sur le champ value dans asset.attribute.labels. Le key correspondant est défini sur "Impact sur la disponibilité (A)".
cvss_v2_confidentiality_impact asset.attribute.labels.value La valeur de cvss_v2_confidentiality_impact est mappée sur le champ value dans asset.attribute.labels. Le key correspondant est défini sur "Impact sur la confidentialité (C)".
cvss_v2_integrity_impact asset.attribute.labels.value La valeur de cvss_v2_integrity_impact est mappée sur le champ value dans asset.attribute.labels. Le key correspondant est défini sur "Impact sur l'intégrité (I)".
cvss_v2_score vulnerabilities.cvss_base_score La valeur de cvss_v2_score est convertie en chaîne, puis en valeur à virgule flottante, et mappée sur vulnerabilities.cvss_base_score.
cvss_v2_vector vulnerabilities.cvss_vector La valeur de cvss_v2_vector est mappée sur vulnerabilities.cvss_vector.
cvss_v3_availability_impact asset.attribute.labels.value La valeur de cvss_v3_availability_impact est mappée sur le champ value dans asset.attribute.labels. Le key correspondant est défini sur "Impact sur la disponibilité (A)".
cvss_v3_score vulnerabilities.cvss_base_score La valeur de cvss_v3_score est convertie en chaîne, puis en valeur à virgule flottante, et mappée sur vulnerabilities.cvss_base_score.
cvss_v3_vector vulnerabilities.cvss_vector La valeur de cvss_v3_vector est mappée sur vulnerabilities.cvss_vector.
description vulnerabilities.description La valeur de description du journal brut est mappée sur vulnerabilities.description.
exploits asset.attribute.labels.value La valeur de exploits est convertie en chaîne et mappée sur le champ value dans asset.attribute.labels. Le key correspondant est "Nombre d'exploits" ou "Classement de l'exploit", en fonction de la présence du champ "rank" dans l'objet exploits.
host_name asset.hostname La valeur de host_name est mappée sur asset.hostname. Si host_name est vide et que ip et mac le sont également, la valeur de id est utilisée à la place.
id asset.product_object_id La valeur de id est mappée sur asset.product_object_id. Si host_name est vide et que ip et mac le sont également, la valeur de id est utilisée pour asset.hostname.
ip asset.ip, entity.asset.ip La valeur de ip est mappée à la fois sur asset.ip et entity.asset.ip.
last_assessed_for_vulnerabilities vulnerabilities.scan_end_time Le champ last_assessed_for_vulnerabilities est converti en code temporel et mappé sur vulnerabilities.scan_end_time.
last_scan_end vulnerabilities.last_found Le champ last_scan_end est converti en code temporel et mappé sur vulnerabilities.last_found.
last_scan_start vulnerabilities.first_found Le champ last_scan_start est converti en code temporel et mappé sur vulnerabilities.first_found.
links vulnerabilities.cve_id, vulnerabilities.vendor_knowledge_base_article_id Le champ id dans links est mappé sur vulnerabilities.cve_id, et le champ href dans links est mappé sur vulnerabilities.vendor_knowledge_base_article_id.
mac asset.mac, entity.asset.mac La valeur de mac est convertie en minuscules et mappée à la fois sur asset.mac et entity.asset.mac.
MessageSourceAddress principal.ip, principal.asset.ip L'adresse IP extraite de MessageSourceAddress est mappée sur principal.ip et principal.asset.ip.
Method network.http.method La valeur de Method est mappée sur network.http.method.
moderate_vulnerabilities asset.attribute.labels.value La valeur de moderate_vulnerabilities est convertie en chaîne et mappée sur le champ value dans asset.attribute.labels. Le key correspondant est défini sur "Vulnérabilités modérées".
os_architecture asset.hardware.cpu_platform La valeur de os_architecture est mappée sur asset.hardware.cpu_platform.
os_description asset.platform_software.platform_version La valeur de os_description est mappée sur asset.platform_software.platform_version.
os_family asset.platform_software.platform La valeur de os_family est convertie en majuscules et mappée sur asset.platform_software.platform. Une gestion spéciale est appliquée pour "MAC OS X", "IOS", "WINDOWS", "MAC" et "LINUX". Si aucune de ces valeurs ne correspond, la valeur est définie sur "UNKNOWN_PLATFORM".
Port principal.port La valeur de Port est mappée sur principal.port et convertie en entier.
Principal principal.user.email_addresses Si Principal est une adresse e-mail, elle est mappée sur principal.user.email_addresses.
product_event_type metadata.product_event_type La valeur de product_event_type est mappée sur metadata.product_event_type.
Protocol network.application_protocol Si Protocol est "HTTP" ou "HTTPS", il est mappé sur network.application_protocol.
published vulnerabilities.last_found Le champ published est converti en code temporel et mappé sur vulnerabilities.last_found.
Referer network.http.referral_url La valeur de Referer est mappée sur network.http.referral_url.
risk_score asset.attribute.labels.value La valeur de risk_score est convertie en chaîne et mappée sur le champ value dans asset.attribute.labels. Le key correspondant est défini sur "Score de risque".
security_result_summary security_result.summary La valeur de security_result_summary est mappée sur security_result.summary. S'il correspond au format "Nombre total de sessions pour l'utilisateur principal: ", le nombre est extrait et mappé sur un libellé distinct avec la clé "Nombre de sessions" dans security_result.detection_fields.
Session network.session_id La valeur de Session est mappée sur network.session_id.
severe_vulnerabilities asset.attribute.labels.value La valeur de severe_vulnerabilities est convertie en chaîne et mappée sur le champ value dans asset.attribute.labels. Le key correspondant est défini sur "Failles graves".
severity vulnerabilities.severity, security_result.severity La valeur de severity est convertie en majuscules. Si la valeur est "HIGH", "LOW", "CRITICAL" ou "MEDIUM", elle est mappée sur vulnerabilities.severity. Pour les messages syslog, si la valeur est "Info", elle est mappée sur "INFORMATIONAL" dans security_result.severity. S'il s'agit de"Error", il est mappé sur "ERROR" dans security_result.severity.
severity_score asset.attribute.labels.value La valeur de severity_score est convertie en chaîne et mappée sur le champ value dans asset.attribute.labels. Le key correspondant est défini sur "Score de gravité".
SiloID security_result.detection_fields.value La valeur de SiloID est mappée sur le champ value dans security_result.detection_fields. Le key correspondant est défini sur "ID de silo".
SourceModuleName target.resource.name La valeur de SourceModuleName sans guillemets est mappée sur target.resource.name.
SourceModuleType observer.application La valeur de SourceModuleType sans guillemets ni crochets de fermeture est mappée sur observer.application.
Status network.http.response_code La valeur de Status est mappée sur network.http.response_code et convertie en entier.
tags asset.attribute.labels Pour chaque élément du tableau tags, le champ type est mappé sur key et le champ name est mappé sur value dans asset.attribute.labels.
Thread security_result.detection_fields.value La valeur de Thread est mappée sur le champ value dans security_result.detection_fields. Le key correspondant est défini sur "Thread".
timestamp event.timestamp, metadata.collected_timestamp, read_only_udm.metadata.event_timestamp Le champ timestamp est converti en code temporel et mappé sur event.timestamp pour les journaux JSON et metadata.collected_timestamp pour les événements d'entité. Pour les messages syslog, il est mappé sur read_only_udm.metadata.event_timestamp.
title vulnerabilities.description La valeur de title est mappée sur vulnerabilities.description.
total_vulnerabilities asset.attribute.labels.value La valeur de total_vulnerabilities est convertie en chaîne et mappée sur le champ value dans asset.attribute.labels. key correspondant est défini sur "Total des failles".
URI security_result.detection_fields.value La valeur de URI est mappée sur le champ value dans security_result.detection_fields. Le key correspondant est défini sur "URI".
User-Agent network.http.user_agent, network.http.parsed_user_agent La valeur de User-Agent est mappée sur network.http.user_agent. Il est également mappé sur network.http.parsed_user_agent et converti en objet user-agent analysé. Code codé en dur sur "Rapid7 Insight". Code codé en dur sur "Rapid7 Insight". Coded en dur sur "ASSET" pour les journaux JSON. Initialement défini sur "GENERIC_EVENT", il peut être remplacé par "PROCESS_UNCATEGORIZED", "STATUS_UPDATE" ou "USER_LOGIN" en fonction d'autres champs. Définissez cette valeur sur "AUTHTYPE_UNSPECIFIED" pour les événements "USER_LOGIN". Définissez la valeur sur "ALLOW" ou "BLOCK" en fonction de product_event_type. Code codé en dur sur "RAPID7_INSIGHT" pour les messages syslog.
username principal.user.user_display_name La valeur de username, sans guillemets et potentiellement analysée pour l'adresse e-mail, est mappée sur principal.user.user_display_name. L'adresse e-mail extraite, le cas échéant, est mappée sur principal.user.email_addresses.

Modifications

2024-05-13

  • Ajout de la compatibilité avec le nouveau format des journaux SYSLOG+KV.

2023-05-05

  • Amélioration
  • Mappage de "tags.type" sur "asset.attribute.labels.key".
  • Mappage de "tags.name" sur "asset.attribute.labels.value".

2022-12-15

  • Amélioration
  • Amélioration de l'analyseur pour analyser les journaux d'application au format Syslog.
  • Ajout de modèles Grok pour les journaux de type "Session créée", "Session détruite", "Tentative d'authentification réussie" et "Tentative d'authentification échouée".