---
title: "Monitoreo de CVE que sabe si llamas al código · SourceAnt"
description: "Avisos de la Base de Datos de Avisos de GitHub, contrastados con el grafo de código, para que un paquete que nunca llamas no se archive junto a uno que ejecutas en cada solicitud."
url: "https://sourceant.ai/es/use-cases/cve-monitoring/"
---

Monitoreo de CVE

# Hay un paquete vulnerable instalado. ¿Algo aquí lo llama?

Todos los escáneres responden a la primera mitad. La segunda es la que decide si merece la pena gastar la tarde de alguien, y una lista de paquetes instalados no puede responderla. SourceAnt ya dispone de un grafo de qué importa y qué llama a qué, así que puede hacerlo.

[Empezar gratis](https://app.sourceant.ai/) [Explorar este caso de uso](https://sourceant.ai/es/use-cases/cve-monitoring/#overview)

## Dos respuestas, y solo una de ellas es urgente

Cada aviso que coincide con algo que instalas recibe una de estas, junto con el motivo.

`reached`

Algo de lo que escribiste importa o llama a este paquete. El aviso trata de código que realmente ejecutas.

Los archivos que lo nombran vuelven con el veredicto, para que puedas ir a mirar en lugar de fiarte de nuestra palabra.

`installed`

Está declarado, y nada en este repositorio lo nombra. Aun así merece la pena parchearlo algún día. No merece la pena despertar a nadie por ello.

Se mantiene en la lista en lugar de ocultarse, porque un escáner que descarta cosas en silencio es un escáner en el que nadie confía dos veces.

Dependabot te dice que el paquete está ahí. No te dice si algo de tu código llega hasta él, y esa es la pregunta que realmente tiene el ingeniero de guardia.

Cómo lo sabe

## El grafo de código ya estaba ahí

SourceAnt indexa qué importa y qué llama a qué. Preguntar a ese índice si algo nombra un paquete convierte una lista de todo lo instalado en la lista más corta de lo que está conectado.

Esto no es un escáner aparte añadido por encima. Es una pregunta más planteada a un grafo que se construyó por otros motivos, y por eso la respuesta llega con los archivos detrás en lugar de una puntuación.

[Cómo se construye el grafo de código](https://sourceant.ai/es/code-graphs)

### Dónde informa de más

Un paquete cuyo nombre es también una palabra común coincidirá con cosas que no tienen nada que ver con él. Por eso el veredicto nunca viaja solo. Los archivos que lo produjeron vienen con él, así que una respuesta errónea te lleva diez segundos refutar en lugar de una tarde de discusión.

## El lockfile, no el manifiesto

Un manifiesto dice qué se pidió. Un lockfile dice qué está instalado. Un aviso trata de lo segundo, así que el lockfile prevalece siempre que existan ambos.

| Ecosistema | Se lee primero | Se recurre a |
| --- | --- | --- |
| npm | package-lock.json | package.json |
| PyPI | poetry.lock | requirements.txt, luego pyproject.toml |

Un manifiesto que no se puede analizar te cuesta un ecosistema de la respuesta, no toda la lectura. Los rangos de versiones se comparan de forma conservadora a propósito, porque un sí erróneo es una alerta que alguien tiene que refutar.

## Qué devuelve por aviso

Suficiente para actuar sin abrir otra pestaña, y suficiente para discrepar sin tener que fiarse de la palabra de nadie.

gravedad y resumen

Tal como los indica la base de datos de avisos, no como los reformulamos nosotros.

versión instalada

Leída de tu lockfile, así que es lo que está instalado y no lo que se solicitó.

rango afectado

El rango que indica el aviso, para que puedas comprobar tú mismo la coincidencia.

primera versión corregida

Adónde ir, cuando hay adónde ir.

declarado en

El archivo que lo incorporó.

directa o transitiva

Algo que elegiste tú, o algo que arrastraron tus elecciones. Solo una de las dos está en tus manos cambiar.

Frescura

## Caducada según un reloj, porque tu repositorio no es lo que ha cambiado

La mayor parte de lo que SourceAnt conserva deja de ser cierto cuando cambia tu código, así que caduca con respecto al código. Una lectura de avisos no funciona así. Deja de ser cierta cuando cambia la base de datos de avisos, lo cual ocurre continuamente mientras tu repositorio permanece completamente quieto.

Por eso una lectura se conserva durante un número determinado de horas en lugar de hasta el siguiente commit, y el reloj lo configuras tú si estás bajo más presión que la mayoría.

## Dos mitades de la misma pregunta

Una pregunta si el código que instalas es seguro. La otra pregunta si el código que instalas es tuyo.

### Esta página

Un paquete que instalaste tiene un aviso publicado en su contra, y tu código llega hasta él.

[

### Nombres de la cadena de suministro

Un paquete que creías tuyo lleva un nombre que cualquiera podría publicar, y tu build podría tomar el suyo.

](https://sourceant.ai/es/use-cases/dependency-confusion)

## Ponga su sistema en el registro

Ejecute el núcleo abierto en su propia infraestructura, o comience en el espacio de trabajo alojado. El grafo es portátil en ambos casos.

[Empezar gratis](https://app.sourceant.ai/) [Cómo funciona Systems](https://sourceant.ai/es/systems)

[Todos los casos de uso](https://sourceant.ai/es/use-cases)
