Llegamos a ustedes gracias a:



Noticias

DeepCode lleva la revisión del código alimentado por la IA a C y C++

[20/03/2020] DeepCode, el servicio en la nube que utiliza el aprendizaje automático para analizar las bases de código en busca de fallas de seguridad y potenciales errores, ahora puede analizar código C y C++.

Entrenado por el análisis de miles de proyectos de código abierto, DeepCode proporciona retroalimentación para proyectos en plataformas de alojamiento de código o repositorios locales. Los creadores de DeepCode afirman que proporciona una retroalimentación mejor y más detallada que las herramientas tradicionales de análisis de código porque analiza el código en su contexto, no solo como texto, sino como software en ejecución.

La mayoría de las vulnerabilidades encontradas en el software aparecen en bases de código C o C++. Por muy poderosos que sean los dos lenguajes, proporcionan poca o ninguna protección contra los errores de los desarrolladores, y las nuevas versiones de estos lenguajes se ven obligadas a mantener la compatibilidad con versiones anteriores y, por lo tanto, siguen siendo vulnerables.

Un ejemplo de una falla de código detectado por DeepCode.

La base de conocimientos de DeepCode sobre problemas abarca muchos problemas comunes que se encuentran en C y C++, así como en otros idiomas: problemas de estilo, fugas de recursos, problemas de asignación de memoria, problemas de manejo de fechas e incompatibilidades entre las versiones de un idioma.

En un análisis del núcleo de Linux, DeepCode encontró una serie de problemas comunes en las bases de código de C, incluyendo parámetros no saneados pasados desde argumentos de línea de comandos o variables de entorno, problemas de use-after-free issues, y comprobaciones perdidas de punteros nulos. Otros problemas en el código C son más sutiles, como la creación insegura de archivos temporales, o la posibilidad de que ciertas instrucciones puedan ser optimizadas en la compilación y no tengan el efecto deseado.

Cuando se lanzó originalmente, DeepCode soportaba Java, JavaScript, TypeScript y Python, pero había planes para C, C++ y otros lenguajes. Según la entrada del blog que anuncia el soporte de C/C++, añadir análisis de código para C y C++ llevó tres meses de trabajo, debido a las complejidades que implican las características de bajo nivel de C/C++.