Esta guía proporciona una consulta NRQL lista para usar para escenarios comunes de análisis y monitoreo de seguridad. Copie estas consultas en el generador de consultas o agréguelas al dashboard personalizado para obtener información más profunda y valiosa sobre sus datos de vulnerabilidades.
Para obtener información sobre la estructura de datos subyacente, consulte Referencia de estructura de datos de seguridad.
Reportes ejecutivos
Total de vulnerabilidades abiertas por gravedad
Obtenga una visión de alto nivel de su exposición a vulnerabilidades:
FROM VulnerabilitySELECT count(*) as 'Total Vulnerabilities'WHERE state = 'OPEN'FACET severitySINCE 1 day agoTendencias críticas y de alta gravedad
Realice un seguimiento de cómo cambian las vulnerabilidades críticas a lo largo del tiempo:
FROM VulnerabilitySELECT count(*) as 'Critical & High Vulnerabilities'WHERE severity IN ('CRITICAL', 'HIGH')AND state = 'OPEN'TIMESERIES AUTOSINCE 30 days agovulnerabilidades por entidad
Identifique qué aplicación u hosts tienen más vulnerabilidades:
FROM VulnerabilitySELECT count(*) as 'Vulnerability Count'WHERE state = 'OPEN'FACET entity.nameLIMIT 20SINCE 1 day agoDistribución de vulnerabilidades en la cartera
Comprender la propagación de vulnerabilidades:
FROM VulnerabilitySELECT percentage(count(*), WHERE severity = 'CRITICAL') as 'Critical %', percentage(count(*), WHERE severity = 'HIGH') as 'High %', percentage(count(*), WHERE severity = 'MEDIUM') as 'Medium %', percentage(count(*), WHERE severity = 'LOW') as 'Low %'WHERE state = 'OPEN'SINCE 1 day agoPriorización y evaluación de riesgos
Vulnerabilidades de alta prioridad
Encuentre vulnerabilidades con alta probabilidad de explotación:
FROM VulnerabilitySELECT cveId, affectedPackage, affectedVersion, cvssScore, epssPercentileWHERE epssPercentile > 90AND state = 'OPEN'ORDER BY epssPercentile DESCLIMIT 50SINCE 7 days agoVulnerabilidades activas de ransomware
Identificar vulnerabilidades empleadas en campañas de ransomware:
FROM VulnerabilitySELECT cveId, affectedPackage, cvssScore, entity.nameWHERE activeRansomware = trueAND state = 'OPEN'FACET cveId, entity.nameSINCE 30 days agoVulnerabilidades críticas recién detectadas
Monitorizar nuevos hallazgos críticos:
FROM VulnerabilitySELECT cveId, affectedPackage, affectedVersion, entity.name, detectedAtWHERE severity = 'CRITICAL'AND state = 'OPEN'AND detectedAt > ago(24 hours)ORDER BY detectedAt DESCvulnerabilidades que requieren atención inmediata
Combine múltiples factores de riesgo:
FROM VulnerabilitySELECT cveId, entity.name, affectedPackage, cvssScore, epssPercentileWHERE ( (severity = 'CRITICAL' AND epssPercentile > 85) OR (activeRansomware = true) OR (epssPercentile > 95))AND state = 'OPEN'FACET cveId, entity.nameSINCE 7 days agoSeguimiento de la exposición y la remediación
Tiempo promedio de exposición a vulnerabilidades
Calcular el tiempo medio de remediación (MTTR):
FROM VulnerabilitySELECT average((resolvedAt - detectedAt) / 86400) as 'Avg Days to Resolve'WHERE state = 'CLOSED'FACET severitySINCE 90 days agoVulnerabilidades abiertas de mayor duración
Encuentre vulnerabilidades que estuvieron abiertas durante periodos prolongados:
FROM VulnerabilitySELECT cveId, entity.name, affectedPackage, detectedAt, (max(timestamp) - detectedAt) / 86400 as 'Days Open'WHERE state = 'OPEN'FACET cveId, entity.nameORDER BY 'Days Open' DESCLIMIT 20SINCE 90 days agoVelocidad de remediación
Realice un seguimiento de la rapidez con la que resuelve las vulnerabilidades:
FROM NrAiIncidentTimelineSELECT count(*) as 'Vulnerabilities Resolved'WHERE event = 'STATUS_CHANGED'AND newState = 'CLOSED'FACET weekOf(timestamp)SINCE 90 days agoTIMESERIES 1 weekvulnerabilidades por grupo de edad
Vulnerabilidades grupales según el tiempo que llevan abiertas:
FROM VulnerabilitySELECT count(*) as 'Count'WHERE state = 'OPEN'FACET cases( WHERE (now() - detectedAt) / 86400 <= 7 as '0-7 days', WHERE (now() - detectedAt) / 86400 <= 30 as '8-30 days', WHERE (now() - detectedAt) / 86400 <= 90 as '31-90 days', WHERE (now() - detectedAt) / 86400 > 90 as '> 90 days')SINCE 180 days agoAnálisis de paquetes y bibliotecas
La biblioteca más vulnerable
Identificar la biblioteca que presenta las mayores vulnerabilidades:
FROM VulnerabilitySELECT count(*) as 'Vulnerability Count'WHERE state = 'OPEN'FACET affectedPackageORDER BY count(*) DESCLIMIT 10SINCE 30 days agobiblioteca que requiere actualizaciones
Encuentre paquetes con correcciones disponibles:
FROM VulnerabilitySELECT affectedPackage, affectedVersion, fixedVersion, count(*) as 'Vulnerable Entities'WHERE state = 'OPEN'AND fixedVersion IS NOT NULLFACET affectedPackage, affectedVersion, fixedVersionORDER BY count(*) DESCLIMIT 20SINCE 7 days agoDetección de vulnerabilidades por origen
Comprenda qué integración está encontrando vulnerabilidades:
FROM VulnerabilitySELECT count(*) as 'Detections'FACET sourceSINCE 30 days agoAnálisis de dependencia Java
Centrar en las vulnerabilidades específicas de Java:
FROM VulnerabilitySELECT count(*) as 'Vulnerabilities'WHERE affectedPackage LIKE '%.jar'OR affectedPackage LIKE '%maven%'FACET affectedPackage, severitySINCE 30 days agoconsulta específica de la entidad
Resumen de vulnerabilidades de la aplicación
Obtenga recuentos de vulnerabilidades para una aplicación específica:
FROM VulnerabilitySELECT count(*) as 'Total', filter(count(*), WHERE severity = 'CRITICAL') as 'Critical', filter(count(*), WHERE severity = 'HIGH') as 'High', filter(count(*), WHERE severity = 'MEDIUM') as 'Medium', filter(count(*), WHERE severity = 'LOW') as 'Low'WHERE entity.name = 'YOUR_APP_NAME'AND state = 'OPEN'SINCE 1 day agoDesglose de vulnerabilidades del host
Analizar vulnerabilidades de los hosts de infraestructura:
FROM VulnerabilitySELECT count(*) as 'Vulnerabilities'WHERE entityType = 'HOST'AND state = 'OPEN'FACET entity.name, severityLIMIT 50SINCE 7 days agoentidad sin escaneos recientes
Identificar entidad que podría no estar reportando datos de vulnerabilidades:
FROM VulnerabilitySELECT entity.name, max(timestamp) as 'Last Scan'FACET entity.nameHAVING max(timestamp) < ago(7 days)SINCE 30 days agoSeguimiento del estado y del flujo de trabajo
Vulnerabilidades ignoradas que requieren revisión
Encuentre vulnerabilidades ignoradas que se acercan a su fecha de revisión:
FROM NrAiIncidentTimelineSELECT incidentId, entity.name, reason, timestamp as 'Ignored At'WHERE event = 'STATUS_CHANGED'AND newState = 'IGNORED'AND timestamp < ago(60 days)FACET incidentId, entity.nameSINCE 90 days agoRegistro de auditoría de cambios de estado
Realizar un seguimiento de quién realiza cambios de estado:
FROM NrAiIncidentTimelineSELECT timestamp, entity.name, previousState, newState, changedBy, reasonWHERE event = 'STATUS_CHANGED'ORDER BY timestamp DESCLIMIT 100SINCE 30 days agotasa de falso positivo
Calcula cuántas vulnerabilidades están marcadas como ignoradas frente a las afectadas:
FROM NrAiIncidentTimelineSELECT filter(count(*), WHERE newState = 'IGNORED') as 'Ignored', filter(count(*), WHERE newState = 'AFFECTED') as 'Affected', percentage(filter(count(*), WHERE newState = 'IGNORED'), count(*)) as 'Ignore Rate %'WHERE event = 'STATUS_CHANGED'SINCE 90 days agoCumplimiento y presentación de reportes
Vulnerabilidades mayores a 30 días (seguimiento de SLA)
Monitorear las vulnerabilidades que exceden su SLA de remediación:
FROM VulnerabilitySELECT count(*) as 'Overdue Vulnerabilities', entity.name, severityWHERE state = 'OPEN'AND detectedAt < ago(30 days)FACET entity.name, severitySINCE 180 days agoVulnerabilidades críticas tiempo de respuesta
Realice un seguimiento de la rapidez con la que se abordan las vulnerabilidades críticas:
FROM VulnerabilitySELECT percentile((resolvedAt - detectedAt) / 86400, 50, 75, 90, 95) as 'Days to Resolve'WHERE severity = 'CRITICAL'AND state = 'CLOSED'SINCE 90 days agovulnerabilidades métricas mensuales
Generar reportes mensuales:
FROM VulnerabilitySELECT count(*) as 'Total Detected', uniqueCount(entity.guid) as 'Affected Entities', filter(count(*), WHERE severity IN ('CRITICAL', 'HIGH')) as 'High Risk'FACET monthOf(detectedAt)SINCE 180 days agoTIMESERIES 1 monthAnálisis avanzado
radio de explosión de vulnerabilidades
Identificar vulnerabilidades que afectan a muchas entidades:
FROM VulnerabilitySELECT cveId, count(entity.guid) as 'Affected Entities', max(cvssScore) as 'CVSS'WHERE state = 'OPEN'FACET cveIdHAVING count(entity.guid) > 5ORDER BY count(entity.guid) DESCLIMIT 20SINCE 30 days agoPuntaje de higiene de seguridad
Calcular un puntaje de seguridad personalizada:
FROM VulnerabilitySELECT 100 - ( filter(count(*), WHERE severity = 'CRITICAL') * 10 + filter(count(*), WHERE severity = 'HIGH') * 5 + filter(count(*), WHERE severity = 'MEDIUM') * 2 + filter(count(*), WHERE severity = 'LOW') * 0.5) as 'Security Score'WHERE state = 'OPEN'FACET entity.nameSINCE 1 day agoTendencias de vulnerabilidades por tipo
Compare las vulnerabilidades de la aplicación con las de la infraestructura:
FROM VulnerabilitySELECT count(*) as 'Vulnerabilities'WHERE state = 'OPEN'FACET entityTypeTIMESERIES AUTOSINCE 30 days agoUsando estas consultas
En el generador de consultas
- Vaya a one.newrelic.com > All capabilities > Query your data
- Copia y pega cualquier consulta de esta página
- Haga clic en Run para ver los resultados.
- Ajuste los rangos de tiempo y los filtros según sea necesario
En los dashboards personalizados
- Crear un nuevo dashboard o editar uno existente
- Agrega un widget y selecciona Query builder
- Pegue la consulta y configure la visualización
- Almacena el widget en tu dashboard
En alertas
- Vaya a Alerts > Create a condition
- Seleccione NRQL query como tipo de condición
- Emplee consultas que devuelvan recuentos o umbrales
- Configurar alerta umbral y canal de notificación
Para obtener más información sobre las alertas, consulte Configurar alertas de vulnerabilidades.
Consejos para personalizar la consulta
Reemplazar marcador de posición
'YOUR_APP_NAME'- Reemplace con el nombre real de su aplicación'YOUR_ENTITY_GUID'- Reemplazar con el GUID de su entidad- Rangos de tiempo (por ejemplo,
SINCE 30 days ago): ajústelos a sus necesidades
Combinar con otros datos
Unir datos de vulnerabilidades con APM o infraestructura métrica:
FROM Vulnerability, TransactionSELECT count(Vulnerability.cveId), average(Transaction.duration)WHERE Vulnerability.entity.guid = Transaction.appIdAND Vulnerability.state = 'OPEN'FACET Vulnerability.entity.nameSINCE 1 day agoExportar resultados
Todos los resultados de la consulta pueden ser:
- Descargado como CSV
- Añadido a los dashboards
- Exportado a través de API
- Compartido con tu equipo