Skip to main content

Prioriza las correcciones de forma más eficiente con Reachable Vulnerabilities para GitHub

Escrito por
Prioritisation header

21 de enero de 2021

0 minutos de lectura

Nos complace comenzar el año nuevo con la disponibilidad beta de Reachable Vulnerabilities para GitHub, que proporciona a los equipos de desarrollo y seguridad un contexto profundo a nivel de aplicación sobre las vulnerabilidades detectadas en aplicaciones alojadas en GitHub y les permite priorizar las correcciones de forma más eficiente.

Anunciado en julio del año pasado, Reachable Vulnerabilities analiza la ruta de ejecución de una aplicación para determinar si se llega o no a la parte vulnerable de una dependencia. Este contexto a nivel de aplicación se puede aprovechar para garantizar que los esfuerzos de corrección se enfoquen en el conjunto adecuado de vulnerabilidades: aquellas que representan el mayor riesgo para la organización.

Los usuarios de Snyk CLI ya utilizan Reachable Vulnerabilities para priorizar la corrección de sus vulnerabilidades. Ahora nos complace anunciar que esta capacidad también se extenderá a nuestra integración con GitHub, lo que facilitará mucho la priorización en los repositorios administrados en GitHub.

Panel de vulnerabilidades que muestra un problema de cifrado inseguro marcado como alcanzable, con filtros para vulnerabilidades alcanzables, potencialmente alcanzables y de alcance desconocido.

Qué es «reachability» y por qué importa

La mayoría de las soluciones SCA (análisis de composición de software) analizan tu aplicación para determinar qué dependencias de código abierto se incorporan a ella y luego comparan estos hallazgos con una base de datos de vulnerabilidades para generar un informe sobre las dependencias vulnerables.

Con el tiempo, estos informes pueden llegar a contener cientos, si no miles, de problemas. Como las organizaciones no pueden ni deben abordar todas estas vulnerabilidades, deben priorizarlas. La mayoría de las soluciones del mercado proporcionan niveles de gravedad basados en CVSS para orientar la priorización, pero esto no es suficiente cuando se enfrentan cientos de vulnerabilidades de gravedad alta o cinco vulnerabilidades con la misma puntuación CVSS.

Aquí es donde entra en juego «reachability»: te proporciona el contexto profundo a nivel de aplicación que necesitas para evaluar el riesgo de forma rápida y precisa. Al igual que puedes comer las partes sanas de una fruta podrida, que haya una vulnerabilidad en una parte de tu código no significa necesariamente que toda la biblioteca sea vulnerable. Por lo general, las vulnerabilidades a las que no se llega no comprometen la aplicación en su conjunto y, por lo tanto, representan menos riesgo que aquellas a las que sí se llega.

Reachable Vulnerabilities reduce drásticamente la cantidad de vulnerabilidades que requieren atención urgente. Alrededor del 3 % de las vulnerabilidades detectadas en los proyectos Java Maven que analizamos con Reachable Vulnerabilities son realmente «alcanzables». ¿Significa esto que podemos descartar las vulnerabilidades restantes? Por supuesto que no. También son importantes y deben clasificarse, pero aquí está la diferencia entre lo urgente y lo importante.

¿Cómo funciona Reachable Vulnerabilities?

Si te interesa saber cómo funciona Reachable Vulnerabilities, esta publicación del blog ofrece un análisis técnico profundo de cómo Snyk combina investigación de seguridad propia con análisis estático automatizado para realizar el análisis necesario y proporcionar un contexto preciso y profundo a nivel de aplicación sobre las vulnerabilidades detectadas.

Ampliar esta capacidad para admitir nuestra integración con GitHub requirió trabajo adicional de ingeniería. El ingrediente clave que permite el análisis es la creación de un grafo de llamadas que representa las distintas interacciones entre tu aplicación y sus dependencias. En el caso de las aplicaciones alojadas en GitHub, Snyk clona tu repositorio, compila la aplicación y crea el grafo de llamadas necesario para determinar reachability. Una vez creado el grafo de llamadas, se elimina todo el código fuente de los servidores de Snyk.

Cómo habilitar Reachable Vulnerabilities para tus proyectos de GitHub

La integración de Snyk con GitHub te permite realizar pruebas de seguridad de forma continua en todos tus repositorios de código alojados en GitHub para encontrar vulnerabilidades en tus dependencias de código abierto y luego corregirlas mediante flujos de trabajo automatizados de corrección y actualización. Si aún no lo hiciste, sigue los pasos descritos en nuestra documentación para configurar tu integración inicial con GitHub.

Reachable Vulnerabilities para GitHub NO está habilitado de forma predeterminada. Como comprendemos plenamente los requisitos de seguridad de los datos, esta función requiere que la habilites manualmente para realizar el análisis.

Para habilitar Reachable Vulnerabilities en tus proyectos de GitHub, abre la configuración de la organización para la integración con GitHub y simplemente activa el interruptor en la sección Análisis de Reachable Vulnerabilities.

Panel de configuración del análisis de vulnerabilidades alcanzables que muestra un interruptor activado, una advertencia sobre la clonación del repositorio y el botón Guardar cambios

Reachable Vulnerabilities se habilitará para todos los proyectos nuevos de GitHub que importes Y para los proyectos de GitHub existentes, que se analizarán cuando se ejecute una prueba diaria o nocturna.

Prioriza con Reachable Vulnerabilities

Una vez habilitada, en las páginas de los proyectos correspondientes de Snyk se mostrarán varios indicadores e información de reachability, que podrás usar para filtrar rápidamente los distintos problemas detectados en el proyecto.

Panel de vulnerabilidades que muestra un problema de validación incorrecta de entradas, de gravedad alta y explotable, detalles de remediación, puntaje de prioridad y anotaciones.

Reachable Vulnerabilities también se tiene en cuenta en la Priority Score de Snyk (1), un sistema de puntuación avanzado e integrado que utiliza un algoritmo propio para procesar una amplia variedad de factores, como la puntuación CVSS, la disponibilidad de una corrección, los exploits conocidos, la antigüedad de la vulnerabilidad y, como se mencionó, si es alcanzable o no. La puntuación resultante aparece en la esquina superior derecha de las tarjetas de cada problema y puedes usarla para filtrar y ordenar rápidamente tu backlog.

Se agrega una etiqueta de reachability (2) a las vulnerabilidades correspondientes. Puedes usar los filtros de reachability (3) para ordenar rápidamente los problemas detectados en el proyecto y enfocarte en los que representan el mayor riesgo. Snyk también muestra información detallada (4) sobre la ruta exacta por la que la aplicación llama a la función vulnerable.

Corrige vulnerabilidades con Reachable Vulnerabilities

La integración de Snyk con GitHub no solo te permite identificar problemas, sino también corregirlos como parte de tu flujo de trabajo basado en Git.

Puedes activar manualmente un pull request directamente desde la vulnerabilidad en la interfaz de Snyk. Para facilitar aún más las cosas, Snyk activará automáticamente un pull request en varios casos: cuando detecte una nueva vulnerabilidad que se pueda corregir o cuando haya una nueva corrección disponible para una vulnerabilidad existente. Backlog Management de Snyk también activará un pull request según la Priority Score (obtén más información sobre Backlog Management aquí).

Todos estos pull requests muestran información de reachability, junto con las demás recomendaciones de corrección que proporciona Snyk, en la pestaña Conversation del pull request. Este contexto te ayudará a decidir si conviene combinar los cambios.

pull request de GitHub que muestra una actualización de dependencia de Snyk de httpclient 4.3.1 a 4.5.13, con la columna reachability resaltada.

Los datos de reachability también están disponibles en la página Reports → Issues, para que puedas supervisar y dar seguimiento a tus vulnerabilidades más fácilmente con el tiempo.

Menú de filtros de problemas que muestra opciones de reachability y una tabla de problemas con la columna Reachability resaltada

¡Empieza ahora!

Una evaluación del riesgo precisa y rápida es fundamental para priorizar de forma eficaz. CVSS puede ser un buen punto de partida, pero no es lo suficientemente exhaustivo y no proporciona un contexto profundo sobre los factores subjetivos relacionados con una vulnerabilidad.

Al analizar la ruta de ejecución de la aplicación y correlacionarla con los amplios datos de seguridad de Snyk, Reachable Vulnerabilities de Snyk —ahora también disponible para aplicaciones alojadas en GitHub— proporciona el contexto profundo a nivel de aplicación necesario para priorizar de forma eficaz.

Reachable Vulnerabilities para GitHub se está implementando gradualmente en versión beta para todos los planes de Snyk, con soporte por ahora para proyectos Java (Maven). Si no quieres esperar y quieres obtener acceso antes, escríbenos a: support@snyk.io. Para obtener más detalles, consulta la documentación principal.

Leer más

feature insights context
Blog

Los ataques autónomos ya están aquí. La defensa debe estar a su altura.

Los atacantes autónomos están reduciendo el tiempo disponible para defenderse. Descubre cómo el descubrimiento, la corrección, la validación y la prevención continuos pueden ayudar a los equipos de seguridad a seguirles el ritmo.

feature insights context
Blog

¿La prevención es, en esencia, un problema ya resuelto?

La prevención en el código generado por agentes está resuelta desde el punto de vista arquitectónico, pero elegir controles que protejan la seguridad sin ralentizar el desarrollo sigue siendo el desafío.

Live Stream

Agentes de remediación, sin misterios: por qué solucionar es mejor que encontrar

Descubre cómo el agente de remediación de Snyk utiliza inteligencia de seguridad, análisis de explotabilidad y validación para convertir las vulnerabilidades en solicitudes de incorporación de cambios listas para fusionarse.