O Security RX armazena dados de vulnerabilidades e configurações incorretas no banco de dados da New Relic (NRDB), permitindo que sejam consultados usando NRQL. Este guia de referência explica os tipos de entidades, atributos e estrutura de dados que você pode usar para criar consultas, dashboards e alertas personalizados.
Tipos de entidade e evento
O Security RX utiliza os seguintes tipos de entidade e evento para armazenar dados de segurança:
Entidade SecurityFinding (Recomendado)
O SECURITY_FINDING é um tipo de entidade especializada que serve como um contêiner genérico para todos os problemas de segurança detectados pelo Security RX. Esta é a forma recomendada de consultar dados de segurança no New Relic.
Importante: SecurityFinding é consultado como um tipo de entidade, não como um evento tradicional:
FROM EntitySELECT * WHERE type = 'SECURITY_FINDING'Compreendendo o tipo de descoberta
O atributo findingType é o campo chave para distinguir a fonte de dados:
findingType = 'VULNERABILITY': Indica uma descoberta de vulnerabilidades de fontes como agente APM, agente de infraestrutura ou scanners de terceiros (Snyk, Trivy, FOSSA)findingType = 'MISCONFIGURATION': Indica uma descoberta de gerenciamento de postura de segurança cloud (CSPM) do Security RX Cloud (por exemplo, do AWS Security Hub, GuardDuty ou Config)
Outros valores de findingType incluem: LIBRARY_VULNERABILITY, INFRASTRUCTURE_VULNERABILITY, APPLICATION_VULNERABILITY, SYSTEM_VULNERABILITY, SECURITY_EVENT e OTHER.
Campos principais da entidade
Atributo | Tipo | Descrição | Exemplo |
|---|---|---|---|
| Corda | Identificador globalmente exclusivo para este SecurityFinding (CVE específico do destino e entidade impactada) | "ABC123..." |
| Corda | Tipo de entidade - sempre "SECURITY_FINDING" | "SECURITY_FINDING" |
| Corda | Título das vulnerabilidades ou má configuração | "CVE-2024-12345: SQL injeção na biblioteca-name" |
| Corda | ID da conta onde essa descoberta foi detectada. | "1234567" |
| Corda | Tipo de escopo - normalmente "ACCOUNT" | "ACCOUNT" |
| Timestamp | Quando esta entidade foi criada | TimestampUnix |
| Timestamp | Quando esta entidade foi atualizada pela última vez | TimestampUnix |
| Matriz | Lista de tags aplicáveis à entidade (normalmente vazia para SecurityFinding) | [] |
Campos de classificação
Atributo | Tipo | Descrição | Exemplo |
|---|---|---|---|
| Corda | Identificador para agregar SecurityFindings (geralmente um ID CVE) | "CVE-2024-12345" |
| Corda | Tipo de descoberta de nível superior | "VULNERABILITY", "MISCONFIGURATION" |
| Corda | Subtipo (idioma para vulnerabilidades APM, INFRA_OS_VULNERABILITY ou INFRA_PACKAGE_VULNERABILITY para infraestrutura) | "java", "INFRA_PACKAGE_VULNERABILITY" |
| Corda | Fonte da descoberta | "New Relic", "Snyk", "AWS Security Hub" |
Campos de status e gravidade
Atributo | Tipo | Descrição | Valores |
|---|---|---|---|
| Corda | Gravidade relatada da descoberta | "CRITICAL", "HIGH", "MEDIUM", "LOW", "UNKNOWN", "INFO" |
| Corda | Estado atual da descoberta | "AFFECTED", "IGNORED", "NO_LONGER_DETECTED", "UNKNOWN" |
| Boleano | Existe alguma solução? | true, false |
| Corda | Atualização sugerida pela Security RX | "Atualize para a versão 2.17.1" |
| Corda | Breve texto de correção da fonte | "Atualizar biblioteca para a versão corrigida" |
| Corda | URL da documentação da fonte | " https://example.com/security-advisory " |
Campos de referência CVE
Para informações sobre vulnerabilidades, o objeto cve contém informações detalhadas sobre CVEs:
Atributo | Tipo | Descrição |
|---|---|---|
| Corda | Identificador CVE |
| Corda | Descrição da CVE |
| Número | Pontuação CVSS |
| Corda | string vetorial CVSS |
| Número | Pontuação de probabilidade de exploração EPSS |
| Número | Classificação percentual EPSS |
| Boleano | Existe alguma vulnerabilidade conhecida que possa ser explorada? |
| Corda | URL onde a CVE foi divulgada |
| Timestamp | Quando o CVE foi divulgado |
Campos de configuração incorreta (Resultados na nuvem)
Para informações sobre erros de configuração, o objeto misconfiguration contém informações específicas da nuvem:
Atributo | Tipo | Descrição |
|---|---|---|
| Corda | Provedor de nuvem |
| Corda | Título da configuração incorreta |
| Corda | Tipo de resultado bruto da fonte |
| Corda | Tipo de recurso simplificado (ex.: "S3", "EC2", "RDS") |
Campos da entidade afetados
O objeto impactedEntity identifica qual entidade do New Relic é afetada:
Atributo | Tipo | Descrição |
|---|---|---|
| Corda | GUID da entidade |
| Corda | Nome da entidade |
| Corda | Tipo de entidade (APM-APPLICATION, INFRA-HOST, etc.) |
| Corda | ID da conta |
| Corda | Tipo de escopo |
campos de carimbo de data/hora
Atributo | Tipo | Descrição |
|---|---|---|
| Timestamp | Quando a descoberta foi detectada pela primeira vez |
| Timestamp | Quando a descoberta foi atualizada pela última vez |
| Timestamp | Quando a descoberta foi considerada ativa pela última vez |
interface e campos internos
Atributo | Tipo | Descrição |
|---|---|---|
| Corda | Link para a página de detalhes na interface do usuário do Security RX. |
| Corda | Link para a visualização da entidade na interface do usuário do Security RX |
| Corda | Campo de status interno |
| Boleano | Sinalizador interno ativo (usado no cloud Consulta) |
| Corda | Campo interno (ficará oculto em produção) |
| Corda | Campo interno (ficará oculto em produção) |
| matriz de objetos | Adicionalmente, com pares de valores principais (usados para IDs de contas cloud, etc.) |
Dica
Os campos marcados como "internos" estão atualmente visíveis no NRDB, mas podem ficar ocultos após o lançamento final. O campo internalState.active é comumente usado em consultoria de configuração incorreta cloud para filtrar resultados ativos.
exemplos de consulta para vulnerabilidades
Contabilizar vulnerabilidades críticas ativas por entidade:
FROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING' AND status = 'AFFECTED' AND severity = 'CRITICAL'FACET impactedEntity.nameEncontre a entidade afetada por uma CVE específica:
FROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING' AND status = 'AFFECTED' AND cve.id = 'CVE-2024-23944'FACET impactedEntity.nameEncontre vulnerabilidades CVE com campanhas de ransomware ativas:
FROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING' AND cve.exploitKnown IS trueFACET impactedEntity.name, cve.idIdentificar vulnerabilidades provavelmente exploráveis (pontuação EPSS alta):
FROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING' AND cve.epssPercentile > '0.95'FACET cve.idEncontre fontes de informação para suas descobertas:
FROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING'FACET sourceentidade com elevado limite 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)exemplos de consulta para configurações incorretas cloud
Contabilizar configurações incorretas únicas por status:
FROM EntitySELECT uniqueCount(misconfiguration.issueTitle)WHERE type = 'SECURITY_FINDING' AND findingType = 'MISCONFIGURATION'FACET statusOs 10 tipos de erros de configuração mais comuns:
FROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING' AND findingType = 'MISCONFIGURATION' AND internalState.active = trueFACET misconfiguration.issueTitleLIMIT 10Encontre as contas da AWS mais arriscadas:
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 10Contabilizar configurações incorretas por tipo de recurso:
FROM EntitySELECT uniqueCount(misconfiguration.issueTitle)WHERE type = 'SECURITY_FINDING' AND findingType = 'MISCONFIGURATION' AND internalState.active = trueFACET misconfiguration.normalizedResourceTypeEncontre recursos essenciais e de acesso público:
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 legado que armazena descobertas de vulnerabilidades e seu status atual. Este tipo de evento ainda é suportado para compatibilidade com versões anteriores, mas recomendamos o uso de SecurityFinding para novas consultas.
Uso primário: consulta vulnerabilidades que afetam sua entidade
Atributo chave:
Atributo | Tipo | Descrição | Exemplo |
|---|---|---|---|
| Corda | título | "CVE-2024-12345: SQL injeção na biblioteca-name" |
| Corda | classificação de prioridade do computador | "CRITICAL", "HIGH", "MEDIUM", "LOW" |
| Corda | Estado atual de vulnerabilidades | "OPEN", "CLOSED" |
| Boleano | Se o anúncio foi revisado |
|
| Corda | Fonte/condição de detecção | "Security RX - Detecção de Abusos" |
| Corda | entidade GUID afetada por vulnerabilidades | "ABC123..." |
| Corda | Nome da entidade | "my-application" |
| Corda | Tipo de entidade afetada | "APPLICATION", "HOST" |
Exemplo de consulta:
FROM NrAiIncidentSELECT count(*)WHERE conditionName LIKE '%Security RX%'FACET priority, stateVulnerabilidades (evento personalizado)
Armazena metadados detalhados sobre vulnerabilidades, incluindo informações sobre CVEs, pontuações de gravidade e orientações para correção.
Uso principal: Análise detalhada das vulnerabilidades e metadados.
Atributo chave:
Atributo | Tipo | Descrição | Exemplo |
|---|---|---|---|
| Corda | Identificador CVE | "CVE-2024-12345" |
| Corda | Gravidade baseada no CVSS | "CRITICAL", "HIGH", "MEDIUM", "LOW" |
| Número | Pontuação numérica CVSS | 9,8 |
| Número | EPSS explora probabilidade | 0,95 |
| Número | Classificação percentual EPSS | 98,5 |
| Boleano | Utilizado em campanhas de ransomware conhecidas |
|
| Corda | Nome da biblioteca/pacote vulnerável | "log4j-core" |
| Corda | Versão vulnerável do pacote | "2.14.0" |
| Corda | Versão com correção | "2.17.1" |
| Corda | GUID da entidade afetada | "ABC123..." |
| Corda | Fonte de detecção | "APM_AGENT", "SNYK", "AWS_SECURITY_HUB" |
Exemplo de consulta:
FROM VulnerabilitySELECT count(*)WHERE severity = 'CRITICAL'AND activeRansomware = trueFACET affectedPackageNrAiIncidentTimeline
Monitora as mudanças de status e os eventos do ciclo de vida das vulnerabilidades.
Uso principal: Auditar o histórico de vulnerabilidades e acompanhar o progresso da correção.
Atributo chave:
Atributo | Tipo | Descrição | Exemplo |
|---|---|---|---|
| Corda | ID do incidente/vulnerabilidade relacionado | "INC-123" |
| Timestamp | Quando o status mudou | TimestampUnix |
| Corda | Tipo de alteração | "STATUS_CHANGED", "DETECTED", "RESOLVED" |
| Corda | Estado antes da mudança | "AFFECTED" |
| Corda | Estado após a mudança | "IGNORED" |
| Corda | usuário que fez a alteração | |
| Corda | Motivo da alteração de status | "Falso positivo - não está usando o caminho de código vulnerável" |
Exemplo de consulta:
FROM NrAiIncidentTimelineSELECT timestamp, event, previousState, newState, changedByWHERE event = 'STATUS_CHANGED'SINCE 7 days agoAtributo comum a todos os tipos de eventos
Esses atributos aparecem em vários tipos de eventos:
Identificação da entidade
Atributo | Descrição |
|---|---|
| Identificador único da entidade afetada |
| Nome da entidade legível por humanos |
| tipo de entidade (APPLICATION, HOST, SERVICE) |
| ID da conta New Relic |
Carimbo de data/hora
Atributo | Descrição |
|---|---|
| Quando o evento ocorreu |
| Quando foi detectado pela primeira vez |
| Última timestamp |
| Quando (s) foi marcado como resolvido |
Rastreamento de origem
Atributo | Descrição |
|---|---|
| Fonte de dados (APM_AGENT, INFRASTRUCTURE, SNYK, etc.) |
| ID único do sistema de origem |
| integração que forneceu dados |
Relações de dados
Entender como os tipos de dados se relacionam entre si:
Abordagem moderna (recomendada)
SecurityFinding Entity (type = 'SECURITY_FINDING') ↓ contains ├─ findingType (VULNERABILITY or MISCONFIGURATION) ├─ cve (CVE details for vulnerabilities) ├─ misconfiguration (Cloud security details) └─ impactedEntity (Affected New Relic entity)abordagem legada (Compatibilidade com versões anteriores)
Entity (Application/Host) ↓ has manyNrAiIncident (Active vulnerabilities) ↓ referencesVulnerability (CVE details) ↓ has manyNrAiIncidentTimeline (Status history)Padrões de consulta
Dica
Recomendação: Use SecurityFinding entidade consulta (mostrada na seção SecurityFinding acima) para novas implementações. Os padrões abaixo utilizam tipos de eventos legados e são fornecidos apenas para fins de compatibilidade com versões anteriores.
Padrões de consulta modernos
Para padrões modernos de consulta usando a entidade SecurityFinding, consulte as seções de exemplos de consulta acima.
padrões de consulta legados
Esses padrões utilizam os tipos de evento legados:
Unir dados de entidade com vulnerabilidades (legado)
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 janelas de exposição (legado)
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 agoVelocidade de remediação da pista (legado)
FROM NrAiIncidentTimelineSELECT count(*) as 'Vulnerabilities Resolved'WHERE event = 'STATUS_CHANGED'AND newState = 'CLOSED'FACET weekOf(timestamp)SINCE 90 days agoImportante
Para rastrear mudanças de status com a entidade SecurityFinding, monitore as mudanças no campo status ao longo do tempo ou use alertas New Relic para receber notificações quando ocorrerem mudanças de status.
Tipos e formatos de atributos
Valores de gravidade
CRITICAL - CVSS 9.0-10.0HIGH - CVSS 7.0-8.9MEDIUM - CVSS 4.0-6.9LOW - CVSS 0.1-3.9INFO - CVSS 0.0Valores do Estado
OPEN - Vulnerability currently activeCLOSED - Vulnerability resolved or fixedAFFECTED - Entity is confirmed affectedIGNORED - Marked as not applicableNO_LONGER_DETECTED - No longer seen in scansValores de origem
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 APIDicas para fazer consultas
Filtrar por gravidade (abordagem moderna)
Os resultados são priorizados com base na gravidade:
FROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING' AND severity IN ('CRITICAL', 'HIGH') AND status = 'AFFECTED'FACET impactedEntity.nameFiltrar por tipo de busca
Separar vulnerabilidades de configurações incorretas:
-- 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 entidade
Separe o aplicativo das vulnerabilidades de infraestrutura:
-- 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 fonte de detecção
resultados da consulta de integração específica:
FROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING' AND source = 'Snyk'FACET severityFiltragem baseada no tempo
Encontre as descobertas detectadas recentemente:
FROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING' AND firstDetected > ago(7 days)FACET cve.id, severityConstruindo dashboards personalizados
Utilize a entidade SecurityFinding para criar um dashboard de segurança abrangente:
Dashboard executivo - Métricas de segurança de alto nível para todos os tipos de achados.
FROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING'AND status = 'AFFECTED'FACET severity, findingTypetendências de vulnerabilidades - Rastreie a detecção de vulnerabilidades ao longo do tempo
FROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING'AND findingType = 'VULNERABILITY'FACET weekOf(firstDetected)SINCE 90 days agoPostura de segurança na nuvem - Monitore configurações incorretas cloud
FROM EntitySELECT uniqueCount(misconfiguration.issueTitle)WHERE type = 'SECURITY_FINDING'AND findingType = 'MISCONFIGURATION'FACET misconfiguration.cloudProvider, severityPostura de segurança da entidade - Visualizações de segurança por entidade
FROM EntitySELECT count(*) AS 'Findings'WHERE type = 'SECURITY_FINDING'AND status = 'AFFECTED'FACET impactedEntity.name, severity
Para mais exemplos de consulta, veja Exemplos de consulta de dados de segurança.
Abordagens legadas dashboards
Para compatibilidade com versões anteriores, você ainda pode usar os tipos de evento legados (NrAiIncident, Vulnerability, NrAiIncidentTimeline), mas recomendamos migrar para a entidade SecurityFinding para o novo dashboard.