Skip to main content

Corrige vulnerabilidades con confianza gracias a Merge Advice, con tecnología de ML de Snyk

Escrito por
fix vulnerabilities

2 de junio de 2020

0 minutos de lectura

Nos entusiasma anunciar el lanzamiento beta de Merge Advice, la última mejora de las capacidades de corrección de Snyk que te ayudan a corregir vulnerabilidades de forma confiable. Gracias al aprendizaje automático, Merge Advice brinda a los desarrolladores mayor confianza para corregir vulnerabilidades de seguridad en sus dependencias de código abierto.

Invertimos en la confianza de los desarrolladores

El riesgo de introducir cambios incompatibles en una rama hace que hacer clic en el botón de merge pueda sentirse un poco como jugar a la ruleta rusa. Algo tan sencillo como actualizar un paquete puede, en ocasiones, interrumpir el código que depende de él.

Hacer merge de pull requests con confianza es fundamental. Por eso, seguimos invirtiendo en que los pull requests de corrección y actualización de Snyk sean precisos y realicen la menor cantidad de cambios posible para eliminar la vulnerabilidad. Por ejemplo, para las correcciones de seguridad, siempre recomendaremos la versión más baja que no sea vulnerable y que sea compatible con tu proyecto. Merge Advice va un paso más allá y aprovecha el aprendizaje automático para que sea posible corregir con confianza más vulnerabilidades.

Cada pull request compatible iniciado por Snyk o a través de Snyk mostrará una insignia que indica si es probable que la corrección genere cambios incompatibles. Ahora los desarrolladores cuentan con la información necesaria para tomar decisiones de merge basadas en datos.

¿Cómo funciona?

Para determinar la recomendación de merge de cada PR, se analizan muchos datos:

  1. Se hace un seguimiento de la actividad de los PR en repositorios públicos de GitHub y en los que supervisa Snyk.

  2. Se miden tres indicadores: los resultados de las pruebas de CI, las tasas de merge y las reversiones de los PR.

  3. Luego, el aprendizaje automático predice si el merge de un PR será exitoso.

El resultado de este proceso es una insignia de Merge Advice que se muestra en la parte superior de los pull requests compatibles:

Tabla que explica Snyk Merge Advice, con insignias de «Alta probabilidad de éxito» y «Se recomienda revisar».

Predicciones precisas gracias al aprendizaje automático

El algoritmo que impulsa Merge Advice está diseñado para predecir con un alto nivel de confianza si los pull request de merge tendrán éxito. Se basa en un modelo estadístico que considera tanto la cantidad de puntos de datos como su distribución observada al actualizar una dependencia específica de la versión X a la versión Y. No se mostrará una recomendación si no hay suficientes datos para hacer una predicción confiable.

El modelo que usa Merge Advice de Snyk adopta un enfoque único, ya que hace un seguimiento de varios indicadores:

  • la proporción de pruebas de CI aprobadas y fallidas al actualizar un paquete de la versión X a la Y,

  • la proporción de merges de esas actualizaciones,

  • y la cantidad de veces que se revirtió una actualización.

También se hace un seguimiento de estos indicadores en varias fuentes de datos. Supervisamos la actividad de los repositorios públicos de GitHub con la ayuda de GHArchive, un proyecto que registra y archiva la actividad pública de GitHub y la pone a disposición para su análisis. Por supuesto, también nos basamos en los más de 750.000 repositorios (actualmente) protegidos por los usuarios de Snyk.

La combinación de estas fuentes de datos crea un conjunto de datos enriquecido del que podemos extraer inferencias y que aporta profundidad estadística al modelo que usa Merge Advice.

Hacer merge o no hacer merge: ¡esa es la cuestión!

¿Cómo se ve esto en tu flujo de trabajo diario con GitHub? Veámoslo más de cerca.

Como siempre, los usuarios de Snyk pueden abrir manualmente un PR para corregir una vulnerabilidad específica o un conjunto de vulnerabilidades desde la interfaz de usuario de Snyk. Snyk también puede iniciar automáticamente un pull request en dos situaciones: al identificar una nueva vulnerabilidad en dependencias existentes o al detectar una dependencia desactualizada.

Sin importar qué los active, estos pull requests ahora incluyen la nueva insignia de Merge Advice. La recomendación que aparece en esta insignia cambia según el modelo de analítica predictiva que describimos anteriormente.

pull request de GitHub de snyk-bot que actualiza adm-zip, con una flecha roja que resalta la etiqueta de recomendación de fusión “Review recommended”.

¡A corregir!

El objetivo de Merge Advice es ayudar a los desarrolladores a tomar decisiones basadas en datos al hacer merge de pull requests para proteger sus dependencias de código abierto. Para garantizar los mejores resultados, mejoramos constantemente el algoritmo que impulsa esta función. También incorporaremos en los cálculos variables como la estacionalidad, que pueden influir en los resultados.

Por el momento, las insignias de Merge Advice solo están disponibles para una pequeña parte de los pull requests de GitHub en paquetes de Yarn y npm que actualizan un solo paquete. A medida que avance la versión beta, ampliaremos y profundizaremos la compatibilidad. Mantente al tanto de las novedades.

Merge Advice está disponible para todos los usuarios en todos los planes, incluido el plan Free.

¡Que hagas muchos merges exitosos!

Empieza con Capture the Flag

Aprende a resolver desafíos de Capture the Flag viendo nuestro taller virtual introductorio a pedido.