Passer au contenu

Cyclone, un langage C sécurisé

Un groupe de chercheurs de la Cornell University et des laboratoires AT&T ont développé une variante sécurisée du langage C. Baptisée Cyclone, elle corrige les défauts de gestion de mémoire du C.

Cyclone est un langage de programmation similaire au C mais plus sûr car il corrige les défauts inhérents à ce dernier. Ainsi, l’arithmétique des pointeurs en langage C est très libérale et entraîne de fréquentes erreurs de la part des développeurs comme le dépassement des limites d’un tableau, par exemple.En fait, la plupart des dépassements de mémoire tampon (buffer overflow) sont dus à la gestion de la mémoire en C. Ces erreurs de programmation peuvent avoir des conséquences dangereuses en termes de sécurité : elles sont en mesure de permettre l’accès au statut racine (root) d’un système, d’entraîner le plantage d’une application ou encore de faciliter l’installation par des pirates d’outils d’attaque par déni de service.Les chercheurs de la Cornell University et d’AT&T ont donc modifié l’arithmétique des pointeurs du C et sécurisé certaines fonctions du langage. Ainsi, les pointeurs de Cyclone contiennent des informations de limites pour éviter d’écrire dans de mauvaises zones de mémoire. La gestion des chaînes de caractères a été également améliorée afin d’éviter l’effacement du caractère de fin de chaîne NUL, par exemple.

Le C indispensable aux programmeurs système

Pourquoi s’obstiner à sécuriser le langage C alors que d’autres langages comme Java ou ML sont plus sûrs ? “Ces langages n’ont pas les avantages du C : une gestion de mémoire plus explicite et un meilleur contrôle sur les données de bas niveau, expliquent les chercheurs sur leur site Web. Ces caractéristiques rendent le C unique, efficace, et indispensable aux programmeurs système”, concluent-ils.Le compilateur Cyclone opère une analyse statique du code source et insère du code de test aux endroits où le programme ne semble pas sûr avant de le compiler. Il peut bien sûr refuser de compiler un programme qui lui semblerait trop… laxiste. Ce compilateur et la plupart des outils fournis avec sont sous licence GPL. Les librairies sont quant à elles principalement sous licence LGPL.Les améliorations futures de Cyclone porteront sur la gestion de la mémoire : “Les programmeurs C utilisent une grande variété de stratégies de gestion de mémoire. Mais, pour l’instant, Cyclone ne supporte que le ramasse-miettes (garbage collection) et larena memory management “, concèdent les chercheurs.Cyclone est téléchargeable gratuitement (archive tar.gz) et fonctionne sur les achitectures Linux et Windows (en utilisant Cygwin?” un environnement Unix sous Windows ?”, version 1.3.3) à base de processeurs x86. Une documentation expliquant le fonctionnement du langage est également disponible.

🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.


Antonin Billet