Recopilar registros de Rapid7 InsightIDR

Disponible en:

Este analizador gestiona los registros con formato JSON y SYSLOG de Rapid7 InsightIDR. Extrae campos, los normaliza al UDM y aplica una lógica específica a los datos de vulnerabilidades, como las puntuaciones CVSS y la información de exploits, gestionando los formatos JSON y syslog por separado. También asigna intentos de autenticación y eventos de sesión a los tipos de eventos de UDM correspondientes.

Antes de empezar

Asegúrate de que cumples los siguientes requisitos previos:

  • Instancia de Google SecOps.
  • Acceso con privilegios a la consola de gestión de InsightIDR.

Configurar una clave de API en Rapid7 InsightIDR

  1. Inicia sesión en la plataforma de comandos de InsightIDR.
  2. Haz clic en Administración.
  3. Haz clic en Claves de API.
  4. Ve a la pestaña Claves de organización.
  5. Haz clic en New Organization Key (Nueva clave de organización).
  6. Selecciona una organización y asigna un nombre a la clave (por ejemplo, Google SecOps).
  7. Genera la clave.
  8. Copia la clave de la nueva ventana que muestra la clave generada.

Configurar feeds

Para configurar un feed, sigue estos pasos:

  1. Ve a Configuración de SIEM > Feeds.
  2. Haz clic en Añadir feed.
  3. En la página siguiente, haga clic en Configurar un solo feed.
  4. En el campo Nombre del feed, introduce un nombre para el feed; por ejemplo, Registros de Rapid7 InsightIDR.
  5. Seleccione API de terceros como Tipo de fuente.
  6. Seleccione Rapid7 Insight como Tipo de registro.
  7. Haz clic en Siguiente.
  8. Especifique valores para los siguientes parámetros de entrada:
    • Encabezado HTTP de autenticación: token generado previamente en formato X-Api-Key:<value> (por ejemplo, X-Api-Key:AAAABBBBCCCC111122223333).
    • Punto de conexión de la API: introduce vulnerabilities o assets.
    • Nombre de host de la API: el nombre de dominio completo del endpoint de la API de Rapid7 en formato [region].api.insight.rapid7.com.
  9. Haz clic en Siguiente.
  10. Revise la configuración del feed en la pantalla Finalizar y, a continuación, haga clic en Enviar.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
added vulnerabilities.first_found El campo added se convierte en una marca de tiempo y se asigna a vulnerabilities.first_found.
Authentication security_result.detection_fields.value El valor de Authentication del registro sin procesar se asigna al campo value de security_result.detection_fields. El key correspondiente se define como "Autenticación".
critical_vulnerabilities asset.attribute.labels.value El valor de critical_vulnerabilities se asigna al campo value de asset.attribute.labels. El key correspondiente se ha definido como "Vulnerabilidades críticas".
cves vulnerabilities.cve_id El valor de cves se asigna a vulnerabilities.cve_id.
cvss_v2_access_complexity asset.attribute.labels.value El valor de cvss_v2_access_complexity se asigna al campo value de asset.attribute.labels. El key correspondiente se ha definido como "Complejidad de acceso(Ac)".
cvss_v2_availability_impact asset.attribute.labels.value El valor de cvss_v2_availability_impact se asigna al campo value de asset.attribute.labels. El valor de key correspondiente es "Impacto en la disponibilidad (A)".
cvss_v2_confidentiality_impact asset.attribute.labels.value El valor de cvss_v2_confidentiality_impact se asigna al campo value de asset.attribute.labels. El key correspondiente se ha definido como "Impacto de confidencialidad (C)".
cvss_v2_integrity_impact asset.attribute.labels.value El valor de cvss_v2_integrity_impact se asigna al campo value de asset.attribute.labels. El key correspondiente se define como "Impacto de integridad (I)".
cvss_v2_score vulnerabilities.cvss_base_score El valor de cvss_v2_score se convierte en una cadena, luego en un número flotante y se asigna a vulnerabilities.cvss_base_score.
cvss_v2_vector vulnerabilities.cvss_vector El valor de cvss_v2_vector se asigna a vulnerabilities.cvss_vector.
cvss_v3_availability_impact asset.attribute.labels.value El valor de cvss_v3_availability_impact se asigna al campo value de asset.attribute.labels. El valor de key correspondiente es "Impacto en la disponibilidad (A)".
cvss_v3_score vulnerabilities.cvss_base_score El valor de cvss_v3_score se convierte en una cadena, luego en un número flotante y se asigna a vulnerabilities.cvss_base_score.
cvss_v3_vector vulnerabilities.cvss_vector El valor de cvss_v3_vector se asigna a vulnerabilities.cvss_vector.
description vulnerabilities.description El valor de description del registro sin procesar se asigna a vulnerabilities.description.
exploits asset.attribute.labels.value El valor de exploits se convierte en una cadena y se asigna al campo value de asset.attribute.labels. El key correspondiente es "Number of Exploits" (Número de vulnerabilidades) o "Rank of Exploit" (Clasificación de vulnerabilidad) en función de si el objeto exploits contiene el campo "rank" (clasificación).
host_name asset.hostname El valor de host_name se asigna a asset.hostname. Si host_name está vacío y tanto ip como mac están vacíos, se usará el valor de id.
id asset.product_object_id El valor de id se asigna a asset.product_object_id. Si host_name está vacío y tanto ip como mac están vacíos, se usará el valor de id para asset.hostname.
ip asset.ip, entity.asset.ip El valor de ip se asigna a asset.ip y entity.asset.ip.
last_assessed_for_vulnerabilities vulnerabilities.scan_end_time El campo last_assessed_for_vulnerabilities se convierte en una marca de tiempo y se asigna a vulnerabilities.scan_end_time.
last_scan_end vulnerabilities.last_found El campo last_scan_end se convierte en una marca de tiempo y se asigna a vulnerabilities.last_found.
last_scan_start vulnerabilities.first_found El campo last_scan_start se convierte en una marca de tiempo y se asigna a vulnerabilities.first_found.
links vulnerabilities.cve_id, vulnerabilities.vendor_knowledge_base_article_id El campo id de links se asigna a vulnerabilities.cve_id, y el campo href de links se asigna a vulnerabilities.vendor_knowledge_base_article_id.
mac asset.mac, entity.asset.mac El valor de mac se convierte a minúsculas y se asigna a asset.mac y entity.asset.mac.
MessageSourceAddress principal.ip, principal.asset.ip La dirección IP extraída de MessageSourceAddress se asigna a principal.ip y principal.asset.ip.
Method network.http.method El valor de Method se asigna a network.http.method.
moderate_vulnerabilities asset.attribute.labels.value El valor de moderate_vulnerabilities se convierte en una cadena y se asigna al campo value de asset.attribute.labels. El valor de key correspondiente es "Vulnerabilidades moderadas".
os_architecture asset.hardware.cpu_platform El valor de os_architecture se asigna a asset.hardware.cpu_platform.
os_description asset.platform_software.platform_version El valor de os_description se asigna a asset.platform_software.platform_version.
os_family asset.platform_software.platform El valor de os_family se convierte a mayúsculas y se asigna a asset.platform_software.platform. Se aplica un tratamiento especial a "MAC OS X", "IOS", "WINDOWS", "MAC" y "LINUX". Si no coincide con ninguna de ellas, se le asigna el valor "UNKNOWN_PLATFORM".
Port principal.port El valor de Port se asigna a principal.port y se convierte en un número entero.
Principal principal.user.email_addresses Si Principal es una dirección de correo electrónico, se asigna a principal.user.email_addresses.
product_event_type metadata.product_event_type El valor de product_event_type se asigna a metadata.product_event_type.
Protocol network.application_protocol Si Protocol es "HTTP" o "HTTPS", se asigna a network.application_protocol.
published vulnerabilities.last_found El campo published se convierte en una marca de tiempo y se asigna a vulnerabilities.last_found.
Referer network.http.referral_url El valor de Referer se asigna a network.http.referral_url.
risk_score asset.attribute.labels.value El valor de risk_score se convierte en una cadena y se asigna al campo value de asset.attribute.labels. El key correspondiente se define como "Puntuación de riesgo".
security_result_summary security_result.summary El valor de security_result_summary se asigna a security_result.summary. Si coincide con el patrón "Total sessions for principal: ", el número se extrae y se asigna a una etiqueta independiente con la clave "Session Count" en security_result.detection_fields.
Session network.session_id El valor de Session se asigna a network.session_id.
severe_vulnerabilities asset.attribute.labels.value El valor de severe_vulnerabilities se convierte en una cadena y se asigna al campo value de asset.attribute.labels. El key correspondiente se define como "Vulnerabilidades graves".
severity vulnerabilities.severity, security_result.severity El valor de severity se convierte a mayúsculas. Si es "ALTA", "BAJA", "CRÍTICA" o "MEDIA", se asigna a vulnerabilities.severity. En el caso de los mensajes syslog, si es "Info", se asigna a "INFORMATIONAL" en security_result.severity. Si es "Error", se asigna a "ERROR" en security_result.severity.
severity_score asset.attribute.labels.value El valor de severity_score se convierte en una cadena y se asigna al campo value de asset.attribute.labels. El key correspondiente se define como "Puntuación de gravedad".
SiloID security_result.detection_fields.value El valor de SiloID se asigna al campo value de security_result.detection_fields. El valor de key correspondiente es "ID de silo".
SourceModuleName target.resource.name El valor de SourceModuleName sin comillas se asigna a target.resource.name.
SourceModuleType observer.application El valor de SourceModuleType, sin comillas ni corchetes de cierre, se asigna a observer.application.
Status network.http.response_code El valor de Status se asigna a network.http.response_code y se convierte en un número entero.
tags asset.attribute.labels En cada elemento de la matriz tags, el campo type se asigna a key y el campo name se asigna a value en asset.attribute.labels.
Thread security_result.detection_fields.value El valor de Thread se asigna al campo value de security_result.detection_fields. El valor de key correspondiente es "Thread".
timestamp event.timestamp, metadata.collected_timestamp, read_only_udm.metadata.event_timestamp El campo timestamp se convierte en una marca de tiempo y se asigna a event.timestamp en el caso de los registros JSON y a metadata.collected_timestamp en el de los eventos de entidad. En el caso de los mensajes syslog, se asigna a read_only_udm.metadata.event_timestamp.
title vulnerabilities.description El valor de title se asigna a vulnerabilities.description.
total_vulnerabilities asset.attribute.labels.value El valor de total_vulnerabilities se convierte en una cadena y se asigna al campo value de asset.attribute.labels. El key correspondiente se define como "Total de vulnerabilidades".
URI security_result.detection_fields.value El valor de URI se asigna al campo value de security_result.detection_fields. El key correspondiente se define como "URI".
User-Agent network.http.user_agent, network.http.parsed_user_agent El valor de User-Agent se asigna a network.http.user_agent. También se asigna a network.http.parsed_user_agent y se convierte en un objeto de user-agent analizado. Codificado como "Rapid7 Insight". Codificado como "Rapid7 Insight". Codificado como "ASSET" en los registros JSON. Inicialmente, se asigna el valor "GENERIC_EVENT" y, después, se puede cambiar a "PROCESS_UNCATEGORIZED", "STATUS_UPDATE" o "USER_LOGIN" en función de otros campos. Se define como "AUTHTYPE_UNSPECIFIED" para los eventos "USER_LOGIN". Asigna el valor "ALLOW" o "BLOCK" en función de product_event_type. Codificado como "RAPID7_INSIGHT" para los mensajes syslog.
username principal.user.user_display_name El valor de username, sin comillas y, posiblemente, analizado para obtener la dirección de correo, se asigna a principal.user.user_display_name. La dirección de correo extraída, si está presente, se asigna a principal.user.email_addresses.

¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.