Ce guide fournit des requêtes NRQL prêtes à l'emploi pour les scénarios courants monitoring et d'analyse de la sécurité. Copiez ces requêtes dans le générateur de requêtes ou ajoutez-les aux dashboards personnalisés pour obtenir des informations plus détaillées sur vos données de vulnérabilités.
Pour plus d'informations sur la structure de données sous-jacente, consultez la référence de la structure de données de sécurité.
Rapports exécutifs
Nombre total de vulnérabilités ouvertes par niveau de gravité
Obtenez une vue d'ensemble de votre exposition aux vulnérabilités :
FROM VulnerabilitySELECT count(*) as 'Total Vulnerabilities'WHERE state = 'OPEN'FACET severitySINCE 1 day agoTendances critiques et de haute gravité
Suivre l'évolution des vulnérabilités critiques au fil du temps :
FROM VulnerabilitySELECT count(*) as 'Critical & High Vulnerabilities'WHERE severity IN ('CRITICAL', 'HIGH')AND state = 'OPEN'TIMESERIES AUTOSINCE 30 days agovulnérabilités par entité
Identifiez les applications ou les hôtes présentant le plus de vulnérabilités :
FROM VulnerabilitySELECT count(*) as 'Vulnerability Count'WHERE state = 'OPEN'FACET entity.nameLIMIT 20SINCE 1 day agoRépartition des vulnérabilités au sein du portefeuille
Comprendre la propagation des vulnérabilités :
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 agoPriorisation et évaluation des risques
Vulnérabilités hautement prioritaires
Identifier les vulnérabilités présentant une forte probabilité d'exploitation :
FROM VulnerabilitySELECT cveId, affectedPackage, affectedVersion, cvssScore, epssPercentileWHERE epssPercentile > 90AND state = 'OPEN'ORDER BY epssPercentile DESCLIMIT 50SINCE 7 days agoVulnérabilités actives des ransomwares
Identifier les vulnérabilités exploitées dans les campagnes de ransomware :
FROM VulnerabilitySELECT cveId, affectedPackage, cvssScore, entity.nameWHERE activeRansomware = trueAND state = 'OPEN'FACET cveId, entity.nameSINCE 30 days agoNouvelles vulnérabilités critiques détectées
observateur des nouvelles découvertes critiques :
FROM VulnerabilitySELECT cveId, affectedPackage, affectedVersion, entity.name, detectedAtWHERE severity = 'CRITICAL'AND state = 'OPEN'AND detectedAt > ago(24 hours)ORDER BY detectedAt DESCvulnérabilités nécessitant une attention immédiate
Combiner plusieurs facteurs de risque :
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 agoSuivi de l'exposition et des mesures correctives
Temps d'exposition moyen aux vulnérabilités
Calculer le temps moyen de réparation (MTTR) :
FROM VulnerabilitySELECT average((resolvedAt - detectedAt) / 86400) as 'Avg Days to Resolve'WHERE state = 'CLOSED'FACET severitySINCE 90 days agoLes vulnérabilités ouvertes les plus anciennes
Identifiez les vulnérabilités qui sont restées ouvertes pendant de longues périodes :
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 agovitesse de remédiation
Suivez la rapidité avec laquelle vous résolvez les vulnérabilités :
FROM NrAiIncidentTimelineSELECT count(*) as 'Vulnerabilities Resolved'WHERE event = 'STATUS_CHANGED'AND newState = 'CLOSED'FACET weekOf(timestamp)SINCE 90 days agoTIMESERIES 1 weekvulnérabilités par tranche d'âge
Classer les vulnérabilités par groupe en fonction de leur durée d'ouverture :
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 agoanalyse de packages et de bibliothèques
Bibliothèque la plus vulnérable
Identifier la bibliothèque présentant le plus de vulnérabilités :
FROM VulnerabilitySELECT count(*) as 'Vulnerability Count'WHERE state = 'OPEN'FACET affectedPackageORDER BY count(*) DESCLIMIT 10SINCE 30 days agobibliothèque nécessitant des mises à niveau
Trouver le package contenant les correctifs 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 agoDétection des vulnérabilités par source
Comprendre quelles intégrations trouvent des vulnérabilités :
FROM VulnerabilitySELECT count(*) as 'Detections'FACET sourceSINCE 30 days agoanalyse des dépendances Java
Concentrez-vous sur les vulnérabilités spécifiques à Java :
FROM VulnerabilitySELECT count(*) as 'Vulnerabilities'WHERE affectedPackage LIKE '%.jar'OR affectedPackage LIKE '%maven%'FACET affectedPackage, severitySINCE 30 days agorequête spécifique à l'entité
Résumé des vulnérabilités de l'application
Obtenir le nombre de vulnérabilités pour une application spécifique :
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 agoRépartition des vulnérabilités de l'hôtel
Analyser les vulnérabilités des hôtes d'infrastructure :
FROM VulnerabilitySELECT count(*) as 'Vulnerabilities'WHERE entityType = 'HOST'AND state = 'OPEN'FACET entity.name, severityLIMIT 50SINCE 7 days agoentité sans scans récents
Identifiez les entités qui pourraient ne pas déclarer de données de vulnérabilité :
FROM VulnerabilitySELECT entity.name, max(timestamp) as 'Last Scan'FACET entity.nameHAVING max(timestamp) < ago(7 days)SINCE 30 days agoSuivi de l'état et workflow
Vulnérabilités ignorées nécessitant un examen
Identifier les vulnérabilités ignorées dont la date de révision approche :
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 agoJournal d'audit des modifications de statut
Suivre les personnes qui modifient le statut :
FROM NrAiIncidentTimelineSELECT timestamp, entity.name, previousState, newState, changedBy, reasonWHERE event = 'STATUS_CHANGED'ORDER BY timestamp DESCLIMIT 100SINCE 30 days agotaux faux positif
Calculez le nombre de vulnérabilités marquées comme ignorées par rapport à celles qui sont affectées :
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 agoConformité et rapports
vulnérabilités datant de plus de 30 jours (suivi SLA)
vulnérabilités du moniteur dépassant votre SLA de remédiation :
FROM VulnerabilitySELECT count(*) as 'Overdue Vulnerabilities', entity.name, severityWHERE state = 'OPEN'AND detectedAt < ago(30 days)FACET entity.name, severitySINCE 180 days agoVulnérabilités critiques temps de réponse
Suivre la rapidité avec laquelle les vulnérabilités critiques sont corrigées :
FROM VulnerabilitySELECT percentile((resolvedAt - detectedAt) / 86400, 50, 75, 90, 95) as 'Days to Resolve'WHERE severity = 'CRITICAL'AND state = 'CLOSED'SINCE 90 days agoVulnérabilités métriques mensuelles
Générer des rapports mensuels :
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 monthAnalyse avancée
vulnérabilités rayon d'explosion
Identifier les vulnérabilités affectant de nombreuses entités :
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 agoscore d'hygiène de sécurité
Calculer un score de sécurité personnalisé :
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 agotendances des vulnérabilités par type
Comparer les vulnérabilités des applications et de l'infrastructure :
FROM VulnerabilitySELECT count(*) as 'Vulnerabilities'WHERE state = 'OPEN'FACET entityTypeTIMESERIES AUTOSINCE 30 days agoEn utilisant ces requêtes
Dans le générateur de requêtes
- Rendez-vous sur one.newrelic.com > All capabilities > Query your data
- Copiez et collez n'importe quelle requête depuis cette page.
- Cliquez sur Run pour afficher les résultats
- Ajustez les plages horaires et les filtres selon les besoins.
Dans les dashboards personnalisés
- Créez un nouveau dashboard ou modifiez-en un existant.
- Ajoutez un widget et sélectionnez Query builder
- Collez la requête et configurez la visualisation.
- Enregistrez le widget sur votre dashboard
Dans les alertes
- Accédez à Alerts > Create a condition
- Sélectionnez NRQL query comme type de condition
- Utiliser une requête qui renvoie des comptes ou un seuil
- Configurer le seuil d'alerte et le canal de notification
Pour plus d'informations sur les alertes, consultez la section Configurer les alertes de vulnérabilités.
Conseils pour personnaliser les requêtes
Remplacer l'espace réservé
'YOUR_APP_NAME'- Remplacez par le nom réel de votre application'YOUR_ENTITY_GUID'- Remplacez par le GUID de votre entité- Plages horaires (ex. :
SINCE 30 days ago) - À adapter selon vos besoins
Combiner avec d'autres données
Joignez les données de vulnérabilités avec des APM ou des métriques d'infrastructure :
FROM Vulnerability, TransactionSELECT count(Vulnerability.cveId), average(Transaction.duration)WHERE Vulnerability.entity.guid = Transaction.appIdAND Vulnerability.state = 'OPEN'FACET Vulnerability.entity.nameSINCE 1 day agoExporter les résultats
Tous les résultats de la requête peuvent être :
- Téléchargé au format CSV
- Ajouté aux dashboards
- Exporté via API
- Partagé avec votre équipe