Skip to main content
Frecuentemente publicamos actualizaciones de nuestra documentación. Es posible que la traducción de esta página esté en curso. Para conocer la información más actual, visita la documentación en inglés. Si existe un problema con las traducciones en esta página, por favor infórmanos.

Solucionar problemas en la detección de dependencias vulnerables

Si la información de la dependencia que reportó GitHub no es lo que esperabas, hay varios puntos a considerar y varias cosas que puedes revisar.

Los resultados de la detección de dependencias que reporta GitHub pueden ser diferentes a aquellos que devuelven otras herramientas. Esto está justificado y es útil el entender cómo GitHub determina las dependencias para tu proyecto.

¿Por qué parece que faltan algunas dependencias?

GitHub genera y muestra los datos de las dependencias de forma diferente a otras herramientas. En consecuencia, si has estado utilizando otra herramienta para identificar dependencias, muy probablemente encuentres resultados diferentes. Considera lo sigueinte:

  • GitHub Advisory Database is one of the data sources that GitHub uses to identify vulnerable dependencies and malware. It's a free, curated database of security advisories for common package ecosystems on GitHub. Esta incluye tanto los datos reportados directamente a GitHub desde GitHub Security Advisories, así como las fuentes oficiales y las comunitarias. GitHub revisa y organiza estos datos para garantizar que la información falsa o inprocesable no se comparta con la comunidad de desarrollo. For more information, see "Browsing security advisories in the GitHub Advisory Database."

  • La gráfica de dependencias analiza todos los archivos de manifiesto de paquetes conocidos en un repositorio de usuario. Por ejemplo, para npm analizará el archivo package-lock.json. Construye una gráfica de todas las dependencias del repositorio y de los dependientes públicos. Esto sucede cuando habilitas la gráfica de dependencias y cuando alguien hace cargas a la rama predeterminada, y esto incluye a las confirmaciones que hacen cambios a un formato de manifiesto compatible. For more information, see "About the dependency graph" and "Troubleshooting the dependency graph."

  • Dependabot escanea cualquier subida a la rama predeterminada que contenga un archivo de manifiesto. When a new advisory is added, it scans all existing repositories and generates an alert for each repository that is affected. Las alertas del dependabot are aggregated at the repository level, rather than creating one alert per advisory. Para obtener más información, consulta la sección "Acerca de las Las alertas del dependabot".

  • Actualizaciones de seguridad del dependabot se activa cuando recibes una alerta sobre una dependencia vulnerable en tu repositorio. Cuando sea posible, el Dependabot creará una solicitud de cambios en tu repositorio para actualizar la dependencia vulnerable a la versión segura mínima posible que se requiere para evitar la vulnerabilidad. Para obtener más información, consulta las secciones "Acerca de las Actualizaciones de seguridad del dependabot" y "Solucionar problemas en los errores del Dependabot".

    Dependabot doesn't scan repositories on a schedule, but rather when something changes. For example, a scan is triggered when a new dependency is added (GitHub checks for this on every push), or when a new advisory is added to the database. For more information, see "About Las alertas del dependabot."

Do Las alertas del dependabot only relate to insecure dependencies in manifests and lockfiles?

Las Las alertas del dependabot te asesoran sobre las dependencias que debes actualizar, incluyendo aquellas transitivas en donde la versión se puede determinar desde un manifiesto o lockfile. Las Actualizaciones de seguridad del dependabot solo sugieren un cambio donde el Dependabot pueda "arreglar" la dependencia directamente, es decir, cuando estas son:

  • Dependencias directas declaradas explícitamente en un manifiesto o lockfile
  • Dependencias transitorias declaradas en un archivo de bloqueo

Verifica; ¿Acaso no se especifica la vulnerabilidad no detectada para un componente en el manifiesto o lockfile del repositorio?

Why don't I get Las alertas del dependabot for some ecosystems?

Las alertas del dependabot are supported for a set of ecosystems where we can provide high-quality, actionable data. Curated advisories in the GitHub Advisory Database, the dependency graph, Dependabot security updates, and Las alertas del dependabot are provided for several ecosystems, including Java’s Maven, JavaScript’s npm and Yarn, .NET’s NuGet, Python’s pip, Ruby's RubyGems, and PHP’s Composer. Seguiremos agregando soporte para más ecosistemas a la larga. Para obtener una vista general de los ecosistemas de paquete que soportamos, consulta la sección "Acerca del gráfico de dependencias".

It's worth noting that security advisories may exist for other ecosystems. The information in an unreviewed security advisory is provided by the maintainers of a particular repository. This data is not curated by GitHub. For more information, see "Browsing security advisories in the GitHub Advisory Database."

Verifica: ¿Acaso la vulnerabilidad que no se detectó aplica a algún ecosistema no compatible?

¿Acaso el Dependabot genera alertas para vulnerabilidades que se han conocido por muchos años?

The GitHub Advisory Database was launched in November 2019, and initially back-filled to include advisories for security risks in the supported ecosystems, starting from 2017. Cuando agregas CVE a la base de datos, priorizamos la organización de CVE nuevos y los CVE que afecten las versiones nuevas del software.

Alguna información sobre las vulnerabilidades antiguas se encuentra disponible, especialmente en donde estos CVE se diseminan específicamente, sin embargo, algunas vulnerabilidades no se incluyen en la GitHub Advisory Database. Si hay una vulnerabilidad antigua específica la cual necesites incluir en la base de datos, contacta a Soporte de GitHub.

Verifica: ¿Acaso la vulnerabilidad no detectada tiene una fecha depublicación más antigua de 2017 en la Base de Datos de Vulnerabilidades Nacional?

Por qué la GitHub Advisory Database utiliza un subconjunto de datos de vulnerabilidades publicados?

Algunas herramientas de terceros utilizan datos de CVE sin organizar y no las verificó ni filtró un humano. Esto significa que los CVE con errores de etiquetado o de severidad, o con cualquier problema de calidad, causarán alertas más frecuentes, ruidosas y menos útiles.

Ya que Dependabot utiliza datos organizado en la GitHub Advisory Database, la cantidad de alertas podría ser menor, pero las alertas que sí recibas serán exactas y relevantes.

Does each insecure dependency generate a separate alert?

Cuando una dependencia tiene vulnerabilidades múltiples, se genera una alerta para cada una de ellas a nivel de la asesoría más el manifiesto.

Captura de pantalla de la pestaña de Las alertas del dependabot que muestra dos alertas del mismo paquete con diferentes manifiestos.

Las Las alertas del dependabot tradicionales se agruparon en una sola alerta agregada con todas las vulnerabilidades de la misma dependencia. Si navegas a un enlace a una alerta tradicional del Dependabot, se te redirigirá a la pestaña de Las alertas del dependabot filtrada para mostrar vulnerabilidades de ese paquete y manifiesto dependientes.

Captura de pantalla de la pestaña de Las alertas del dependabot que muestra las alertas filtradas cuando se navega desde una alerta tradicional del Dependabot.

El conteo de Las alertas del dependabot en GitHub muestra el total de la cantidad de alertas, el cual es el número de vulnerabilidades y no la cantidad de dependencias.

Verifica: Si hay alguna discrepancia en los totales que ves, verifica que no estés comparando números de alerta con números de dependencia. También, verifica que estés viendo todas las alertas y no solo un subconjunto de alertas filtradas.

Can Dependabot ignore specific dependencies?

You can configure Dependabot to ignore specific dependencies in the configuration file, which will prevent security and version updates for those dependencies. If you only wish to use security updates, you will need to override the default behavior with a configuration file. For more information, see "Overriding the default behavior with a configuration file" to prevent version updates from being activated. For information about ignoring dependencies, see "ignore."

Leer más