Prioriza las correcciones de forma más eficiente con Reachable Vulnerabilities para GitHub
21 de enero de 2021
0 minutos de lecturaNos 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.

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.

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.

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.

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.

¡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.


