Usar Snyk Vulnerability Database para encontrar proyectos para The Big Fix
DeveloperSteve Coochin
30 de marzo de 2022
0 minutos de lecturaComo desarrolladores, todos tenemos una rutina matutina para empezar el día: preparar café, revisar Slack/Discord/correo electrónico y leer las últimas noticias. Una de las cosas que hago como parte de mi rutina diaria es consultar Snyk Vulnerability Database para conocer las vulnerabilidades de código abierto más recientes.
Ha sido especialmente interesante ver los tipos de exploits y vulnerabilidades que aparecen en distintos ecosistemas. Desde mayo de 2021 he estado siguiendo la aparición de vulnerabilidades en bibliotecas de Tensorflow y, al momento de escribir esto, han vuelto a aparecer (¡casi dos páginas!). En los informes recientes también han surgido varias veces vulnerabilidades en ElectronJS, el ecosistema que impulsa Slack, VS Code, Twitch y muchas otras aplicaciones populares.
Aunque Snyk Vulnerability Database simplifica el desarrollo seguro en el día a día, también ayuda a que internet sea más seguro en general. El sprint de vulnerabilidades de un mes de Snyk, The Big Fix, reunió a desarrolladores, profesionales de DevOps y especialistas en seguridad para corregir tantas vulnerabilidades como fuera posible. El sprint culminó con la transmisión en vivo de 24 horas Big Fix-A-Thon. Muchos participantes usaron Snyk Vulnerability Database para encontrar y corregir paquetes maliciosos en diversos proyectos de código abierto.
El evento oficial puede haber terminado, pero la comunidad de The Big Fix sigue tan activa como siempre. Hoy te mostraré cómo encontrar un proyecto con la base de datos de vulnerabilidades de código abierto para que ayudes a proteger a los usuarios y, de paso, consigas una camiseta de edición limitada de #thebigfix.
Cómo empezar con The Big Fix
El primer paso es crear una cuenta gratuita de Snyk. Si todavía no tienes una, ve a la página para empezar y proporciona los datos habituales (no se requiere tarjeta de crédito). Después, visita el sitio web de The Big Fix y haz clic en Regístrate ahora. Por último, ingresa tu nombre y correo electrónico, y ya podrás empezar.
Una vez que te registres, el siguiente paso es encontrar un proyecto. Hay varias formas de hacerlo.
Conecta un repositorio existente
Si ya tienes en mente el repositorio de un proyecto, puedes conectarlo de forma rápida y sencilla. Ve a tu panel de Snyk y haz clic en Agregar proyecto. Si el repositorio que buscas no aparece en el menú rápido, haz clic en Otro para ver una lista completa de opciones de integración.
Selecciona el repositorio que prefieras y sigue los pasos para conectarlo y configurarlo.

Una vez conectado, vuelve a hacer clic en Agregar proyecto y selecciona el repositorio en el que quieras analizar vulnerabilidades de código abierto. Incluso puedes analizar repositorios privados.

Al conectar el repositorio con Snyk, el análisis identificará los paquetes vulnerables en el manifiesto de paquetes conectado. Después, puedes seleccionar esos paquetes para ver las correcciones recomendadas y las posibles medidas de remediación. Snyk también te permite crear un pull request automático con las correcciones recomendadas. Solo recuerda probar la aplicación para verificar que todo funcione como se espera en el proyecto.
Encuentra un proyecto
Si buscas un proyecto en el que puedas ayudar a corregir una vulnerabilidad, puedes usar Snyk Vulnerability Database para buscar proyectos en el paquete o ecosistema que prefieras.
Durante The Big Fix, contribuí a Invoice Ninja, uno de mis proyectos favoritos del ecosistema de código abierto de PHP. Este proyecto ayuda a empresas de todo el mundo con la facturación y la contabilidad, al conectarse con diversas herramientas empresariales de terceros.
Primero, hice un fork del repositorio principal en mi propia cuenta. Luego, siguiendo el método anterior, conecté el repositorio a Snyk.

El análisis identificó algunas vulnerabilidades en el manifiesto del paquete Composer de PHP. Una de ellas se incorporaba mediante DOMPDF 0.6.2, como biblioteca de dependencia.

Al investigar un poco más algunos de los hallazgos, identifiqué varios problemas, entre ellos una ruta vulnerable a secuencias de comandos entre sitios (XSS) en PHP-Font-Lib, una vulnerabilidad de 2014. Seguir su rastro en el proyecto permitió identificar no solo el problema en sí, sino también la corrección necesaria.
Al implementar correcciones, hay algunas cosas que debes tener en cuenta. Lo más importante es asegurarte de que el proyecto siga funcionando en general. Esto es especialmente importante al actualizar bibliotecas y dependencias. Muchas personas dependen de estos proyectos para sus actividades diarias, y ningún proyecto quiere implementar un cambio que lo deje sin funcionar.
Cloné el repositorio bifurcado en mi equipo local mediante un pull request de Git y abrí VS Code. Con el plugin de Snyk instalado, pude actualizar los paquetes afectados y depurar. Luego, ejecuté el código en mi equipo local para probarlo mediante un servidor local (también puedes hacerlo con el servidor integrado de PHP).
Por último, hice commit de los cambios en mi repositorio bifurcado y envié un pull request de Git, que la comunidad verificó antes de integrarlo.
La satisfacción de contribuir
Me encanta contribuir, sobre todo cuando puedo ayudar a proteger a otra comunidad y mantenerla libre de vulnerabilidades. Como miembros de la comunidad de código abierto, es importante contribuir y ayudar a proteger a todas las personas que usan software de código abierto. Así que trabajemos en equipo para que el mundo digital sea un lugar más seguro.
