Skip to main content

Snyk Open Source agrega análisis de seguridad beta para código abierto no administrado en C/C++

Escrito por
blog feature oss cpp

8 de diciembre de 2021

0 minutos de lectura

Nos complace anunciar la beta abierta del análisis de seguridad de C/C++ en Snyk Open Source, que permite a los equipos de desarrollo y seguridad encontrar y corregir vulnerabilidades de seguridad conocidas en su código y sus bibliotecas de código abierto en C/C++.

C/C++ se usa en diversos sectores y tiene una presencia destacada en las industrias de los videojuegos, el hardware/IoT y las comunicaciones. Sigue teniendo un gran impacto en el desarrollo de software y en el sector tecnológico en general. Según el índice TIOBE de noviembre de 2021, C/C++ se encuentra entre los cinco principales lenguajes de programación, en el segundo y cuarto lugar, respectivamente. El índice PYPL y las clasificaciones de RedMonk muestran resultados similares.

Al igual que quienes desarrollan en otros lenguajes de programación, los desarrolladores de C/C++ dependen del código y las bibliotecas de código abierto para crear sus aplicaciones. Esta dependencia cada vez mayor genera riesgos, ya que estas bibliotecas pueden contener vulnerabilidades de seguridad conocidas. El riesgo se agrava porque, a diferencia de lo que ocurre con los lenguajes más modernos, la mayoría de los desarrolladores de C/C++ no usa un proceso estandarizado para administrar estas bibliotecas (el 49 % de los desarrolladores de C++ señala la administración de paquetes como un problema importante en la encuesta más reciente de la comunidad de C++). En cambio, el código fuente de la biblioteca de código abierto se agrupa con el código de la aplicación, lo que dificulta la administración de estas bibliotecas y la identificación de las vulnerabilidades que podrían contener.

Con este anuncio, quienes usan Snyk Open Source pueden mitigar este riesgo al probar sus proyectos de C/C++ desde la CLI de Snyk, ya sea mediante pruebas manuales en entornos de desarrollo locales o pruebas automatizadas como parte de un pipeline de CI/CD.

Esta versión beta incluye las siguientes funcionalidades:

  • snyk unmanaged test en la CLI de Snyk

  • snyk unmanaged monitor en la CLI de Snyk

  • Datos de vulnerabilidades basados en la National Vulnerability Database (NVD)

Veamos rápidamente cómo funciona.

Configuración de la CLI de Snyk

Primero, asegúrate de tener instalada la CLI de Snyk. Si ya conoces la CLI de Snyk y la tienes instalada, asegúrate de usar la versión 1.775.0 o una posterior.

Configurar la CLI de Snyk es muy sencillo. Puedes instalarla rápidamente con npm o Homebrew; después, solo tendrás que autenticarte con tu cuenta de Snyk (si aún no tienes una, regístrate gratis):

npm install -g snyk
snyk auth

Se abrirá tu navegador y te pedirá que autentiques la CLI. ¡Continúa y autentícate!

Ya puedes empezar a usar la CLI de Snyk para analizar tus proyectos de C/C++ en busca de vulnerabilidades.

Análisis de vulnerabilidades de seguridad

Probemos la CLI de Snyk por primera vez y ejecutemos una prueba.

Para analizar un proyecto, las bibliotecas de código abierto deben estar dentro del directorio que se va a analizar. En ese directorio, ejecuta el siguiente comando de la CLI:

snyk unmanaged test

Snyk convierte todos los archivos de la carpeta en una lista de firmas digitales, o hashes, que luego se coteja con las bases de datos de Snyk para generar una lista de componentes de código abierto coincidentes. A continuación, esta lista de componentes se coteja con la National Vulnerability Database (NVD) para mostrar los resultados.

El proceso de análisis de vulnerabilidades depende de la cantidad de archivos de tu proyecto y puede tardar desde unos segundos hasta unos minutos. Cuando termine el análisis, verás una lista de las vulnerabilidades identificadas:

Terminal que muestra los resultados de las pruebas de Snyk para dependencias no administradas, con vulnerabilidades CVE de curl de gravedad alta, media y baja.

Como se ve en el ejemplo anterior, la lista de problemas incluye la gravedad de la vulnerabilidad, su CVE, información sobre la biblioteca que la introduce y un enlace a la vulnerabilidad en la NVD.

Otro comando útil muestra las bibliotecas de código abierto incluidas en el proyecto, tengan vulnerabilidades o no:

snyk unmanaged test --print-deps

La CLI de Snyk mostrará ahora una lista de dependencias antes de la lista de vulnerabilidades. Como se ve en este ejemplo, este proyecto incluye las bibliotecas curl, iw y zip.

Terminal que muestra los resultados del análisis de dependencias de Snyk, con CVE de gravedad alta, media y baja en curl y otras bibliotecas de código abierto

También puedes importar los resultados del análisis a la aplicación de Snyk para tener una mejor visibilidad y generar informes. Para hacerlo, usa el siguiente comando:

snyk unmanaged monitor

Se crea una instantánea de tus bibliotecas de C/C++, junto con las vulnerabilidades que contienen, y se importa a Snyk para analizarla y revisarla con más detalle. Aparecerá como un proyecto nuevo en la página Proyectos:

Página de proyectos de Snyk con el proyecto c-example resaltado, que muestra la cantidad de problemas de seguridad y un enlace Ver informe.

Hay muchas otras formas de interactuar con los resultados del análisis, como filtrarlos y exportarlos en formato JSON. Consulta nuestra documentación de Snyk para ver más opciones de la CLI.

Explora el mundo del código abierto no administrado

Los equipos de desarrollo de C/C++ que buscan mantener un ritmo de desarrollo rápido sin dejar de proteger sus proyectos se enfrentan a bases de código con grandes cantidades de código heredado. La mayor parte del código abierto de estas bases no está declarado, ya que se consume directamente al incorporar el código en la aplicación. Esto dificulta enormemente la administración de los riesgos que introduce.

Este anuncio de la beta es el primer paso de Snyk para ayudar a estos equipos a superar este desafío, al ampliar por completo nuestras funcionalidades de análisis de composición de software, diseñadas para desarrolladores, a fin de proteger el código abierto no administrado. Los próximos pasos incluirán la integración completa de la compatibilidad con C/C++ en Snyk Open Source con la base de datos de vulnerabilidades Snyk Intel y, más adelante, la incorporación de compatibilidad con código abierto no administrado en otros ecosistemas, como JavaScript y Java.

Mientras empezamos a implementar estos próximos pasos, contamos con tus comentarios para asegurarnos de que vamos en la dirección correcta. Queremos confirmar que estamos desarrollando las funcionalidades adecuadas y en el orden correcto.

¡Te invitamos a probar estas funcionalidades! Están disponibles en versión beta en todos los planes pagados de Snyk: Team, Business y Enterprise. Para participar en la beta, comunícate con nuestro equipo en ccpp-beta@snyk.io para que podamos confirmar que tu caso de uso es compatible.

Para obtener más información sobre cómo analizar tus proyectos de C/C++ y la compatibilidad beta, visita nuestra documentación de Snyk.

Empieza con los desafíos de Capture the Flag

Aprende a resolver desafíos de captura la bandera con nuestro taller virtual introductorio a pedido.