El uso de colecciones de código escritas previamente en el proyecto, denominadas bibliotecas o paquetes, es habitual. Estos módulos de código te ahorran muchísimo tiempo, lo que te permite centrarte en los nuevos aspectos creativos del trabajo en lugar de codificar componentes reutilizables de gran tamaño desde cero. Cuando se agregan al proyecto, se denominan dependencias, ya que el trabajo depende del código que contienen.
Aunque el uso de dependencias es perfectamente normal, las dependencias pueden contener vulnerabilidades de código, lo que a su vez haría que el proyecto no fuera seguro. Afortunadamente, herramientas como Dependabot pueden encontrar vulnerabilidades de dependencia, generar solicitudes de incorporación de cambios para corregirlas e incluso evitar que se produzcan en el futuro. En este tutorial, aprenderá a habilitar y usar Dependabot y sus características para proteger las dependencias.
Configuración del repositorio de demostración
Empecemos bifurcando un proyecto de demostración con algunas vulnerabilidades de dependencia. Dado que no implementaremos el proyecto, no hay ningún riesgo de seguridad en este ejercicio.
- Vaya al repositorio de
new2code/dependabot-demo. - En la parte superior derecha de la página, haga clic en Bifurcar.
- En la página que aparece, haz clic en Crear bifurcación.
Habilitación de las características de seguridad de dependencia
Ahora que hemos configurado el proyecto, vamos a configurar Dependabot para buscar y crear correcciones para dependencias no seguras.
- En la barra de navegación del repositorio, haga clic en Security and quality.
- En la fila "Dependabot alerts", haga clic en Habilitar Dependabot alerts.
- En la sección "Dependabot", junto a "Dependabot alerts", haga clic en Habilitar.
- En el elemento emergente que aparece, lee la instrucción sobre cómo habilitar el gráfico de dependencias y, a continuación, haz clic en Habilitar.
- Para permitir Dependabot abrir automáticamente las solicitudes de incorporación de cambios que corrigen vulnerabilidades de dependencia, junto a "Dependabot security updates", haga clic en Habilitar.
Visualización de las dependencias no seguras
Con Dependabot configurado, vamos a averiguar cuál de nuestras dependencias contiene vulnerabilidades.
- En la barra de navegación del repositorio, haga clic en Security and quality.
- Para ver el Dependabot alerts de su repositorio, en el panel de navegación lateral, haga clic en Dependabot.
- Para ver información detallada sobre una alerta, haz clic en el título de la alerta. Para este ejercicio, haz clic en Inyección de comandos en analizador de fórmulas activas.
Descripción de una alerta de Dependabot
Ahora que Dependabot ha identificado algunas vulnerabilidades en nuestras dependencias, vamos a desglosar la información proporcionada en la alerta "Inyección de comandos en el analizador de fórmulas activas".
Resumen de la corrección
Debajo del título de la alerta, puedes ver un breve resumen de la corrección de esta vulnerabilidad, incluido el número de alertas que cerrará y la ubicación de la vulnerabilidad. En nuestro caso, la alerta nos indica que la actualización del paquete a la hot-formula-parser versión 3.0.1 corregirá una Dependabot alerta identificada en nuestro javascript/package-lock.json archivo.
En esta sección también se realiza un seguimiento Dependabotdel progreso de la creación de una solicitud de incorporación de cambios para corregir la vulnerabilidad. Una vez que haya una corrección disponible, verá un botón con la etiqueta " Revisar la actualización de seguridad" vinculada a la solicitud de incorporación de cambios.

Detalles de la vulnerabilidad
Debajo de los detalles de la corrección, Dependabot se proporciona más información sobre la vulnerabilidad, entre las que se incluyen:
- Nombre del paquete vulnerable
- Las versiones del paquete que contienen la vulnerabilidad
- Versión del paquete que corrige la vulnerabilidad
- Detalles sobre el tipo de vulnerabilidad y cómo se puede aprovechar

En esta alerta, podemos ver que la función parse del paquete hot-formula-parser no comprueba correctamente que la entrada del usuario es segura antes de ejecutarla, lo que permite a los atacantes ejecutar comandos malintencionados.
Sugerencia
Si no comprende completamente los detalles de la vulnerabilidad, pida a alguien chat de Copilot que los explique.
Escala de tiempo
Por último, puedes ver la escala de tiempo de la alerta en la parte inferior de la página. Nuestra escala de tiempo contiene actualmente la marca de tiempo cuando Dependabot se abre la alerta y se actualizará automáticamente cuando se corrija la vulnerabilidad.

Asegurar tus dependencias
Para proteger nuestro proyecto de forma rápida y sencilla, vamos a aplicar la corrección Dependabot creada.
-
En el campo de alerta con el resumen de corrección, haga clic en Revisar actualización de seguridad.
-
En la página de solicitud de incorporación de cambios, haga clic en Archivos modificados para ver Dependabotlos cambios. Después de revisar los cambios, haga clic en Conversación para volver a la información general de la solicitud de incorporación de cambios.
-
Para aplicar la corrección, en la parte inferior de la página, haga clic en Combinar solicitud de incorporación de cambios y, a continuación, haga clic en Confirmar combinación.
Una vez que se fusiona la solicitud de incorporación de cambios, la alerta vinculada Dependabot se cerrará automáticamente y se agregará el tiempo de corrección al cronograma.
Prevención de vulnerabilidades de dependencia futuras
Para evitar avanzar con dependencias no seguras, permitamos que Dependabot abra automáticamente pull requests que actualicen tus dependencias a medida que se publiquen nuevas versiones.
- En la barra de navegación del repositorio, haga clic en Configuración.
- En la sección "Seguridad" de la barra lateral, haga clic en Advanced Security.
- Junto a "Dependabot version updates", haga clic en Habilitar.
Pasos siguientes
Ahora que ha probado Dependabot y sus características en un repositorio de demostración, habilitelos en sus propios proyectos para encontrar, corregir y evitar fácilmente vulnerabilidades de dependencia.