Recopila registros de Rapid7 InsightIDR
Este analizador controla los registros con formato JSON y SYSLOG de Rapid7 InsightIDR. Extrae campos, los normaliza según el UDM y realiza una lógica específica para los datos de vulnerabilidades, incluidos los puntajes 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 UDM adecuados.
Antes de comenzar
Asegúrate de cumplir con los siguientes requisitos previos:
- Instancia de Google SecOps.
- Acceso con privilegios a la consola de administración de InsightIDR
Cómo configurar una clave de API en Rapid7 InsightIDR
- Accede a la plataforma de comandos de InsightIDR.
- Haz clic en Administración.
- Haz clic en Claves de API.
- Ve a la pestaña Claves de organización.
- Haz clic en New Organization Key.
- Selecciona una organización y proporciona un nombre para la clave (por ejemplo, Google SecOps).
- Genera la clave.
Copia la clave de una ventana nueva que muestre la clave generada.
Configura feeds
Existen dos puntos de entrada diferentes para configurar feeds en la plataforma de Google SecOps:
- Configuración de SIEM > Feeds
- Centro de contenido > Paquetes de contenido
Configura feeds en Configuración del SIEM > Feeds
Para configurar un feed, sigue estos pasos:
- Ve a Configuración del SIEM > Feeds.
- Haz clic en Agregar feed nuevo.
- En la siguiente página, haz clic en Configurar un solo feed.
- En el campo Nombre del feed, ingresa un nombre para el feed, por ejemplo, Registros de Rapid7 InsightIDR.
- Selecciona API de terceros como el Tipo de origen.
- Selecciona Rapid7 Insight como el Tipo de registro.
- Haz clic en Siguiente.
- Especifica valores para los siguientes parámetros de entrada:
- Encabezado HTTP de autenticación: Es el token generado previamente en formato
X-Api-Key:<value>
(por ejemplo, X-Api-Key:AAAABBBBCCCC111122223333). - API Endpoint: Ingresa vulnerabilities o assets.
- Nombre de host de la API: Es el FQDN (nombre de dominio completamente calificado) del extremo de API de Rapid7 en el formato
[region].api.insight.rapid7.com
.
- Encabezado HTTP de autenticación: Es el token generado previamente en formato
- Haz clic en Siguiente.
- Revisa la configuración del feed en la pantalla Finalizar y, luego, haz clic en Enviar.
Configura feeds desde el Centro de contenido
Especifica valores para los siguientes campos:
- Encabezado HTTP de autenticación: Es el token generado previamente en formato
X-Api-Key:<value>
(por ejemplo, X-Api-Key:AAAABBBBCCCC111122223333). - API Endpoint: Ingresa vulnerabilities o assets.
- Nombre de host de la API: Es el FQDN (nombre de dominio completamente calificado) del extremo de API de Rapid7 en el formato
[region].api.insight.rapid7.com
.
Opciones avanzadas
- Nombre del feed: Es un valor completado previamente que identifica el feed.
- Tipo de fuente: Es el método que se usa para recopilar registros en Google SecOps.
- Espacio de nombres del activo: Es el espacio de nombres asociado con el feed.
- Etiquetas de transferencia: Son las etiquetas que se aplican a todos los eventos de este feed.
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 "Complejidad de acceso(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 "Availability Impact (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, por último, 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 "Availability Impact (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, por último, 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 "Clasificación del exploit" 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 lo están, 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 lo están, 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 en 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 a mayúsculas y se asigna a asset.platform_software.platform . Se realiza un tratamiento especial para "MAC OS X", "IOS", "WINDOWS", "MAC" y "LINUX". Si no coincide con ninguna de estas, 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 "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 "Sesiones totales para el principal: 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 "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 dentro de asset.attribute.labels . El key correspondiente se establece en "Puntuación de gravedad". |
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 como "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 entidades. 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 "Vulnerabilidades totales". |
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 codificó como "Rapid7 Insight". Se codificó como "Rapid7 Insight". Se codifica como "ASSET" para los registros JSON. Inicialmente, se establece en "GENERIC_EVENT" y, luego, se puede cambiar a "PROCESS_UNCATEGORIZED", "STATUS_UPDATE" o "USER_LOGIN" según otros campos. Se establece en "AUTHTYPE_UNSPECIFIED" para los eventos de "USER_LOGIN". Se establece en "ALLOW" o "BLOCK" según product_event_type . Se codifica como "RAPID7_INSIGHT" para los mensajes de syslog. |
username |
principal.user.user_display_name |
El valor de username , con las comillas quitadas y, posiblemente, analizado para la 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 . |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.