Security RX almacena datos de vulnerabilidades y configuraciones incorrectas en la base de datos de New Relic (NRDB), lo que permite realizar consultas mediante NRQL. Esta guía de referencia explica los tipos de entidades, atributos y estructuras de datos que puede emplear para crear consultas, dashboards y alertas personalizados.
tipos entidad y evento
Security RX emplea los siguientes tipos de entidades y eventos para almacenar datos de seguridad:
Entidad de SecurityFinding (recomendado)
SECURITY_FINDING es un tipo de entidad especializada que sirve como contenedor genérico para todos los problemas de seguridad detectados por Security RX. Esta es la forma recomendada de consultar datos de seguridad en New Relic.
Importante: SecurityFinding se consulta como un tipo de entidad, no como un evento tradicional:
FROM EntitySELECT * WHERE type = 'SECURITY_FINDING'Entendiendo el tipo de hallazgo
El atributo findingType es el campo clave para distinguir la fuente de datos:
findingType = 'VULNERABILITY': Indica un hallazgo de vulnerabilidades de fuentes como agente APM, agente de infraestructura o escáneres de terceros (Snyk, Trivy, FOSSA).findingType = 'MISCONFIGURATION': Indica un hallazgo de gestión de la postura de seguridad cloud (CSPM) de Security RX Cloud (por ejemplo, de AWS Security Hub, GuardDuty o Config)
Otros valores de findingType incluyen: LIBRARY_VULNERABILITY, INFRASTRUCTURE_VULNERABILITY, APPLICATION_VULNERABILITY, SYSTEM_VULNERABILITY, SECURITY_EVENT y OTHER.
Campos de entidad principal
Atributo | Tipo | Descripción | Ejemplo |
|---|---|---|---|
| Cadena | Identificador único global para este SecurityFinding (objetivo específico CVE y entidad impactada) | "ABC123..." |
| Cadena | Tipo de entidad: siempre "SECURITY_FINDING" | "SECURITY_FINDING" |
| Cadena | Título de las vulnerabilidades o mala configuración | "CVE-2024-12345: Inyección SQL en nombre-biblioteca" |
| Cadena | ID de cuenta donde se detectó este hallazgo | "1234567" |
| Cadena | Tipo de alcance: normalmente "ACCOUNT" | "ACCOUNT" |
| Timestamp | Cuando se creó esta entidad | Timestamp de Unix |
| Timestamp | Cuando se actualizó esta entidad por última vez | Timestamp de Unix |
| Matriz | Lista de etiquetas aplicables a la entidad (normalmente vacía para SecurityFinding) | [] |
Campos de clasificación
Atributo | Tipo | Descripción | Ejemplo |
|---|---|---|---|
| Cadena | Identificador para agregar SecurityFindings (normalmente CVE ID) | "CVE-2024-12345" |
| Cadena | Tipo de hallazgo de nivel superior | "VULNERABILITY", "MISCONFIGURATION" |
| Cadena | Subtipo (lenguaje para vulnerabilidades de APM, INFRA_OS_VULNERABILITY o INFRA_PACKAGE_VULNERABILITY para infraestructura) | "java", "INFRA_PACKAGE_VULNERABILITY" |
| Cadena | Fuente del hallazgo | "New Relic", "Snyk", "AWS Security Hub" |
Campos de estado y gravedad
Atributo | Tipo | Descripción | Valores |
|---|---|---|---|
| Cadena | Gravedad informada del hallazgo | "CRITICAL", "HIGH", "MEDIUM", "LOW", "UNKNOWN", "INFO" |
| Cadena | Estado actual del hallazgo | "AFFECTED", "IGNORED", "NO_LONGER_DETECTED", "UNKNOWN" |
| Booleano | Si existe una remediación | true, false |
| Cadena | Actualización sugerida por Security RX | "Actualizar a la versión 2.17.1" |
| Cadena | Breve texto de remediación de la fuente | "Actualizar la biblioteca a la versión parcheada" |
| Cadena | URL de la documentación de la fuente | " https://example.com/security-advisory " |
Campos de referencia CVE
Para los hallazgos de vulnerabilidades, el objeto cve contiene información CVE detallada:
Atributo | Tipo | Descripción |
|---|---|---|
| Cadena | Identificador CVE |
| Cadena | Descripción de CVE |
| Número | Puntaje CVSS |
| Cadena | Cadena vectorial CVSS |
| Número | Puntaje de probabilidad de explotación del EPSS |
| Número | Clasificación percentil del EPSS |
| Booleano | Si existe un exploit conocido |
| Cadena | URL donde se divulgó CVE |
| Timestamp | Cuando se reveló el CVE |
Campos de configuración incorrecta (hallazgos en la nube)
Para los hallazgos de configuración incorrecta, el objeto misconfiguration contiene información específica de la nube:
Atributo | Tipo | Descripción |
|---|---|---|
| Cadena | Proveedor de nube |
| Cadena | Título de la configuración incorrecta |
| Cadena | Tipo de hallazgo sin procesar de la fuente |
| Cadena | Tipo de recurso simplificado (por ejemplo, "S3", "EC2", "RDS") |
Campos de entidad impactados
El objeto impactedEntity identifica qué entidad de New Relic está afectada:
Atributo | Tipo | Descripción |
|---|---|---|
| Cadena | GUID de entidad |
| Cadena | Nombre de la entidad |
| Cadena | Tipo de entidad (APM-APPLICATION, INFRA-HOST, etc.) |
| Cadena | ID de la cuenta |
| Cadena | Tipo de alcance |
campos de marca de tiempo
Atributo | Tipo | Descripción |
|---|---|---|
| Timestamp | Cuando se detectó el hallazgo por primera vez |
| Timestamp | Cuándo se actualizó por última vez el hallazgo |
| Timestamp | Cuándo se supo por última vez que el hallazgo estaba activo |
UI y campos internos
Atributo | Tipo | Descripción |
|---|---|---|
| Cadena | Enlace a la página de detalles en UI Security RX |
| Cadena | Enlace a la vista de entidad en UI Security RX |
| Cadena | Campo de estado interno |
| Booleano | Bandera activa interna (usada en cloud Consulta) |
| Cadena | Campo interno (estará oculto en producción) |
| Cadena | Campo interno (estará oculto en producción) |
| matriz de objetos | Metadatos adicionales con pares principales de valor (empleados para ID de cuentas cloud, etc.) |
Sugerencia
Los campos marcados como "internos" están actualmente visibles en NRDB, pero pueden estar ocultos en el lanzamiento final. El campo internalState.active se usa comúnmente en consultas de configuración incorrecta cloud para filtrar hallazgos activos.
ejemplos de consulta para vulnerabilidades
Contar vulnerabilidades críticas activas por entidad:
FROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING' AND status = 'AFFECTED' AND severity = 'CRITICAL'FACET impactedEntity.nameBuscar entidad afectada por un CVE específico:
FROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING' AND status = 'AFFECTED' AND cve.id = 'CVE-2024-23944'FACET impactedEntity.nameEncuentre CVE con campañas de ransomware activas:
FROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING' AND cve.exploitKnown IS trueFACET impactedEntity.name, cve.idEncuentre vulnerabilidades que puedan explotar (puntaje EPSS alta):
FROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING' AND cve.epssPercentile > '0.95'FACET cve.idEncuentre fuentes de información para sus hallazgos:
FROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING'FACET sourceentidad con alto umbral de vulnerabilidades:
SELECT impactedEntityFROM ( SELECT count(*) AS vulnerableCount FROM Entity WHERE type = 'SECURITY_FINDING' AND severity IN ('CRITICAL', 'HIGH') FACET impactedEntity.name AS impactedEntity, severity)WHERE (severity = 'HIGH' AND vulnerableCount > 10) OR (severity = 'CRITICAL' AND vulnerableCount > 5)Consulta ejemplos de configuraciones incorrectas cloud
Contar configuraciones erróneas únicas por estado:
FROM EntitySELECT uniqueCount(misconfiguration.issueTitle)WHERE type = 'SECURITY_FINDING' AND findingType = 'MISCONFIGURATION'FACET statusLos 10 tipos de configuración incorrecta más comunes:
FROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING' AND findingType = 'MISCONFIGURATION' AND internalState.active = trueFACET misconfiguration.issueTitleLIMIT 10Encuentre las cuentas de AWS más riesgosas:
FROM EntitySELECT uniqueCount(misconfiguration.issueTitle)WHERE type = 'SECURITY_FINDING' AND findingType = 'MISCONFIGURATION' AND internalState.active = true AND severity IN ('CRITICAL', 'HIGH')FACET aparse(additionalInfo, '%"key":"cloudProviderAccountId","values":["*"]%') AS 'AWS Account ID'LIMIT 10Contar configuraciones erróneas por tipo de recurso:
FROM EntitySELECT uniqueCount(misconfiguration.issueTitle)WHERE type = 'SECURITY_FINDING' AND findingType = 'MISCONFIGURATION' AND internalState.active = trueFACET misconfiguration.normalizedResourceTypeEncuentre recursos críticos y expuestos públicamente:
FROM EntitySELECT name, impactedEntity.name, misconfiguration.misconfigurationTypeWHERE type = 'SECURITY_FINDING' AND findingType = 'MISCONFIGURATION' AND internalState.active = true AND severity = 'CRITICAL' AND misconfiguration.misconfigurationType LIKE 'Effects/Data Exposure'SINCE 1 day agoNrAiIncident (legado)
Tipo de evento heredado que almacena los hallazgos de vulnerabilidades y su estado actual. Este tipo de evento aún se admite por compatibilidad con versiones anteriores, pero recomendamos usar SecurityFinding para nuevas consultas.
Uso principal: consulta de vulnerabilidades que afectan a su entidad
Atributo clave:
Atributo | Tipo | Descripción | Ejemplo |
|---|---|---|---|
| Cadena | título de vulnerabilidades | "CVE-2024-12345: Inyección SQL en nombre-biblioteca" |
| Cadena | calcular el rango de prioridad | "CRITICAL", "HIGH", "MEDIUM", "LOW" |
| Cadena | Estado actual de vulnerabilidades | "OPEN", "CLOSED" |
| Booleano | Si se revisó vulnerabilidades |
|
| Cadena | Fuente/condición de detección | "Security RX - Detección de vulnerabilidades" |
| Cadena | entidad GUID afectada por vulnerabilidades | "ABC123..." |
| Cadena | Nombre de la entidad | "my-application" |
| Cadena | Tipo de entidad afectada | "APPLICATION", "HOST" |
Ejemplo de consulta:
FROM NrAiIncidentSELECT count(*)WHERE conditionName LIKE '%Security RX%'FACET priority, stateVulnerabilidades (evento personalizado)
Almacena metadatos detallados sobre vulnerabilidades, incluida información CVE, puntajes de gravedad y orientación para su remediación.
Uso principal: Profundizar en los detalles de las vulnerabilidades y los metadatos.
Atributo clave:
Atributo | Tipo | Descripción | Ejemplo |
|---|---|---|---|
| Cadena | Identificador CVE | "CVE-2024-12345" |
| Cadena | Gravedad basada en CVSS | "CRITICAL", "HIGH", "MEDIUM", "LOW" |
| Número | Puntaje numérico del CVSS | 9.8 |
| Número | Probabilidad de explotación del EPSS | 0,95 |
| Número | Clasificación percentil del EPSS | 98.5 |
| Booleano | Empleado en campañas de ransomware conocidas |
|
| Cadena | Nombre de biblioteca/paquete vulnerable | "log4j-core" |
| Cadena | Versión del paquete vulnerable | "2.14.0" |
| Cadena | Versión con corrección | "2.17.1" |
| Cadena | GUID de la entidad afectada | "ABC123..." |
| Cadena | Fuente de detección | "APM_AGENT", "SNYK", "AWS_SECURITY_HUB" |
Ejemplo de consulta:
FROM VulnerabilitySELECT count(*)WHERE severity = 'CRITICAL'AND activeRansomware = trueFACET affectedPackageNrAiIncidentTimeline
Realiza un seguimiento de los cambios de estado y los eventos del ciclo de vida en busca de vulnerabilidades.
Uso principal: Auditar el historial del estado de las vulnerabilidades y realizar un seguimiento del progreso de la remediación.
Atributo clave:
Atributo | Tipo | Descripción | Ejemplo |
|---|---|---|---|
| Cadena | ID de incidentes/vulnerabilidades relacionados | "INC-123" |
| Timestamp | Cuando el estado cambió | Timestamp de Unix |
| Cadena | Tipo de cambio | "STATUS_CHANGED", "DETECTED", "RESOLVED" |
| Cadena | Estado antes del cambio | "AFFECTED" |
| Cadena | Estado luego del cambio | "IGNORED" |
| Cadena | usuario que realizó el cambio | |
| Cadena | Motivo del cambio de estado | "Falso positivo: no se emplea la ruta de código vulnerable" |
Ejemplo de consulta:
FROM NrAiIncidentTimelineSELECT timestamp, event, previousState, newState, changedByWHERE event = 'STATUS_CHANGED'SINCE 7 days agoAtributo común entre los tipos de eventos
Estos atributos aparecen en múltiples tipos de eventos:
Identificación de la entidad
Atributo | Descripción |
|---|---|
| Identificador único de la entidad afectada |
| Nombre de entidad legible para humanos |
| tipo de entidad (APPLICATION, HOST, SERVICE) |
| ID de cuenta de New Relic |
Marca de tiempo
Atributo | Descripción |
|---|---|
| Cuando ocurrió el evento |
| Cuando se detectó por primera vez la vulnerabilidad |
| timestampde la última actualización |
| Cuando vulnerabilidades fue marcada como resuelta |
Seguimiento de la fuente
Atributo | Descripción |
|---|---|
| Fuente de datos (APM_AGENT, INFRASTRUCTURE, SNYK, etc.) |
| ID única del sistema de origen |
| integración que proporcionó datos |
Relaciones de datos
Comprender cómo se relacionan los tipos de datos entre sí:
Enfoque moderno (recomendado)
SecurityFinding Entity (type = 'SECURITY_FINDING') ↓ contains ├─ findingType (VULNERABILITY or MISCONFIGURATION) ├─ cve (CVE details for vulnerabilities) ├─ misconfiguration (Cloud security details) └─ impactedEntity (Affected New Relic entity)Enfoque heredado (compatibilidad con versiones anteriores)
Entity (Application/Host) ↓ has manyNrAiIncident (Active vulnerabilities) ↓ referencesVulnerability (CVE details) ↓ has manyNrAiIncidentTimeline (Status history)Patrones de consulta
Sugerencia
Recomendado: emplee SecurityFinding entidad consulta (que se muestra en la sección SecurityFinding anterior) para nuevas implementaciones. Los patrones a continuación emplean tipos de eventos legacy y se proporcionan únicamente para compatibilidad con versiones anteriores.
Patrones de consulta modernos
Para conocer los patrones de consulta modernos que emplean la entidad SecurityFinding, consulte las secciones de ejemplos de consulta anteriores.
Patrones de consulta heredados
Estos patrones emplean los tipos de eventos legacy :
Unir datos de entidad con vulnerabilidades (legacy)
FROM NrAiIncidentSELECT entity.name, count(*) as 'Vulnerability Count'WHERE conditionName LIKE '%Security RX%'AND state = 'OPEN'FACET entity.nameSINCE 1 day agoEquivalente moderno:
FROM EntitySELECT impactedEntity.name, count(*) as 'Vulnerability Count'WHERE type = 'SECURITY_FINDING' AND status = 'AFFECTED'FACET impactedEntity.nameSINCE 1 day agoCalcular ventanas de exposición (heredadas)
FROM VulnerabilitySELECT entity.name, cveId, (max(timestamp) - min(timestamp)) / 86400 as 'Days Exposed'WHERE severity IN ('CRITICAL', 'HIGH')FACET entity.name, cveIdSINCE 30 days agoEquivalente moderno:
FROM EntitySELECT impactedEntity.name, cve.id, (max(findingUpdatedAt) - min(firstDetected)) / 86400 as 'Days Exposed'WHERE type = 'SECURITY_FINDING' AND severity IN ('CRITICAL', 'HIGH')FACET impactedEntity.name, cve.idSINCE 30 days agoVelocidad de remediación de la pista (heredada)
FROM NrAiIncidentTimelineSELECT count(*) as 'Vulnerabilities Resolved'WHERE event = 'STATUS_CHANGED'AND newState = 'CLOSED'FACET weekOf(timestamp)SINCE 90 days agoImportante
Para rastrear los cambios de estado con la entidad SecurityFinding, monitoree los cambios en el campo status a lo largo del tiempo o use las alertas New Relic para recibir notificaciones cuando ocurran cambios de estado.
Tipos y formatos de atributos
Valores de gravedad
CRITICAL - CVSS 9.0-10.0HIGH - CVSS 7.0-8.9MEDIUM - CVSS 4.0-6.9LOW - CVSS 0.1-3.9INFO - CVSS 0.0Valores estatales
OPEN - Vulnerability currently activeCLOSED - Vulnerability resolved or fixedAFFECTED - Entity is confirmed affectedIGNORED - Marked as not applicableNO_LONGER_DETECTED - No longer seen in scansValores fuente
APM_AGENT - Detected by New Relic APM agentINFRASTRUCTURE - Detected by Infrastructure agentSNYK - Imported from SnykAWS_SECURITY_HUB - Imported from AWS Security HubDEPENDABOT - Imported from GitHub DependabotFOSSA - Imported from FOSSATRIVY - Imported from TrivySECURITY_DATA_API - Sent via APIConsejos para realizar consultas
Filtrar por gravedad (enfoque moderno)
Los hallazgos se priorizan según su gravedad:
FROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING' AND severity IN ('CRITICAL', 'HIGH') AND status = 'AFFECTED'FACET impactedEntity.nameFiltrar por tipo de búsqueda
Separe las vulnerabilidades de las configuraciones incorrectas:
-- Vulnerabilities onlyFROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING' AND findingType = 'VULNERABILITY'FACET impactedEntity.type
-- Misconfigurations onlyFROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING' AND findingType = 'MISCONFIGURATION'FACET misconfiguration.normalizedResourceTypeFiltrar por tipo de entidad
Separar las vulnerabilidades de la aplicación de la infraestructura:
-- Application vulnerabilitiesFROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING' AND impactedEntity.type LIKE '%APPLICATION%'FACET impactedEntity.name
-- Infrastructure vulnerabilitiesFROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING' AND impactedEntity.type LIKE '%HOST%'FACET impactedEntity.nameFiltrar por fuente de detección
resultados de la consulta de integración específica:
FROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING' AND source = 'Snyk'FACET severityFiltrado basado en el tiempo
Encuentre hallazgos detectados recientemente:
FROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING' AND firstDetected > ago(7 days)FACET cve.id, severityCreación de dashboards personalizados
Emplee la entidad SecurityFinding para crear un dashboard de seguridad completo:
Dashboard ejecutivo : métrica de seguridad de alto nivel en todos los tipos de hallazgos
FROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING'AND status = 'AFFECTED'FACET severity, findingTypeTendencias de vulnerabilidades : seguimiento de la detección de vulnerabilidades a lo largo del tiempo.
FROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING'AND findingType = 'VULNERABILITY'FACET weekOf(firstDetected)SINCE 90 days agoPostura de seguridad en la nube : Monitorear las configuraciones incorrectas cloud
FROM EntitySELECT uniqueCount(misconfiguration.issueTitle)WHERE type = 'SECURITY_FINDING'AND findingType = 'MISCONFIGURATION'FACET misconfiguration.cloudProvider, severityPostura de seguridad de la entidad - Vistas de seguridad por entidad
FROM EntitySELECT count(*) AS 'Findings'WHERE type = 'SECURITY_FINDING'AND status = 'AFFECTED'FACET impactedEntity.name, severity
Para obtener más ejemplos de consulta, consulte Ejemplos de consulta de datos de seguridad.
Enfoques dashboards heredados
Para mantener la compatibilidad con versiones anteriores, aún puede usar los tipos de eventos legacy (NrAiIncident, Vulnerability, NrAiIncidentTimeline), pero recomendamos migrar a la entidad SecurityFinding para el nuevo dashboard.