{"meta":{"title":"Búsqueda y corrección de la primera vulnerabilidad de dependencia","intro":"Obtenga información sobre cómo proteger las dependencias habilitando Dependabot y sus características en un repositorio de demostración.","product":"Comienza","breadcrumbs":[{"href":"/es/get-started","title":"Comienza"},{"href":"/es/get-started/learning-to-code","title":"Aprender a codificar"},{"href":"/es/get-started/learning-to-code/finding-and-fixing-your-first-dependency-vulnerability","title":"Asegura tus dependencias"}],"documentType":"article"},"body":"# Búsqueda y corrección de la primera vulnerabilidad de dependencia\n\nObtenga información sobre cómo proteger las dependencias habilitando Dependabot y sus características en un repositorio de demostración.\n\nEl 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.\n\nAunque 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.\n\n## Configuración del repositorio de demostración\n\nEmpecemos 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.\n\n1. Vaya al repositorio de [`new2code/dependabot-demo`](https://github.com/new2code/dependabot-demo).\n2. En la parte superior derecha de la página, haga clic en <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-repo-forked\" aria-label=\"repo forked icon\" role=\"img\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z\"></path></svg>**Bifurcar**.\n3. En la página que aparece, haz clic en **Crear bifurcación**.\n\n## Habilitación de las características de seguridad de dependencia\n\nAhora que hemos configurado el proyecto, vamos a configurar Dependabot para buscar y crear correcciones para dependencias no seguras.\n\n1. En la barra de navegación del repositorio, haga clic en **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-shield\" aria-label=\"shield\" role=\"img\"><path d=\"M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"></path></svg> Security and quality**.\n2. En la fila \"Dependabot alerts\", haga clic en **Habilitar Dependabot alerts**.\n3. En la sección \"Dependabot\", junto a \"Dependabot alerts\", haga clic en **Habilitar**.\n4. 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**.\n5. 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**.\n\n## Visualización de las dependencias no seguras\n\nCon Dependabot configurado, vamos a averiguar cuál de nuestras dependencias contiene vulnerabilidades.\n\n1. En la barra de navegación del repositorio, haga clic en **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-shield\" aria-label=\"shield\" role=\"img\"><path d=\"M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"></path></svg> Security and quality**.\n2. Para ver el Dependabot alerts de su repositorio, en el panel de navegación lateral, haga clic en <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-dependabot\" aria-label=\"dependabot icon\" role=\"img\"><path d=\"M5.75 7.5a.75.75 0 0 1 .75.75v1.5a.75.75 0 0 1-1.5 0v-1.5a.75.75 0 0 1 .75-.75Zm5.25.75a.75.75 0 0 0-1.5 0v1.5a.75.75 0 0 0 1.5 0v-1.5Z\"></path><path d=\"M6.25 0h2A.75.75 0 0 1 9 .75V3.5h3.25a2.25 2.25 0 0 1 2.25 2.25V8h.75a.75.75 0 0 1 0 1.5h-.75v2.75a2.25 2.25 0 0 1-2.25 2.25h-8.5a2.25 2.25 0 0 1-2.25-2.25V9.5H.75a.75.75 0 0 1 0-1.5h.75V5.75A2.25 2.25 0 0 1 3.75 3.5H7.5v-2H6.25a.75.75 0 0 1 0-1.5ZM3 5.75v6.5c0 .414.336.75.75.75h8.5a.75.75 0 0 0 .75-.75v-6.5a.75.75 0 0 0-.75-.75h-8.5a.75.75 0 0 0-.75.75Z\"></path></svg>**Dependabot**.\n3. 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**.\n\n## Descripción de una alerta de Dependabot\n\nAhora 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\".\n\n### Resumen de la corrección\n\nDebajo 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.\n\nEn 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 \"<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-dependabot\" aria-label=\"dependabot icon\" role=\"img\"><path d=\"M5.75 7.5a.75.75 0 0 1 .75.75v1.5a.75.75 0 0 1-1.5 0v-1.5a.75.75 0 0 1 .75-.75Zm5.25.75a.75.75 0 0 0-1.5 0v1.5a.75.75 0 0 0 1.5 0v-1.5Z\"></path><path d=\"M6.25 0h2A.75.75 0 0 1 9 .75V3.5h3.25a2.25 2.25 0 0 1 2.25 2.25V8h.75a.75.75 0 0 1 0 1.5h-.75v2.75a2.25 2.25 0 0 1-2.25 2.25h-8.5a2.25 2.25 0 0 1-2.25-2.25V9.5H.75a.75.75 0 0 1 0-1.5h.75V5.75A2.25 2.25 0 0 1 3.75 3.5H7.5v-2H6.25a.75.75 0 0 1 0-1.5ZM3 5.75v6.5c0 .414.336.75.75.75h8.5a.75.75 0 0 0 .75-.75v-6.5a.75.75 0 0 0-.75-.75h-8.5a.75.75 0 0 0-.75.75Z\"></path></svg> Revisar la actualización de seguridad\" vinculada a la solicitud de incorporación de cambios.\n\n![Captura de pantalla de la sección de resumen de l corrección de una alerta de Dependabot.](/assets/images/help/dependabot/dependabot-alert-fix-summary.png)\n\n### Detalles de la vulnerabilidad\n\nDebajo de los detalles de la corrección, Dependabot se proporciona más información sobre la vulnerabilidad, entre las que se incluyen:\n\n* Nombre del paquete vulnerable\n* Las versiones del paquete que contienen la vulnerabilidad\n* Versión del paquete que corrige la vulnerabilidad\n* Detalles sobre el tipo de vulnerabilidad y cómo se puede aprovechar\n\n![Captura de pantalla de la sección de detalles de vulnerabilidad de una alerta de Dependabot.](/assets/images/help/dependabot/dependabot-alert-vulnerability-details.png)\n\nEn 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.\n\n> \\[!TIP] Si no comprende completamente los detalles de la vulnerabilidad, [pida a alguien Copilot Chat](https://github.com/copilot) que los explique.\n\n### Escala de tiempo\n\nPor ú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.\n\n![Captura de pantalla de la cronología de una alerta de Dependabot.](/assets/images/help/dependabot/dependabot-alert-timeline.png)\n\n## Asegurar tus dependencias\n\nPara proteger nuestro proyecto de forma rápida y sencilla, vamos a aplicar la corrección Dependabot creada.\n\n1. En el campo de alerta con el resumen de corrección, haga clic en <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-dependabot\" aria-label=\"dependabot icon\" role=\"img\"><path d=\"M5.75 7.5a.75.75 0 0 1 .75.75v1.5a.75.75 0 0 1-1.5 0v-1.5a.75.75 0 0 1 .75-.75Zm5.25.75a.75.75 0 0 0-1.5 0v1.5a.75.75 0 0 0 1.5 0v-1.5Z\"></path><path d=\"M6.25 0h2A.75.75 0 0 1 9 .75V3.5h3.25a2.25 2.25 0 0 1 2.25 2.25V8h.75a.75.75 0 0 1 0 1.5h-.75v2.75a2.25 2.25 0 0 1-2.25 2.25h-8.5a2.25 2.25 0 0 1-2.25-2.25V9.5H.75a.75.75 0 0 1 0-1.5h.75V5.75A2.25 2.25 0 0 1 3.75 3.5H7.5v-2H6.25a.75.75 0 0 1 0-1.5ZM3 5.75v6.5c0 .414.336.75.75.75h8.5a.75.75 0 0 0 .75-.75v-6.5a.75.75 0 0 0-.75-.75h-8.5a.75.75 0 0 0-.75.75Z\"></path></svg>**Revisar actualización de seguridad**.\n2. En la página de solicitud de incorporación de cambios, haga clic en <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-file-diff\" aria-label=\"file diff icon\" role=\"img\"><path d=\"M1 1.75C1 .784 1.784 0 2.75 0h7.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0 1 13.25 16H2.75A1.75 1.75 0 0 1 1 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h10.5a.25.25 0 0 0 .25-.25V4.664a.25.25 0 0 0-.073-.177l-2.914-2.914a.25.25 0 0 0-.177-.073ZM8 3.25a.75.75 0 0 1 .75.75v1.5h1.5a.75.75 0 0 1 0 1.5h-1.5v1.5a.75.75 0 0 1-1.5 0V7h-1.5a.75.75 0 0 1 0-1.5h1.5V4A.75.75 0 0 1 8 3.25Zm-3 8a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1-.75-.75Z\"></path></svg>**Archivos modificados** para ver Dependabotlos cambios. Después de revisar los cambios, haga clic en <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-comment-discussion\" aria-label=\"comment discussion icon\" role=\"img\"><path d=\"M1.75 1h8.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 10.25 10H7.061l-2.574 2.573A1.458 1.458 0 0 1 2 11.543V10h-.25A1.75 1.75 0 0 1 0 8.25v-5.5C0 1.784.784 1 1.75 1ZM1.5 2.75v5.5c0 .138.112.25.25.25h1a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h3.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25Zm13 2a.25.25 0 0 0-.25-.25h-.5a.75.75 0 0 1 0-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 14.25 12H14v1.543a1.458 1.458 0 0 1-2.487 1.03L9.22 12.28a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l2.22 2.22v-2.19a.75.75 0 0 1 .75-.75h1a.25.25 0 0 0 .25-.25Z\"></path></svg>**Conversación** para volver a la información general de la solicitud de incorporación de cambios.\n3. 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**.\n\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.\n\n## Prevención de vulnerabilidades de dependencia futuras\n\nPara 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.\n\n1. En la barra de navegación del repositorio, haga clic en <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-gear\" aria-label=\"gear icon\" role=\"img\"><path d=\"M8 0a8.2 8.2 0 0 1 .701.031C9.444.095 9.99.645 10.16 1.29l.288 1.107c.018.066.079.158.212.224.231.114.454.243.668.386.123.082.233.09.299.071l1.103-.303c.644-.176 1.392.021 1.82.63.27.385.506.792.704 1.218.315.675.111 1.422-.364 1.891l-.814.806c-.049.048-.098.147-.088.294.016.257.016.515 0 .772-.01.147.038.246.088.294l.814.806c.475.469.679 1.216.364 1.891a7.977 7.977 0 0 1-.704 1.217c-.428.61-1.176.807-1.82.63l-1.102-.302c-.067-.019-.177-.011-.3.071a5.909 5.909 0 0 1-.668.386c-.133.066-.194.158-.211.224l-.29 1.106c-.168.646-.715 1.196-1.458 1.26a8.006 8.006 0 0 1-1.402 0c-.743-.064-1.289-.614-1.458-1.26l-.289-1.106c-.018-.066-.079-.158-.212-.224a5.738 5.738 0 0 1-.668-.386c-.123-.082-.233-.09-.299-.071l-1.103.303c-.644.176-1.392-.021-1.82-.63a8.12 8.12 0 0 1-.704-1.218c-.315-.675-.111-1.422.363-1.891l.815-.806c.05-.048.098-.147.088-.294a6.214 6.214 0 0 1 0-.772c.01-.147-.038-.246-.088-.294l-.815-.806C.635 6.045.431 5.298.746 4.623a7.92 7.92 0 0 1 .704-1.217c.428-.61 1.176-.807 1.82-.63l1.102.302c.067.019.177.011.3-.071.214-.143.437-.272.668-.386.133-.066.194-.158.211-.224l.29-1.106C6.009.645 6.556.095 7.299.03 7.53.01 7.764 0 8 0Zm-.571 1.525c-.036.003-.108.036-.137.146l-.289 1.105c-.147.561-.549.967-.998 1.189-.173.086-.34.183-.5.29-.417.278-.97.423-1.529.27l-1.103-.303c-.109-.03-.175.016-.195.045-.22.312-.412.644-.573.99-.014.031-.021.11.059.19l.815.806c.411.406.562.957.53 1.456a4.709 4.709 0 0 0 0 .582c.032.499-.119 1.05-.53 1.456l-.815.806c-.081.08-.073.159-.059.19.162.346.353.677.573.989.02.03.085.076.195.046l1.102-.303c.56-.153 1.113-.008 1.53.27.161.107.328.204.501.29.447.222.85.629.997 1.189l.289 1.105c.029.109.101.143.137.146a6.6 6.6 0 0 0 1.142 0c.036-.003.108-.036.137-.146l.289-1.105c.147-.561.549-.967.998-1.189.173-.086.34-.183.5-.29.417-.278.97-.423 1.529-.27l1.103.303c.109.029.175-.016.195-.045.22-.313.411-.644.573-.99.014-.031.021-.11-.059-.19l-.815-.806c-.411-.406-.562-.957-.53-1.456a4.709 4.709 0 0 0 0-.582c-.032-.499.119-1.05.53-1.456l.815-.806c.081-.08.073-.159.059-.19a6.464 6.464 0 0 0-.573-.989c-.02-.03-.085-.076-.195-.046l-1.102.303c-.56.153-1.113.008-1.53-.27a4.44 4.44 0 0 0-.501-.29c-.447-.222-.85-.629-.997-1.189l-.289-1.105c-.029-.11-.101-.143-.137-.146a6.6 6.6 0 0 0-1.142 0ZM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM9.5 8a1.5 1.5 0 1 0-3.001.001A1.5 1.5 0 0 0 9.5 8Z\"></path></svg>**Configuración**.\n2. En la sección \"Seguridad\" de la barra lateral, haga clic en <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-codescan\" aria-label=\"codescan icon\" role=\"img\"><path d=\"M8.47 4.97a.75.75 0 0 0 0 1.06L9.94 7.5 8.47 8.97a.75.75 0 1 0 1.06 1.06l2-2a.75.75 0 0 0 0-1.06l-2-2a.75.75 0 0 0-1.06 0ZM6.53 6.03a.75.75 0 0 0-1.06-1.06l-2 2a.75.75 0 0 0 0 1.06l2 2a.75.75 0 1 0 1.06-1.06L5.06 7.5l1.47-1.47Z\"></path><path d=\"M12.246 13.307a7.501 7.501 0 1 1 1.06-1.06l2.474 2.473a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM1.5 7.5a6.002 6.002 0 0 0 3.608 5.504 6.002 6.002 0 0 0 6.486-1.117.748.748 0 0 1 .292-.293A6 6 0 1 0 1.5 7.5Z\"></path></svg>**Advanced Security**.\n3. Junto a \"Dependabot version updates\", haga clic en **Habilitar**.\n\n## Pasos siguientes\n\nAhora 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."}