Fruit du travail des chercheurs de l’université Cornell à New-York et des laboratoires AT&T, Cyclone est un dialecte dérivé du C censé éviter la présence de bugs dans les programmes écrits en C. Comme l’affirment ses concepteurs, “les violations de sécurité qui se présentent souvent dans les programmes écrits en C ne sont pas dues à la mauvaise volonté des programmeurs : elles prennent leurs racines dans la conception du langage lui-même.” Tout du moins, dans les effets de bord du langage. Pour pallier ces effets, les concepteurs de Cyclone se sont inspirés des techniques de compilation sécurisée et de gestion de la mémoire partagée propres au langage Java pour produire un compilateur C moins permissif au niveau de l’arithmétique des pointeurs : partage de la mémoire en zone (pour éviter les buffer overflow), ramasse-miettes sécurisé, etc.
Le code finement analysé
Un nouveau type de pointeur permet à toute déclaration d’une variable de donner naissance, après compilation, à l’introduction automatique d’un test complémentaire portant essentiellement sur les limites des zones mémoire utilisées (par exemple, éviter de dépasser les limites d’un tableau). Le compilateur rend impossible les attaques de type “format string”?” qui profite de l’absence de spécification de format lors de l’affichage d’une chaîne de caractères. Enfin, Cyclone complète la phase de précompilation avec une analyse “intelligente” du code source suivie d’une étape d’ajout automatique de code. Celui-ci consiste, par exemple, dans des tests portant sur les valeurs de variables susceptibles de provoquer une erreur lors de l’exécution. Cyclone est téléchargeable gratuitement depuis les sites d’AT&T et de Cornell.
🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.