Muy bien, mientras todos se ponen al día, siéntanse libres de ir a la guía y copiar y pegar la configuración del flujo de trabajo si tienen problemas. Voy a pasar al siguiente paso y comenzar a describir lo que vamos a hacer.
Vamos a usar Dependabot. Dependabot es un SCA gratuito para repositorios de GitHub. Hay muchas otras opciones excelentes de SCA disponibles. Incluso lo encontrarás integrado en muchos de los repositorios de artefactos en estos días. Sé que JFrog y Nexus tienen algo similar.
Simplemente verificará tus dependencias directamente en el repositorio de artefactos. Dependabot en GitHub está habilitado por defecto en los repositorios públicos. Pero si haces un fork de un repositorio, no está habilitado por defecto, incluso si es público. También es fácil agregarlo a repositorios privados y es gratuito para ambos. Encuentra bibliotecas con vulnerabilidades, tomará tu archivo de dependencias, ya sea tu archivo Gradle o Maven, archivo Palm, simplemente lo buscará, e incluso intentará desglosar todas las subdependencias que se derivan de las dependencias que has incluido. Y luego revisará cada una de ellas para ver si hay vulnerabilidades conocidas y te lo hará saber.
Y Dependabot es genial. Hay otras herramientas que también hacen esto. Cuando encuentra un problema, te dirá exactamente qué hacer para solucionarlo. Y si puede, incluso creará una solicitud de extracción (PR) para solucionarlo. Y en nuestro caso, esa PR iniciará nuestro flujo de trabajo nuevamente, por lo que pasará por todas las pruebas que tengas, y se asegurará de que se compile correctamente, y todo lo que tienes que hacer para solucionarlo es aceptar la PR. En la práctica, puede tener algunos falsos positivos, aunque todo lo que encuentra realmente es una vulnerabilidad. Puede haber falsos positivos porque podrías incluir una biblioteca gigante que tiene un pequeño error aquí y todas las herramientas que usas, ninguna de ellas realmente toca ese error. Por lo tanto, teóricamente es posible que informe sobre algo que es una vulnerabilidad, pero que realmente no te afecta. Aun así, todos sabemos que es mejor mantenernos al día con estas cosas de manera constante, y es bueno tener algo que nos recuerde, simplemente nos recuerde, hey, hay actualizaciones que deberías revisar, y aquí tienes una forma fácil de solucionarlo.
Muy bien, voy a pasar a solucionarlo. Espero que todos estén al día con nosotros, y vamos a hacerlo. Así que voy a volver a mi código base. Estoy en mi fork de Vuln GraphQL API, y voy a ir a la pestaña de seguridad aquí. Y bajo la pestaña de seguridad, hay varias cosas interesantes, y vamos a usar dos de ellas, pero primero, vamos a hacer las alertas de Dependabot.
Queremos habilitar las alertas de Dependabot para que nos notifiquen cuando una de nuestras dependencias tenga una vulnerabilidad. Haz clic en la pestaña de seguridad, habilita las alertas de Dependabot, y ahora tiene todas estas opciones. Vamos a hacer estas tres primeras. No vamos a hacer esta todavía. Lo haremos más tarde. Solo queremos hacer estas tres. Primero, Dependency Graph permite a GitHub revisar tu archivo de dependencias, sea cual sea, si es un archivo POM o en nuestro caso, un archivo package.json, y procesarlo básicamente, y buscar todas las subdependencias. Queremos eso. Encontrará más cosas. Queremos las alertas de Dependabot para que recibamos alertas cada vez que se encuentren nuevas vulnerabilidades. Es fácil. Luego, las actualizaciones de seguridad de Dependabot. Actualiza fácilmente a dependencias no vulnerables. Esta es la función que realmente emitirá una PR a tu repositorio, y eso es bastante impresionante. Así que lo habilitaremos. Muy bien, y si has habilitado estas tres cosas, pero no te preocupes por esta todavía, si has habilitado estas tres cosas, muy pronto deberías ver un nuevo distintivo junto a tu pestaña de seguridad. Dice, en mi caso, 11, sospecho que todos los demás también tienen 11. Haz clic allí, y verás un distintivo que dice 11 junto a las alertas de Dependabot. Haz clic allí, y verás 11 alertas diferentes. Así que ha descubierto que tenemos un montón de dependencias de NPM que hemos especificado, y son problemáticas. Así que simplemente haz clic en una como ejemplo, esta dependencia tar. Encuentra que tenemos la versión 4.4.13, y recomienda que actualicemos a la 4.4.19 porque hay cinco vulnerabilidades diferentes en ella, y nos muestra cómo hacer este cambio simplemente editando nuestro archivo Yarn, y nos brinda muchos detalles sobre cuál es el problema, creación arbitraria de archivos, anulación y ejecución de código. Bastante malo, no quieres eso en tu utilidad tar.
Comments