Recopila registros de InsightIDR de Rapid7

Compatible con:

Este analizador controla los registros en formato JSON y SYSLOG de Rapid7 InsightIDR. Extrae campos, los normaliza a la UDM y realiza una lógica específica para los datos de vulnerabilidad, incluidas las puntuaciones de CVSS y la información de exploits, y controla los formatos JSON y syslog por separado. También asigna los intentos de autenticación y los eventos de sesión a los tipos de eventos de la AUA adecuados.

Antes de comenzar

  • Asegúrate de tener una instancia de Google SecOps.
  • Asegúrate de tener acceso con privilegios a la consola de administración de InsightIDR.

Cómo configurar una clave de API en Rapid7 InsightIDR

  1. Accede a 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 la organización.
  5. Haz clic en Nueva clave de organización.
  6. Selecciona una organización y proporciona un nombre para la clave (por ejemplo, Google SecOps).
  7. Genera la clave.
  8. Copia la clave de una ventana nueva que muestre la clave generada.

Configura un feed en Google SecOps para transferir registros de InsightIDR de Rapid7

  1. Haz clic en Agregar nueva.
  2. En el campo Nombre del feed, ingresa un nombre para el feed (por ejemplo, InsightIDR Logs).
  3. Selecciona API de terceros como el Tipo de origen.
  4. Selecciona Rapid7 Insight como el Tipo de registro.
  5. Haz clic en Siguiente.
  6. Especifica valores para los siguientes parámetros de entrada:
    • Encabezado HTTP de autenticación: Es el token generado anteriormente en formato X-Api-Key:<value> (por ejemplo, X-Api-Key:AAAABBBBCCCC111122223333).
    • Extremo de la API: Ingresa vulnerabilidades o recursos.
    • Nombre de host de la API: Es el FQDN (nombre de dominio completamente calificado) del extremo de API de Rapid7 en formato [region].api.insight.rapid7.com.
    • Espacio de nombres de recursos: Es el espacio de nombres de recursos.
    • Etiquetas de transferencia: Es la etiqueta que se aplica a los eventos de este feed.
  7. Haz clic en Siguiente.
  8. Revisa la configuración del feed en la pantalla Finalizar y, luego, haz 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 dentro de security_result.detection_fields. El key correspondiente se establece en "Authentication".
critical_vulnerabilities asset.attribute.labels.value El valor de critical_vulnerabilities se asigna al campo value dentro de asset.attribute.labels. El key correspondiente se establece en "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 dentro de asset.attribute.labels. El key correspondiente se establece en "Access Complexity(Ac)".
cvss_v2_availability_impact asset.attribute.labels.value El valor de cvss_v2_availability_impact se asigna al campo value dentro de asset.attribute.labels. El key correspondiente se establece en "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 dentro de asset.attribute.labels. El key correspondiente se establece en “Impacto en la confidencialidad (C)”.
cvss_v2_integrity_impact asset.attribute.labels.value El valor de cvss_v2_integrity_impact se asigna al campo value dentro de asset.attribute.labels. El key correspondiente se establece en "Impacto en la 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 de punto 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 dentro de asset.attribute.labels. El key correspondiente se establece en "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 de punto 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 dentro de asset.attribute.labels. El key correspondiente es "Cantidad de exploits" o "Rango de exploits" según la presencia del campo "rank" dentro del objeto exploits.
host_name asset.hostname El valor de host_name se asigna a asset.hostname. Si host_name está vacío y ip y mac también están vacíos, se usa 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 ip y mac también están vacíos, se usa 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 dentro de links se asigna a vulnerabilities.cve_id y el campo href dentro 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 dentro de asset.attribute.labels. El key correspondiente se establece en "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 en mayúsculas y se asigna a asset.platform_software.platform. El manejo especial se realiza para "MAC OS X", "IOS", "WINDOWS", "MAC" y "LINUX". Si no coincide con ninguno de estos, se establece como "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 dentro de asset.attribute.labels. El key correspondiente se establece en "Risk Score".
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 de sesiones para el principal: ", el número se extrae y se asigna a una etiqueta independiente con la clave "Cantidad de sesiones" dentro de 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 dentro de asset.attribute.labels. El key correspondiente se establece en "Vulnerabilidades graves".
severity vulnerabilities.severity, security_result.severity El valor de severity se convierte en mayúsculas. Si es “HIGH”, “LOW”, “CRITICAL” o “MEDIUM”, se asigna a vulnerabilities.severity. En el caso de los mensajes de 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 dentro de asset.attribute.labels. El key correspondiente se establece en “Severity Score”.
SiloID security_result.detection_fields.value El valor de SiloID se asigna al campo value dentro de security_result.detection_fields. El key correspondiente se establece en "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 Para cada elemento del array tags, el campo type se asigna a key y el campo name se asigna a value dentro de asset.attribute.labels.
Thread security_result.detection_fields.value El valor de Thread se asigna al campo value dentro de security_result.detection_fields. El key correspondiente se establece en "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 para los registros JSON y a metadata.collected_timestamp para los eventos de entidad. En el caso de los mensajes de 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 dentro de asset.attribute.labels. El key correspondiente se establece en "Total de vulnerabilidades".
URI security_result.detection_fields.value El valor de URI se asigna al campo value dentro de security_result.detection_fields. El key correspondiente se establece en "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 usuario-agente analizado. Se codifica de forma fija en "Rapid7 Insight". Se codifica de forma fija en "Rapid7 Insight". Está codificado de forma fija en "ASSET" para los registros JSON. Se establece en "GENERIC_EVENT" inicialmente y, luego, puede cambiar a "PROCESS_UNCATEGORIZED", "STATUS_UPDATE" o "USER_LOGIN" según otros campos. Configúralo como "AUTHTYPE_UNSPECIFIED" para los eventos "USER_LOGIN". Se establece en "ALLOW" o "BLOCK" según product_event_type. Está codificado de forma fija en “RAPID7_INSIGHT” para los mensajes de syslog.
username principal.user.user_display_name El valor de username, sin comillas y posiblemente analizado para una dirección de correo electrónico, se asigna a principal.user.user_display_name. La dirección de correo electrónico extraída, si está presente, se asigna a principal.user.email_addresses.

Cambios

2024-05-13

  • Se agregó compatibilidad con el nuevo formato de registros SYSLOG+KV.

2023-05-05

  • Mejora
  • Se asignó "tags.type" a "asset.attribute.labels.key".
  • Se asignó "tags.name" a "asset.attribute.labels.value".

2022-12-15

  • Mejora
  • Se mejoró el analizador para analizar los registros de la aplicación que tienen formato Syslog.
  • Se agregaron patrones de Grok para los registros con los tipos "Se creó la sesión", "Se destruyó la sesión", "Se realizó correctamente el intento de autenticación" y "Falló el intento de autenticación".