
Le tableau langage C d�laiss� pour le Rust en raison de ses gages de s�curisation des logiciels prend un coup de neuf avec des d�veloppements en lien au projet Tor. L��quipe de projet envisage de remplacer sa base de code C par du Rust dans le cadre du projet Arti � une impl�mentation de l�ensemble des protocoles Tor en Rust.
Elle explique � cet effet que : � Tor est disponible pour �tre utilis�, bien �tabli et bien analys� aujourd'hui et fonctionne avec la plupart des protocoles qui s�appuient sur TCP. Les performances et l'�volutivit� de notre r�seau se sont am�lior�es au fil du temps et nous disposons d'un �cosyst�me d'outils pour contourner les diff�rents r�gimes de censure dans le monde. Mais l'impl�mentation actuelle de Tor porte les signes de son �ge. Tor est impl�ment� en C comme proxy r�seau autonome. (Cela avait du sens en 2002, lorsque les langages multiplateformes performants �taient moins courants sur le terrain). Parce que Tor est un proxy autonome, il est difficile pour les tiers de l'int�grer : nous avons un "mode biblioth�que", mais le mode biblioth�que fait juste tourner le proxy dans un ensemble s�par� de threads. Et parce que Tor est �crit en C, il est difficile d'avoir la m�me confiance dans la s�curit� de sa m�moire que ce qui serait possible avec un langage qui offre de meilleurs gages de s�curisation de la m�moire. En outre, parce que le C est peu s�r et sujet aux erreurs, notre d�veloppement n�cessite plus de temps et d'�nergie qu'il ne le devrait. �
� date, Arti est un simple proxy SOCKS. L��quipe de d�veloppement du projet travaille � �tablir une parit� avec l�impl�mentation C en termes de fonctionnalit�s. L�objectif devrait �tre atteint dans deux ans avec trois d�veloppeurs � temps plein.
Le langage C est-il adapt� � la mise sur pied d�applications s�curis�es ?
Ces derni�res ann�es, des chercheurs en s�curit� ne cessent de mettre le doigt sur ce qui serait l�une des plus grosses tares que le langage C tra�ne : les probl�mes li�s � la gestion de la m�moire � d�passements de m�moire tampon, allocations non lib�r�es, acc�s � des zones m�moire invalides ou lib�r�es, etc. D�apr�s les chiffres du dictionnaire Common Vulnerabilities and Exposure (CVE), 15,9 % des 2288 vuln�rabilit�s qui ont affect� le noyau Linux en 20 ans sont li�es � des d�passements de m�moire tampon. Ces chiffres prennent un coup de neuf avec un plus r�cent �tat des lieux des vuln�rabilit�s de l�utilitaire ligne de commande Curl utile pour r�cup�rer le contenu d'une ressource accessible par un r�seau informatique. De r�cents d�comptes font �tat de ce qu�un peu plus de la moiti� des failles de s�curit� de Curl sont la r�sultante d�erreurs de programmation en langage C. En fait, la part cumul�e de toutes les vuln�rabilit�s de s�curit� dues aux erreurs C au fil du temps (ligne bleue) �tait sous la barre des 50 % en 2012 pour repasser au-dessus en 2018. Depuis lors, elle y est demeur�e.
C�est la raison pour laquelle de plus en plus de grands acteurs de la fili�re technologique lui pr�f�rent le langage Rust de Mozilla. Dans le cadre d�une pr�sentation de la conf�rence virtuelle AllThingsOpen � mi-parcours de l�ann�e pr�c�dente, Ryan Levick � d�veloppeur qui travaille sur l�infrastructure cloud du g�ant technologique (Microsoft) � revient sur ces d�tails et coupe court : � Quels que soient les investissements que les entreprises de la fili�re du d�veloppement de logiciels peuvent mettre sur pied, le fait est que C++ [C] n�est pas par essence un langage fait pour la mise sur pied d�applications s�curis�es. � En 2019, Alex Gaynor � un ex-contributeur de l��quipe s�curit� du navigateur Firefox � �mettait un avis similaire : � Le C++ moderne ne nous sauvera pas, car il est moins s�curis� que les nouveaux langages [Rust, Swift]). �
L�une des approches envisageables est de multiplier les formations des programmeurs � l��criture d�applications s�curis�es en langage C. Une autre est de faire recours � l�analyse statique. Enfin, la piste des v�rifications lors de l�ex�cution reste valable. Mais l�ing�nieur de Microsoft est d�avis qu�aucune de ces solutions n�apporte une solution enti�re � l�absence d�orientation des langages C et C++ vers la s�curit� dans leur conception. C�est pour cet ensemble de raisons que ce dernier estime que le langage Rust est la meilleure chance offerte � l�industrie informatique pour la mise sur pied d�applications s�curis�es.
Les initiatives allant dans le sens de faire un usage plus extensif du langage se multiplient donc chez la firme de Redmond. L�une des plus r�centes et remarqu�es est Rust/WinRT � une projection du langage Rust pour les API Windows Runtime. De fa�on ramass�e, l�annonce signifie que les d�veloppeurs peuvent cr�er des composants pour Windows en utilisant Rust. En parall�le, Microsoft pilote l�effort � Safe Systems Programming Languages � au travers duquel l�entreprise apporte plus d��claircissements sur son int�r�t pour des langages de programmation comme Rust.
Les initiatives allant dans le sens de faire un usage plus extensif du langage se multiplient donc chez la firme de Redmond. L�une des plus r�centes et remarqu�es est Rust/WinRT � une projection du langage Rust pour les API Windows Runtime. De fa�on ramass�e, l�annonce signifie que les d�veloppeurs peuvent cr�er des composants pour Windows en utilisant Rust. En parall�le, Microsoft pilote l�effort � Safe Systems Programming Languages � au travers duquel l�entreprise apporte plus d��claircissements sur son int�r�t pour des langages de programmation comme Rust.
Sur cinq ann�es cons�cutives, Rust a obtenu la reconnaissance de � plus aim� � des d�veloppeurs habitu�s...
La fin de cet article est r�serv�e aux abonn�s. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer � vous proposer des publications.