In this article
Mejora de la detección de vulnerabilidades con IA
Como empresa que prioriza la IA, en Snyk tenemos un firme compromiso con la integración de la inteligencia artificial en todos los aspectos de nuestros procesos de ingeniería. Este compromiso nos impulsa a buscar continuamente formas innovadoras de usar la IA para fortalecer nuestras soluciones de seguridad. Recientemente, lanzamos con éxito la primera versión de dos proyectos que reflejan nuestra dedicación a usar tecnología de vanguardia para mejorar la detección de vulnerabilidades. Estos proyectos se diseñaron estratégicamente para minimizar el trabajo manual, mejorar significativamente la precisión y permitir que nuestros expertos en seguridad se concentren en tareas estratégicas de mayor impacto.
El problema: análisis manual y sobrecarga de información
En el ámbito de la ciberseguridad, anticiparse a las vulnerabilidades es fundamental. En Snyk nos enorgullece contar con una amplia base de datos de seguridad, pilar de nuestra capacidad para brindar información oportuna y precisa sobre posibles amenazas. Desde los inicios de la empresa, un equipo dedicado de profesionales de seguridad ha trabajado incansablemente para mantener actualizados nuestros datos sobre vulnerabilidades. Para ello, usamos diversas herramientas y automatizaciones para rastrear las vulnerabilidades emergentes, incluidos los exploits de día cero, y asegurarnos de ser los primeros en informar a nuestros usuarios.
Sin embargo, esta tarea fundamental está lejos de ser sencilla. Nuestros analistas dedican una parte considerable de su jornada, a menudo varias horas, a revisar un flujo abrumador de información. Analizan distintos eventos, como comentarios en repositorios de GitHub, debates en foros y avisos de seguridad, para detectar posibles señales de vulnerabilidades recién descubiertas. Este proceso es como buscar una aguja en un pajar. El volumen de información es abrumador y más del 95 % de estos eventos resultan ser falsos positivos.
Ejemplo
Imagina que un analista encuentra un comentario en GitHub que dice: «Este código parece tener un problema con la validación de entradas». A primera vista, podría parecer una posible vulnerabilidad. Sin embargo, tras investigar a fondo la conversación y el cambio de código, el analista podría descubrir que el «problema» es una preferencia menor de estilo de programación y no una falla de seguridad. Este proceso, que consume mucho tiempo, se repite cientos de veces al día, lo que genera un esfuerzo considerablemente desperdiciado y puede provocar el agotamiento de los analistas.
Este trabajo manual y repetitivo no solo consume tiempo valioso, sino que también aumenta el riesgo de errores humanos. Dada la enorme cantidad de datos, podría pasarse por alto información crucial, lo que retrasaría la identificación de vulnerabilidades y podría dar lugar a brechas de seguridad.
Asegura tu futuro con IA en Snyk Launch 2025
Únete a Snyk Launch y descubre cómo establecer las bases para desarrollar con seguridad y confianza en la era de la IA.
Clasificación de posibles vulnerabilidades con IA: nuestra solución
Al reconocer este desafío, nuestro equipo de Machine Learning vio la oportunidad de aprovechar los avances en los modelos de lenguaje grandes (LLM) para automatizar una parte importante de este análisis. El objetivo era desarrollar un modelo de IA capaz de analizar estos eventos y marcar con precisión aquellos que realmente representaran posibles vulnerabilidades.
La primera versión de este proyecto consistió en crear una solución basada en una técnica sencilla de prompting de una sola ejecución. Esta solución se convirtió en el núcleo de nuestro sistema de clasificación. Estos fueron sus componentes principales:
Prompting de una sola ejecución mejorado: Realizamos varias rondas de experimentación para asegurarnos de que el prompt y el contexto que incorporamos fueran suficientes. Con solo usar la carga útil sin procesar de un evento —en nuestro caso, un comentario— obtuvimos resultados bastante buenos, lo que nos permitió ahorrar tiempo y recursos adicionales que habríamos invertido en el ajuste fino.
Prioridad a una alta cobertura: Nuestro objetivo principal era lograr una alta cobertura, es decir, no queríamos pasar por alto ninguna vulnerabilidad real. Aunque los experimentos iniciales alcanzaron una cobertura del 95 %, descubrimos que al modificar el prompt para permitir una respuesta de «tal vez» en caso de duda, pudimos acercarnos al 100 % de cobertura y mantener un nivel de precisión relativamente bueno.
Resultados
Mantuvimos una cobertura impresionante del 100 %, lo que significa que no se pasa por alto ninguna de las muchas vulnerabilidades que descubrimos cada mes, y logramos marcar cada semana decenas de esos eventos con alta confianza que no aportan información útil.
Para nosotros, esto significa reducir en un 10 % la cantidad de eventos que deben revisar los analistas, mientras nuestros clientes siguen disfrutando de las mismas garantías de seguridad, sin concesiones, y los analistas de seguridad pueden descubrir más hallazgos de alta calidad.
Clasificador de commits de corrección: análisis de versiones
El segundo proyecto se diseñó para mejorar el análisis de nuevas versiones de paquetes e identificar si incluían correcciones para vulnerabilidades conocidas. Antes, los analistas tenían que revisar los commits de cada versión nueva de forma manual, una tarea lenta y propensa a errores.
El desafío del análisis de versiones
Todos los paquetes de software reciben actualizaciones y nuevas versiones. Cada versión puede incluir numerosos commits, y cada uno representa un cambio en el código. Identificar cuáles corrigen vulnerabilidades específicas requiere un conocimiento profundo del código y de la naturaleza de cada vulnerabilidad. Revisar manualmente los commits de cada versión era una tarea abrumadora.
Por ejemplo, imaginemos que nuestro analista recibe una notificación sobre la nueva versión 1.9.1 de la biblioteca React, que incluye 492 (!) commits desde la versión anterior, la 1.9.0. Para determinar si esta versión corrige una vulnerabilidad conocida, el analista tendría que revisar todos los commits incluidos, compararlos con los detalles de todas las vulnerabilidades conocidas y evaluar si los cambios realmente la corrigen. Por supuesto, no podría hacerlo todo manualmente, así que normalmente limitaría el tiempo dedicado y se enfocaría en los problemas más graves o en los que las notas de la versión indican explícitamente que se corrigieron. Aun así, el proceso podría tomar horas, sobre todo en paquetes como React, donde cada versión tiene muchos commits.
Clasificación de commits de corrección con IA: nuestro enfoque
Para abordar este desafío, buscamos enriquecer las alertas de versiones con recomendaciones generadas por IA sobre si un commit corrigió una vulnerabilidad específica. Para ello, seguimos un proceso de varias etapas:
Recuperación de los commits asociados: Primero, recuperamos todos los commits asociados con una versión determinada de un paquete.
Identificación de correcciones con IA: Después, usamos un modelo de lenguaje grande para determinar si alguno de esos commits corregía una vulnerabilidad determinada.
Enriquecimiento de las alertas de versiones: Si la IA identificaba una corrección, agregábamos esta información a las alertas de versiones para que los analistas contaran con información útil de inmediato.
Resultados
El mayor logro fue descubrir correcciones de vulnerabilidades que antes no se habían marcado. Mientras desarrollábamos la solución y evaluábamos sus métricas de precisión, encontramos más de 500 correcciones que ahora se están agregando a nuestra base de datos de seguridad.
Además, con un ritmo actual de alrededor de 30 descubrimientos automatizados al mes gracias a este cambio, podemos suponer que una buena parte corresponde a hallazgos adicionales que, de otro modo, se habrían pasado por alto.
Impacto general
Ahora que ambas mejoras están disponibles, los usuarios de Snyk ya se benefician de una detección más rápida y de una cartera de soluciones de seguridad aún más completa. Esto nos permite ofrecer el máximo nivel de seguridad a velocidades líderes en la industria.
Por último, al acelerar etapas clave del proceso de análisis y ofrecer información basada en IA, hemos mejorado la eficiencia y la precisión de nuestras iniciativas de seguridad. La integración de la IA en nuestros procesos de gestión de vulnerabilidades no es solo un avance tecnológico. Es un cambio fundamental en nuestra forma de abordar la seguridad, que nos permite anticiparnos a las amenazas emergentes y proteger mejor a nuestros usuarios.
Comienza gratis con las herramientas de seguridad de código con IA de Snyk
No necesitas tarjeta de crédito.
Crea una cuenta con Bitbucket y accede a más opciones
Al usar Snyk, aceptas cumplir nuestras políticas, incluidos los Términos del servicio y la Política de privacidad.