Este guia fornece consultas NRQL prontas para uso em cenários comuns de monitoramento e análise de segurança. Copie essas consultas no criador de consultas ou adicione-as ao dashboard personalizado para obter insights mais profundos sobre seus dados de vulnerabilidade.
Para obter informações sobre a estrutura de dados subjacente, consulte a Referência da estrutura de dados de segurança.
Importante
Essas consultas são escritas no esquema de evento Vulnerability real. Observe as seguintes limitações de esquema:
- O evento
Vulnerabilitynão tem o campostateou de ciclo de vida — as consultas não podem filtrar pelo status OPEN/CLOSED. - Não há campo
resolvedAt— as consultas de MTTR e velocidade de remediação que exigem um timestamp resolvido não podem ser reproduzidas a partir deste evento. cvss.scoreeepss.percentilesão armazenados como strings. Usenumeric()para convertê-los antes de comparar ou agregar numericamente.ORDER BY numeric(...)não é suportado. Crie um alias para o cast emSELECTe useLIMITpara recuperar os principais resultados.HAVINGem agregações facetadas não é suportado. UseLIMITpara retornar os resultados top-N em vez disso.
Relatórios executivos
Total de vulnerabilidades abertas por gravidade
Obtenha uma visão geral da sua exposição a vulnerabilidades:
FROM VulnerabilitySELECT count(*) AS 'Total Vulnerabilities'FACET severitySINCE 7 days agoTendências críticas e de alta gravidade
Acompanhe como as vulnerabilidades críticas mudam ao longo do tempo:
FROM VulnerabilitySELECT count(*) AS 'Critical & High Vulnerabilities'WHERE severity IN ('CRITICAL', 'HIGH')TIMESERIES AUTOSINCE 7 days agopor entidade
Identifique qual aplicativo ou host tem o maior número de vulnerabilidades:
FROM VulnerabilitySELECT count(*) AS 'Vulnerability Count'FACET entityLookupValueLIMIT 20SINCE 7 days agodistribuição de vulnerabilidades no portfólio
Compreenda a disseminação 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 %'SINCE 7 days agoPriorização e avaliação de riscos
Vulnerabilidades de alta prioridade
Identificar vulnerabilidades com alta probabilidade de exploração:
FROM VulnerabilitySELECT cve, package, package.version, numeric(cvss.score) AS 'cvssScore', numeric(epss.percentile) AS 'epssPercentile'WHERE numeric(epss.percentile) > 0.9SINCE 30 days agoLIMIT 20Vulnerabilidades de alta explorabilidade
Identifique vulnerabilidades com um exploit conhecido:
FROM VulnerabilitySELECT count(*) AS 'Findings', max(numeric(cvss.score)) AS 'Max CVSS'WHERE exploitKnown = 'true'FACET cve, entityLookupValue, packageSINCE 30 days agoDica
O evento Vulnerability não tem um campo activeRansomware. Esta consulta usa exploitKnown como o indicador disponível mais próximo para descobertas de alto risco. Se esta consulta não retornar resultados, nenhuma descoberta com um exploit conhecido confirmado foi ingerida ainda — a consulta é válida para o esquema e retornará dados assim que tais descobertas aparecerem.
recém-detectadas condições críticas
Acompanhe para identificar novas descobertas críticas:
FROM VulnerabilitySELECT cve, package, package.version, entityLookupValue, firstDetectedWHERE severity = 'CRITICAL'SINCE 30 days ago(que exigem atenção imediata)
Combinar múltiplos fatores de risco:
FROM VulnerabilitySELECT count(*) AS 'Findings', max(numeric(cvss.score)) AS 'Max CVSS', max(numeric(epss.percentile)) AS 'Max EPSS'WHERE (severity = 'CRITICAL' AND numeric(epss.percentile) > 0.85) OR exploitKnown = 'true' OR numeric(epss.percentile) > 0.95FACET cve, entityLookupValue, packageSINCE 30 days agoMonitoramento de exposição e remediação
Cuidado
O evento Vulnerability não inclui um campo resolvedAt ou um campo de ciclo de vida state (OPEN/CLOSED). As consultas para tempo médio de remediação (MTTR), velocidade de remediação e tempo de resposta a vulnerabilidades críticas não podem ser computadas a partir deste evento conforme ingerido atualmente. Para rastrear métricas de remediação, use uma fonte de dados separada, como dados de rastreamento de problemas ou de ticket.
Caçambas abertas de funcionamento mais longo
Encontre vulnerabilidades que foram detectadas por períodos prolongados:
FROM VulnerabilitySELECT min(firstDetected) AS 'First Detected', count(*) AS 'Occurrences'FACET cve, entityLookupValue, packageLIMIT 20SINCE 90 days agovulnerabilidades por faixa etária
Agrupar vulnerabilidades por período de detecção:
FROM VulnerabilitySELECT count(*) AS 'Vulnerabilities'TIMESERIES 1 weekSINCE 180 days agoAnálise de pacotes e bibliotecas
Biblioteca mais vulnerável
Identifique a biblioteca apresentando as maiores vulnerabilidades:
FROM VulnerabilitySELECT count(*) AS 'Vulnerability Count'FACET packageLIMIT 10SINCE 7 days agobiblioteca que precisa de atualizações
Encontre pacotes com correções disponíveis:
FROM VulnerabilitySELECT count(*) AS 'Vulnerable Entities'WHERE remediation.exists = 'true'FACET package, package.versionLIMIT 20SINCE 7 days agoDetecção de vulnerabilidades por fonte
Entenda quais interações estão encontrando vulnerabilidades:
FROM VulnerabilitySELECT count(*) AS 'Detections'FACET sourceSINCE 30 days agoAnálise de Java
Foco nas vulnerabilidades específicas do Java:
FROM VulnerabilitySELECT count(*) AS 'Vulnerabilities'WHERE package LIKE '%.jar' OR package LIKE '%maven%' OR package.language = 'java'FACET package, severitySINCE 30 days agoLIMIT 20consultoria específica da entidade
Resumo das vulnerabilidades do aplicativo
Obtenha a contagem de vulnerabilidades para um aplicativo específico:
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 entityLookupValue = 'YOUR_ENTITY_NAME'SINCE 7 days agoVulnerabilidades discriminadas por tipo de entidade
Analise vulnerabilidades em diferentes tipos de entidade:
FROM VulnerabilitySELECT count(*) AS 'Vulnerabilities'FACET entityLookupValue, severity, entityTypeLIMIT 20SINCE 7 days agoentidade sem exames recentes
Identifique a entidade que pode não estar reportando dados de vulnerabilidades:
FROM VulnerabilitySELECT max(timestamp) AS 'Last Scan'FACET entityLookupValueSINCE 30 days agoLIMIT 20Conformidade e relatórios
vulneráveis com mais de 30 dias (rastreamento de SLA)
Monitore as vulnerabilidades que excedem seu SLA de correção:
FROM VulnerabilitySELECT count(*) AS 'Overdue Vulnerabilities'FACET entityLookupValue, severitySINCE 180 days agoUNTIL 30 days agoLIMIT 20Vulnerabilidades métricas mensais
Gerar relatórios mensais:
FROM VulnerabilitySELECT count(*) AS 'Total Detected', uniqueCount(entityGuid) AS 'Affected Entities', filter(count(*), WHERE severity IN ('CRITICAL', 'HIGH')) AS 'High Risk'FACET monthOf(firstDetected)SINCE 180 days agoTIMESERIES 1 monthAnálise avançada
raio de explosão
Identifique vulnerabilidades que afetam muitas entidades:
FROM VulnerabilitySELECT count(entityGuid) AS 'Affected Entities', max(numeric(cvss.score)) AS 'CVSS'FACET cveLIMIT 20SINCE 30 days agoÍndice de higiene de segurança
Calcule uma pontuação de segurança 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'FACET entityLookupValueSINCE 7 days agoLIMIT 20tendências de ofertas por tipo
Compare vulnerabilidades de aplicativo vs infraestrutura:
FROM VulnerabilitySELECT count(*) AS 'Vulnerabilities'FACET entityTypeTIMESERIES AUTOSINCE 30 days agoDescobertas de segurança baseadas em entidade
Consulte os dados de vulnerabilidades de estado atual usando o tipo de evento Entity. Essa abordagem é mais adequada para perguntas centradas na entidade do que para tendências de séries temporais:
FROM EntitySELECT count(*)WHERE type = 'SECURITY_FINDING' AND cve.id IS NOT NULLFACET cve.id, severitySINCE 7 days agoDica
Adicionar AND cve.id IS NOT NULL filtra descobertas de configuração incorreta e do tipo política que não têm CVE mapeado, que de outra forma dominariam os resultados da faceta. Esta consulta usa o tipo de evento Entity (pesquisa de entidade NerdGraph) em vez do tipo de evento Vulnerability — ela reflete o estado atual da entidade em vez de um fluxo de eventos, portanto, não é adequada para tendências de TIMESERIES.
Utilizando essas consultas
No criador de consulta
- Acesse one.newrelic.com > All capabilities > Query your data
- Copie e cole qualquer consulta desta página.
- Clique em Run para ver os resultados.
- Ajuste os intervalos de tempo e os filtros conforme necessário.
No dashboards personalizados
- Crie um novo dashboard ou edite um existente.
- Adicione um widget e selecione Query builder
- Cole a consulta e configure a visualização.
- Salve o widget no seu dashboard
Em alertas
- Acesse Alerts > Create a condition
- Selecione NRQL query como tipo de condição.
- Use consultas que retornem contagens ou limites
- Configurar limite de alerta e canal de notificação
Para obter mais informações sobre alertas, consulte Configurar alertas de vulnerabilidades.
Dicas para personalizar a consulta
Substituir reservado
'YOUR_ENTITY_NAME'- Substitua pelo nome real da sua entidade do atributoentityLookupValue- Intervalos de tempo (ex.:
SINCE 30 days ago) - Ajuste conforme necessário.
Combine com outros dados
O NRQL não suporta JOINs entre eventos. Para correlacionar dados de vulnerabilidades com métricas de APM ou infraestrutura, use consultas separadas e combine os resultados em um dashboard. Por exemplo:
-- Vulnerability dataFROM VulnerabilitySELECT count(*) AS 'Vulnerabilities'FACET entityLookupValueSINCE 1 day ago-- APM transaction data (run as a separate query)FROM TransactionSELECT average(duration) AS 'Avg Response Time'FACET appNameSINCE 1 day agoExportar resultados
Todos os resultados da consulta podem ser:
- Baixado como CSV
- Adicionado ao dashboard
- Exportado via API
- Compartilhado com sua equipe