Skip to main content

Snyk lleva su enfoque de AppSec centrado en los desarrolladores a C/C++

Escrito por
blog feature snyklaunch

4 de abril de 2023

0 minutos de lectura

Snyk es conocido por sus soluciones de seguridad de aplicaciones centradas en los desarrolladores para muchos ecosistemas, como Java, JavaScript, Python y otros. Snyk permite a los desarrolladores no solo encontrar problemas, sino también aplicar correcciones rápidamente, revolucionando la seguridad e integrándola desde las primeras etapas del SDLC.

En 2022, lanzamos la primera versión de la compatibilidad con paquetes de código abierto de C/C++ y hoy nos entusiasma anunciar la beta abierta de C/C++ para Snyk Code y las licencias para Snyk Open Source.

Los equipos de desarrollo sienten el impacto

El ecosistema de C/C++ tiene más de 40 años de historia. Con proyectos emblemáticos como Linux o Apache OpenOffice, C++ ha estado a la vanguardia de la revolución del código abierto. Sin embargo, mientras que Java, C# y JavaScript abordaron el «infierno de las dependencias» —es decir, la gestión de la cantidad cada vez mayor de dependencias de bibliotecas de código abierto—, C++ carece de un enfoque general. El problema es tan grave que la gestión de dependencias se convirtió en uno de los principales desafíos para los desarrolladores modernos de C++.

El año pasado, dimos el primer paso para apoyar a la comunidad de C/C++: habilitamos la búsqueda de bibliotecas de código abierto en aplicaciones de C/C++ sin un administrador de paquetes. Durante ese tiempo, aprendimos mucho de nuestros clientes y comprobamos que esta comunidad de desarrollo sólida y activa necesita más que una integración con administradores de paquetes para abordar la complejidad y profundidad del ecosistema.

Las aplicaciones de C/C++ enfrentan los mismos desafíos de escritura de código seguro y los mismos componentes vulnerables que cualquier otro lenguaje de desarrollo moderno. Sin embargo, este ecosistema tiene años de deuda técnica y tipos de vulnerabilidades únicos, y es anterior a los administradores de paquetes. Esto significa que los desarrolladores deben incorporar bibliotecas de código abierto directamente en su código.

Al buscar problemas de seguridad detectables mediante análisis estático, estos proyectos suelen tener que compilarse, lo que ralentiza o interrumpe los flujos de trabajo de desarrollo. C/C++ suele combinarse con muchos otros lenguajes, y las abstracciones que usan estas aplicaciones dificultan ver el flujo de datos real.

Toda esta complejidad deja brechas críticas que generan mucha frustración entre los desarrolladores y los equipos de seguridad, por ejemplo:

Baja productividad de los desarrolladores debido a otras herramientas que:

  • son lentas e interrumpen los flujos de trabajo de desarrollo

  • muestran mensajes difíciles de entender

  • generan alertas de vulnerabilidades que no permiten tomar medidas

  • carecen de un análisis adecuado del flujo de datos

  • tienen una curva de aprendizaje pronunciada

Bajo retorno de inversión y alto riesgo, ya que las herramientas de seguridad existentes para C/C++ son inferiores porque son:

  • costosas

  • requieren que el código se compile

  • especializadas y de nicho

  • difíciles de configurar y mantener

  • difíciles de integrar con los pipelines de compilación

  • y, en última instancia, dejan las aplicaciones vulnerables

Falta de visibilidad sobre las dependencias de código abierto, sus vulnerabilidades asociadas y los términos de sus licencias, porque:

  • no hay administradores de paquetes estandarizados

  • la mayoría de los desarrolladores incorpora copias de bibliotecas de código abierto

¿Qué hace Snyk para ayudar?

Snyk es líder del sector al ofrecer correcciones rápidas y prácticas para los desarrolladores, y ahora los equipos de C/C++ pueden disfrutar de esa misma experiencia. A partir de lo que comenzamos el año pasado, Snyk ahora encuentra problemas de AppSec ocultos en el código de C/C++ y verifica las licencias con las políticas de toda la organización para garantizar el cumplimiento.

También identifica aún más paquetes de código abierto, incluidos la mayoría de los que se encuentran en administradores de paquetes populares como Conan, sin necesidad de un archivo de manifiesto.

Y, por supuesto, Snyk se integra fácilmente con las herramientas que ya usas, como los IDE, para que los desarrolladores puedan encontrar y corregir problemas rápidamente antes de confirmar cambios en el código.

Compatibilidad con C/C++ para Snyk Code

El conjunto de reglas de análisis estático que lanzamos hoy beneficiará principalmente a los desarrolladores que crean aplicaciones de escritorio, servidor y web. A medida que agreguemos más reglas, también admitiremos otros tipos de aplicaciones, como las integradas y las automotrices. Snyk Code se integra fácilmente en el entorno de herramientas existente mediante complementos para IDE y analiza el código fuente directamente, sin necesidad de ejecutar un compilador.

Hoy lanzamos C/C++ en beta abierta y, durante todo el período de beta, seguiremos mejorando nuestra cobertura y nuestras capacidades. Nuestro proceso de investigación sobre la seguridad del código comienza con el análisis de cientos de miles de repositorios de código abierto. Luego, combina análisis de IA y aprendizaje automático con la experiencia de especialistas en seguridad para crear nuestra base de conocimientos de Snyk Code. El ecosistema de C/C++ no será la excepción. Los resultados mejorarán continuamente a medida que analicemos más proyectos.

La compatibilidad con C/C++ está en beta y debe activarse en la sección Snyk Settings / Preview de la interfaz web de Snyk. Durante este período de beta, necesitamos tus comentarios. Contáctanos mediante un ticket de soporte desde la aplicación para contarnos cómo funcionan las reglas en tu caso. Con gusto haremos los ajustes necesarios. En los próximos meses, Snyk aplicará su proceso de aprendizaje automático guiado por personas, único en el sector, junto con la IA simbólica, para agregar contenido y perfeccionar la base de conocimientos de C/C++ y ampliar su cobertura de problemas conocidos de C/C++.

IDE que muestra código C con un desbordamiento de búfer en strcpy resaltado y un panel de Snyk que enumera vulnerabilidades y soluciones de ejemplo
Panel de Snyk IDE que muestra un desbordamiento de búfer crítico en código C++, con el flujo de datos y ejemplos externos de soluciones

Licencias de C/C++ para Snyk Open Source

Además de identificar paquetes de código abierto y ofrecer recomendaciones para corregir problemas, Snyk Open Source ahora ofrece visibilidad sobre las licencias de código abierto de C/C++ y las verifica según las políticas de toda la organización definidas por los equipos de seguridad y legales para garantizar el cumplimiento. Los desarrolladores recibirán orientación en tiempo real sobre las licencias permitidas según las políticas de sus empresas.

Desde la CLI, ejecuta snyk test --unmanaged en el directorio principal de tu proyecto.

Cuando agregues el parámetro adicional --unmanaged en Project Settings del complemento de Snyk —o de la extensión para CLion, Visual Studio Code u otro IDE compatible—, podrás usar esta funcionalidad directamente desde tu IDE.

Panel de vulnerabilidades de Snyk que destaca un problema con la licencia AGPL-3.0-only en la dependencia open5gs
Panel de dependencias que muestra los paquetes curl, glaspell, open5gs y OpenSSL, con el número de problemas y la información de licencias
Historial del proyecto en Snyk que muestra problemas de licencias de código abierto, filtros de gravedad y advertencias de cumplimiento para las dependencias GNU Aspell y Open5GS.

C/C++: bienvenido al mundo moderno

Con la compatibilidad de Snyk AppSec con C/C++, facilitamos que los desarrolladores encuentren y corrijan problemas de seguridad mediante integraciones intuitivas y fáciles de usar, y ofrecemos a los equipos de seguridad toda la visibilidad que necesitan, desde una plataforma respaldada por inteligencia de seguridad líder en el sector.

¿El resultado?

Desarrolladores felices y productivos, gracias a:

  • integraciones fluidas en los flujos de trabajo de desarrollo

  • mensajes fáciles de entender y que permiten tomar medidas

  • análisis del flujo de datos sobre el código original

«El 85 % de los desarrolladores que usan Snyk lo recomiendan a otras personas y destacan el considerable ahorro de tiempo y la facilidad de uso».

Correcciones sencillas en menos tiempo, gracias al enfoque moderno de Snyk, centrado en los desarrolladores, que:

  • analiza el código de forma automática y continua en minutos o incluso segundos

  • analiza el código fuente y evita la necesidad de compilarlo

  • incluye controles de seguridad en todo el SDLC; por ejemplo, analiza cada verificación de PR

Visibilidad completa de los problemas de seguridad de C/C++ con capacidades como:

  • una base de datos líder en el sector de código abierto de C/C++, con paquetes, licencias y vulnerabilidades

  • identificación de paquetes de código abierto no administrados (sin administrador de paquetes) mediante huellas digitales de firmas de archivos

  • informes centralizados para toda la organización, en todos los productos de la plataforma, con filtros sencillos

Para ver la demostración, consulta la grabación a pedido de SnykLaunch.

Empieza a proteger tus proyectos de C/C++ hoy mismo.

Inicia una prueba gratuita y agenda una sesión con uno de nuestros expertos en seguridad para C/C++ para probar las nuevas funciones beta.

Leer más

blog feature snyk container custom base recommendations
Blog

Presentamos Evo Agentic AppSec: seguridad al ritmo del desarrollo con IA

El desarrollo impulsado por IA supera el ritmo de los flujos de trabajo de seguridad tradicionales. Agentic AppSec de Snyk usa agentes de seguridad para encontrar, corregir y verificar vulnerabilidades de forma continua, mientras las personas definen el estándar.

blog feature ai violet
Blog

VulnBump: ¿Pueden los agentes de IA corregir dependencias vulnerables sin romper la compilación?

VulnBump prueba agentes de IA en 307 actualizaciones reales de dependencias. Una corrección cuenta solo si elimina la vulnerabilidad y mantiene en verde la compilación y las pruebas.

Blog

Los modelos de frontera encontraron las vulnerabilidades. Solo el atacante encontró las cadenas.

El análisis estático encontró las fallas, pero solo las pruebas de ataque en vivo demostraron cómo podían encadenarse para provocar brechas. Una comparación de Evo COS, Claude Security y Claude Code Security.