DeepCode apporte la révision de code basée sur l'IA en C et C ++

DeepCode, le service cloud qui utilise l'apprentissage automatique pour analyser les bases de code à la recherche de failles de sécurité et de bogues potentiels, peut désormais analyser le code C et C ++.

Formé en analysant des milliers de projets open source, DeepCode fournit des commentaires pour des projets dans des plates-formes d'hébergement de code ou des référentiels locaux. Les créateurs de DeepCode affirment qu'il fournit des commentaires meilleurs et plus détaillés que les outils d'analyse de code traditionnels, car il analyse le code en contexte, pas seulement sous forme de texte, mais en tant que logiciel en cours d'exécution.

La plupart des vulnérabilités trouvées dans les logiciels se retrouvent dans les bases de code C ou C ++. Aussi puissants que soient les deux langages, ils offrent peu ou pas de protection contre les erreurs des développeurs, et les nouvelles versions de ces langages sont obligées de conserver une compatibilité descendante et restent donc vulnérables. 

La base de connaissances des problèmes de DeepCode englobe de nombreux problèmes courants rencontrés en C et C ++ ainsi que dans d'autres langages: problèmes de style, fuites de ressources, problèmes d'allocation de mémoire, problèmes de gestion de la date et incompatibilités entre les versions d'un langage.

Dans une analyse du noyau Linux, DeepCode a trouvé un certain nombre de problèmes courants dans les bases de code C, notamment des paramètres non analysés transmis à partir d'arguments de ligne de commande ou de variables d'environnement, des problèmes d'utilisation après la libération et des vérifications manquantes pour les pointeurs nuls. D'autres problèmes dans le code C sont plus subtils, comme la création non sécurisée de fichiers temporaires ou la possibilité que certaines instructions soient optimisées lors de la compilation et n'aient pas l'effet escompté.

Lors de son lancement initial, DeepCode prenait en charge Java, JavaScript, TypeScript et Python, mais des plans étaient sur la table pour C, C ++ et d'autres langages. Selon le billet de blog annonçant la prise en charge de C / C ++, l'ajout d'une analyse de code pour C et C ++ a nécessité trois mois de travail, en raison de la complexité des fonctionnalités de bas niveau de C / C ++.