Vanir, el validador de parches open source de Google
Hace pocos días Google dio a conocer un nuevo proyecto de código abierto, el cual tiene como nombre «Vanir» el cual se posiciona como un analizador estático de código diseñado para identificar vulnerabilidades en proyectos de software, específicamente aquellas que aún no han sido corregidas mediante parches.
El funcionamiento de Vanir se basa en una base de datos de firmas que contiene información sobre vulnerabilidades conocidas y los parches correspondientes, lo que permite comparar el código fuente con las correcciones aplicadas para detectar posibles brechas de seguridad.
Al hacer de Vanir un código abierto, nuestro objetivo es permitir que la comunidad de seguridad más amplia contribuya a esta herramienta y se beneficie de ella, lo que permitirá una adopción más amplia y, en última instancia, mejorará la seguridad en varios ecosistemas.
Entre los principales beneficios de Vanir se destacan los siguientes:
- Identificación de vulnerabilidades en bifurcaciones y código de terceros
Vanir facilita la detección de parches faltantes en bifurcaciones, modificaciones o préstamos de código ajenos al proyecto principal. En el ecosistema de Android, esto permite verificar si los fabricantes de dispositivos originales han aplicado correctamente los parches necesarios en sus versiones personalizadas de la plataforma. - Análisis sin dependencias de metadatos
A diferencia de otras herramientas, Vanir no requiere información adicional como números de versión, historial de confirmaciones o listas SBOM (Software Bill of Materials). Su enfoque se basa exclusivamente en el análisis estático del código fuente existente. - Generación automática de firmas
Vanir automatiza la creación de firmas a partir de información pública sobre vulnerabilidades (CVE) y los parches publicados por los mantenedores. Esto simplifica la actualización y mantenimiento de la base de datos de firmas. - Mayor rendimiento y eficiencia
Al basarse en análisis estático del código fuente, Vanir ofrece un rendimiento significativamente superior en comparación con herramientas de análisis dinámico o verificación de ensamblados binarios. - Autosuficiencia e implementación local
La herramienta permite a las organizaciones implementar y ejecutar la infraestructura en sus propios sistemas, eliminando la necesidad de recurrir a servicios externos o depender de terceros. - Base de datos actualizada y confiable
Vanir utiliza una base de datos de firmas respaldada por el equipo de seguridad de Google Android, lo que garantiza una cobertura confiable y actualizada de vulnerabilidades críticas. - Integración con CI/CD
El soporte para integrarse con sistemas de integración y entrega continua (CI/CD) permite automatizar la detección de vulnerabilidades en el ciclo de desarrollo, facilitando la implementación de procesos de seguridad en DevSecOps. - Adaptabilidad y flexibilidad
Más allá de la detección de vulnerabilidades, Vanir puede adaptarse para otras tareas, como la identificación de clonación de código, análisis de duplicación o el uso de código con licencias específicas en otros proyectos.
Si bien Vanir se diseñó inicialmente para Android, se puede adaptar fácilmente a otros ecosistemas con modificaciones relativamente pequeñas, lo que lo convierte en una herramienta versátil para mejorar la seguridad del software en general.
Composición de Vanir
Vanir consta de dos componentes principales:
- un generador de firmas
- un detector de parches perdidos.
El generador crea firmas basadas en descripciones de vulnerabilidades (en formato OSV) y enlaces a los parches correspondientes, procesando confirmaciones de código en repositorios específicos como googlesource.com y git.codelinaro.org, con la posibilidad de añadir soporte para otros servicios mediante controladores de extracción.
¿Cómo funciona Vanir?
El detector de Vanir analiza el código fuente de un repositorio y verifica si las correcciones de vulnerabilidades están presentes. Esta función la realiza utilizando algoritmos avanzados de refinamiento de firmas y análisis de patrones múltiples, con ello Vanir produce un informe detallado que destaca las vulnerabilidades no parcheadas, proporcionando enlaces a las posiciones del código y referencias a los identificadores CVE y parches aplicados.
A medida de ejemplo para entender en términos de rendimiento la capacidad Vanir, este puede escanear el código fuente de Android, con una base de datos que cubre más de 2000 vulnerabilidades, en un tiempo de entre 10 y 20 minutos en una PC moderna. La tasa de falsos positivos, basada en dos años de uso dentro de Google, se mantiene baja, alrededor del 2.72%.
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.