Security RX stocke les données de vulnérabilité et de mauvaise configuration dans la base de données (NRDB) de New Relic, ce qui les rend interrogeables à l'aide NRQL. Ce guide de référence explique les types d'entités, les attributs et la structure des données que vous pouvez utiliser pour créer des requêtes, des dashboards et des alertes personnalisés.
types d'entités et d'événements
Security RX utilise les types d'entités et d'événements suivants pour stocker les données de sécurité :
Entité SecurityFinding (recommandé)
SECURITY_FINDING est un type d'entité spécialisé qui sert de conteneur générique pour tous les problèmes de sécurité détectés par Security RX. Voici la méthode recommandée pour interroger les données de sécurité dans New Relic.
Important : SecurityFinding est une requête en tant que type d'entité, et non en tant qu'événement traditionnel :
FROM EntitySELECT * WHERE type = 'SECURITY_FINDING'Type de découverte
L'attribut findingType est le champ clé permettant de distinguer la source de données :
findingType = 'VULNERABILITY': Indique une vulnérabilité détectée par des sources telles que des agents APM, des agents d'infrastructure ou des scanners tiers (Snyk, Trivy, FOSSA).findingType = 'MISCONFIGURATION': Indique une constatation de gestion de la posture de sécurité du cloud (CSPM) provenant de Security RX Cloud (par exemple, d'AWS Security Hub, GuardDuty ou Config).
Les autres valeurs de findingType incluent : LIBRARY_VULNERABILITY, INFRASTRUCTURE_VULNERABILITY, APPLICATION_VULNERABILITY, SYSTEM_VULNERABILITY, SECURITY_EVENT, et OTHER.
Champs d'entité principaux
Attribut | Type | Description | Exemple |
|---|---|---|---|
| Chaîne | Identifiant unique au monde pour ce SecurityFinding (CVE spécifique au câble et entité impactée) | "ABC123..." |
| Chaîne | Type d'entité - toujours « SECURITY_FINDING » | "SECURITY_FINDING" |
| Chaîne | Titre des vulnérabilités ou de la mauvaise configuration | "CVE-2024-12345 : Injection SQL dans bibliothèque-name" |
| Chaîne | Identifiant du compte où ce problème a été détecté | "1234567" |
| Chaîne | Type de portée - généralement « ACCOUNT » | "ACCOUNT" |
| horodatage | Lors de la création de cette entité | Horodatage Unix |
| horodatage | Dernière mise à jour de cette entité | Horodatage Unix |
| Array | Liste des étiquettes applicables à l'entité (généralement vide pour SecurityFinding) | [] |
Champs de classification
Attribut | Type | Description | Exemple |
|---|---|---|---|
| Chaîne | Identifiant permettant d'agréger les SecurityFindings (généralement l'identifiant CVE) | "CVE-2024-12345" |
| Chaîne | Type de découverte de niveau supérieur | "VULNERABILITY", "MISCONFIGURATION" |
| Chaîne | Sous-type (langage pour les vulnérabilités APM, INFRA_OS_VULNERABILITY ou INFRA_PACKAGE_VULNERABILITY pour l'infrastructure) | "java", "INFRA_PACKAGE_VULNERABILITY" |
| Chaîne | Source de la découverte | « New Relic », « Snyk », « AWS Security Hub » |
Champs d'état et de gravité
Attribut | Type | Description | Valeurs |
|---|---|---|---|
| Chaîne | Gravité signalée du constat | "CRITICAL", "HIGH", "MEDIUM", "LOW", "UNKNOWN", "INFO" |
| Chaîne | État actuel de la découverte | "AFFECTED", "IGNORED", "NO_LONGER_DETECTED", "UNKNOWN" |
| Booléen | Existe-t-il une solution de remédiation ? | true, false |
| Chaîne | Mise à niveau suggérée par Security RX | "Mise à jour vers la version 2.17.1" |
| Chaîne | Bref texte de correction tiré de la source | "Mettre à jour la bibliothèque vers la version corrigée" |
| Chaîne | URL de la documentation provenant de la source | " https://example.com/security-advisory " |
champs de référence CVE
Pour les résultats de vulnérabilités, l'objet cve contient des informations CVE détaillées :
Attribut | Type | Description |
|---|---|---|
| Chaîne | Identifiant CVE |
| Chaîne | Description du CVE |
| Nombre | score CVSS |
| Chaîne | Chaîne vectorielle CVSS |
| Nombre | Score de probabilité d'exploitation EPSS |
| Nombre | classement percentile EPSS |
| Booléen | Existe-t-il une faille connue ? |
| Chaîne | URL où le CVE a été divulgué |
| horodatage | Lorsque le CVE a été divulgué |
Champs de configuration incorrecte (Résultats du cloud)
En cas de résultats de configuration incorrecte, l'objet misconfiguration contient des informations spécifiques au cloud :
Attribut | Type | Description |
|---|---|---|
| Chaîne | Fournisseur de cloud |
| Chaîne | Titre de la mauvaise configuration |
| Chaîne | Type de résultat brut provenant de la source |
| Chaîne | Type de ressource simplifié (par exemple, « S3 », « EC2 », « RDS ») |
Champs d'entité concernés
L'objet impactedEntity identifie l'entité New Relic concernée :
Attribut | Type | Description |
|---|---|---|
| Chaîne | GUID de l'entité |
| Chaîne | Nom de l'entité |
| Chaîne | Type d'entité (APM-APPLICATION, INFRA-HOST, etc.) |
| Chaîne | ID de compte |
| Chaîne | Type de portée |
Champs d'horodatage
Attribut | Type | Description |
|---|---|---|
| horodatage | Lorsque cette découverte a été initialement détectée |
| horodatage | Date de la dernière mise à jour de cette découverte |
| horodatage | La découverte était active pour la dernière fois lorsque la situation s'est améliorée. |
Interface utilisateur et champs internes
Attribut | Type | Description |
|---|---|---|
| Chaîne | Lien vers la page de détails dans l'interface utilisateur de Security RX |
| Chaîne | Lien vers la vue entité dans l'interface utilisateur Security RX |
| Chaîne | Champ d'état interne |
| Booléen | Indicateur actif interne (utilisé dans les requêtes cloud) |
| Chaîne | Champ interne (sera masqué en production) |
| Chaîne | Champ interne (sera masqué en production) |
| éventail d'objets | Métadonnées supplémentaires avec paires valeur clé (utilisées pour les identifiants de compte cloud, etc.) |
Conseil
Les champs marqués comme « internes » sont actuellement visibles dans NRDB, mais pourraient être masqués lors du lancement final. Le champ internalState.active est couramment utilisé dans les requêtes de mauvaise configuration cloud pour filtrer les résultats actifs.
exemples de requêtes pour les vulnérabilités
Nombre de vulnérabilités critiques actives par entité :
FROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING' AND status = 'AFFECTED' AND severity = 'CRITICAL'FACET impactedEntity.nameTrouver l'entité affectée par une CVE spécifique :
FROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING' AND status = 'AFFECTED' AND cve.id = 'CVE-2024-23944'FACET impactedEntity.nameIdentifiez les CVE associées à des campagnes de ransomware actives :
FROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING' AND cve.exploitKnown IS trueFACET impactedEntity.name, cve.idIdentifier les vulnérabilités susceptibles d'être exploitées (score EPSS élevé) :
FROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING' AND cve.epssPercentile > '0.95'FACET cve.idTrouvez les sources de vos recherches :
FROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING'FACET sourceentité à seuil de vulnérabilités élevées :
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)Exemples de requêtes pour les mauvaises configurations cloud
Nombre de configurations erronées uniques par statut :
FROM EntitySELECT uniqueCount(misconfiguration.issueTitle)WHERE type = 'SECURITY_FINDING' AND findingType = 'MISCONFIGURATION'FACET statusLes 10 types de mauvaises configurations les plus courants :
FROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING' AND findingType = 'MISCONFIGURATION' AND internalState.active = trueFACET misconfiguration.issueTitleLIMIT 10Trouvez les comptes AWS les plus risqués :
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 10Nombre d'erreurs de configuration par type de ressource :
FROM EntitySELECT uniqueCount(misconfiguration.issueTitle)WHERE type = 'SECURITY_FINDING' AND findingType = 'MISCONFIGURATION' AND internalState.active = trueFACET misconfiguration.normalizedResourceTypeTrouver des ressources essentielles et accessibles au public :
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 agoVulnérabilités (événement personnalisé)
Stocke des métadonnées détaillées sur les vulnérabilités, notamment les informations CVE, les scores de gravité et les recommandations de correction.
Utilisation principale : Analyse approfondie des détails et métadonnées des vulnérabilités
Attribut clé :
Attribut | Type | Description | Exemple |
|---|---|---|---|
| Chaîne | Identifiant CVE | "CVE-2024-12345" |
| Chaîne | gravité basée sur le CVSS | "CRITICAL", "HIGH", "MEDIUM", "LOW" |
| Nombre | score numérique CVSS | 9.8 |
| Nombre | Probabilité d'exploitation de l'EPSS | 0,95 |
| Nombre | classement percentile EPSS | 98,5 |
| Booléen | Utilisé dans des campagnes de ransomware connues |
|
| Chaîne | Nom de la bibliothèque/package vulnérable | "log4j-core" |
| Chaîne | Version du package vulnérable | "2.14.0" |
| Chaîne | Version corrigée | "2.17.1" |
| Chaîne | GUID de l'entité concernée | "ABC123..." |
| Chaîne | Source de détection | "APM_AGENT", "SNYK", "AWS_SECURITY_HUB" |
Exemple de requête :
FROM VulnerabilitySELECT count(*)WHERE severity = 'CRITICAL'AND activeRansomware = trueFACET affectedPackageAttribut commun à tous les types d'événements
Ces attributs apparaissent dans plusieurs types d'événements :
Identification de l'entité
Attribut | Description |
|---|---|
| Identifiant unique de l'entité concernée |
| Nom de l'entité lisible par l'humain |
| Type d'entité (APPLICATION, HOST, SERVICE) |
| Identifiant de compte New Relic |
horodatage
Attribut | Description |
|---|---|
| Lorsque l'événement s'est produit |
| Lorsque les vulnérabilités ont été détectées pour la première fois |
| Dernière mise à jour horodatage |
| Lorsque les vulnérabilités ont été marquées comme résolues |
Suivi de la source
Attribut | Description |
|---|---|
| Source de données (APM_AGENT, INFRASTRUCTURE, SNYK, etc.) |
| ID unique du système source |
| intégration qui a fourni des données |
relations de données
Comprendre les relations entre les types de données :
SecurityFinding Entity (type = 'SECURITY_FINDING') ↓ contains ├─ findingType (VULNERABILITY or MISCONFIGURATION) ├─ cve (CVE details for vulnerabilities) ├─ misconfiguration (Cloud security details) └─ impactedEntity (Affected New Relic entity)Modèles de requêtes
Pour les modèles de requête utilisant l'entité SecurityFinding, consultez les sections d'exemples de requête ci-dessus.
Types et formats d'attributs
Valeurs de gravité
CRITICAL - CVSS 9.0-10.0HIGH - CVSS 7.0-8.9MEDIUM - CVSS 4.0-6.9LOW - CVSS 0.1-3.9INFO - CVSS 0.0Valeurs d'état
OPEN - Vulnerability currently activeCLOSED - Vulnerability resolved or fixedAFFECTED - Entity is confirmed affectedIGNORED - Marked as not applicableNO_LONGER_DETECTED - No longer seen in scansValeurs sources
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 APIConseils pour les requêtes
Filtrer par gravité (approche moderne)
Les résultats sont classés par ordre de priorité en fonction de leur gravité :
FROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING' AND severity IN ('CRITICAL', 'HIGH') AND status = 'AFFECTED'FACET impactedEntity.nameFiltrer par type de recherche
Distinguer les vulnérabilités des erreurs de configuration :
-- 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.normalizedResourceTypeFiltrer par type d'entité
Distinguer les vulnérabilités de l'application de celles de l'infrastructure :
-- 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.nameFiltrer par source de détection
Résultats de requête issus d'une intégration spécifique :
FROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING' AND source = 'Snyk'FACET severityFiltrage temporel
Trouver les résultats récemment détectés :
FROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING' AND firstDetected > ago(7 days)FACET cve.id, severityCréation de dashboards personnalisés
Utilisez l'entité SecurityFinding pour créer des dashboards de sécurité complets :
Dashboard exécutif - Indicateurs de sécurité de haut niveau pour tous les types de constatations
FROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING'AND status = 'AFFECTED'FACET severity, findingTypeTendances des vulnérabilités - Suivre la détection des vulnérabilités au fil du temps
FROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING'AND findingType = 'VULNERABILITY'FACET weekOf(firstDetected)SINCE 90 days agoPosture de sécurité du cloud - monitoring des erreurs de configuration cloud
FROM EntitySELECT uniqueCount(misconfiguration.issueTitle)WHERE type = 'SECURITY_FINDING'AND findingType = 'MISCONFIGURATION'FACET misconfiguration.cloudProvider, severityPosture de sécurité de l'entité - Vues de sécurité par entité
FROM EntitySELECT count(*) AS 'Findings'WHERE type = 'SECURITY_FINDING'AND status = 'AFFECTED'FACET impactedEntity.name, severity
Pour plus d'exemples de requêtes, consultez Exemples de requêtes de données de sécurité.
Approches dashboards héritées
Pour assurer la compatibilité ascendante, vous pouvez toujours utiliser l' legacy type d'événement (Vulnerability), mais nous recommandons de migrer vers l'entité SecurityFinding pour les nouveaux dashboards.