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 agoVulnerabilidades (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 affectedPackageAtributo 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:
SecurityFinding Entity (type = 'SECURITY_FINDING') ↓ contains ├─ findingType (VULNERABILITY or MISCONFIGURATION) ├─ cve (CVE details for vulnerabilities) ├─ misconfiguration (Cloud security details) └─ impactedEntity (Affected New Relic entity)Padrões de consulta
Para padrões de consulta que utilizam a entidade SecurityFinding, consulte as seções de exemplos de consulta acima.
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 o tipo de evento legado (Vulnerability), mas recomendamos migrar para a entidade SecurityFinding para o novo painel.