IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)

Vous �tes nouveau sur Developpez.com ? Cr�ez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et �tre connect� pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Cr�ez-en un en quelques instants, c'est enti�rement gratuit !

Si vous disposez d�j� d'un compte et qu'il est bien activ�, connectez-vous � l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oubli� ?
Cr�er un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Le projet Tor envisage de remplacer sa base de code C � complexe et fragile � par du Rust dans le cadre du projet Arti :
Le langage C est-il adapt� � la cr�ation d'applications s�curis�es ?

Le , par Patrick Ruiz

110PARTAGES

18  0 
Le d�veloppement du syst�me UNIX a d�but� en 1969 et son code a fait l�objet de r��criture en langage C en 1972. �a fait donc des ann�es que ce langage fait ses preuves : c�est un niveau de performances proche de celui de l�assembleur, ce, tout offrant flexibilit� et productivit�. Pourtant, de plus en plus de gros acteurs de la fili�re technologique lui pr�f�rent le Rust. Motif : le langage de Mozilla offrirait en plus de meilleurs gages pour la s�curisation des logiciels. Qu�est-ce qu�il en est ?

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.

Une erreur dans cette actualit� ? Signalez-nous-la !

Avatar de walfrat
Membre �m�rite https://www.developpez.com
Le 12/07/2021 � 12:06

�tes-vous en accord avec les griefs port�s � l'endroit du langage C en mati�re de s�curit� ? Le probl�me n'est-il pas plut�t celui de la qualit� des d�veloppeurs ?
Je vais faire mon capitaliste, le probl�me c'est la "monnaie".

Comme on parle de d�veloppement libre, ici la "monnaie" c'est le temps que peuvent consacrer les d�veloppeurs.

Oui on peut faire du C s�curis�, cependant c'est plus difficile et donc beaucoup plus consommateurs de temps ce qui ralenti le d�veloppement global pour rajouter des fonctions,...

Le but des langage r�cents, c'est pas de pouvoirs faire des trucs qui �taient impossible en C, on peut tout faire en C, c'est de le faire de fa�on plus fiable, s�curis�, et rapide, en revanche chaque langage r�cent a ses contraintes qui faisait qu'ils n'�taient pas adapt�s au syst�mes mais plus � faire des applications, contrairement au Rust qui a �t� fait pour �a depuis le d�but.
5  0 
Avatar de Uther
Expert �minent s�nior https://www.developpez.com
Le 12/07/2021 � 17:03
Citation Envoy� par 23JFK Voir le message
Ce n'est pas le langage le probl�me, mais l'usure du programmeur devant continuellement travailler sur deux fichiers distincts .h et .c
Les headers, �a fait partie du langage C. A moins que tu mettes tout dans tes fichier .c, mais �a risque de te poser assez vite des soucis.

Citation Envoy� par TotoParis Voir le message
Rust a d�sormais l�un des plus grands de l�histoire de l�informatique pour le pousser." : �a veut dire quoi en Fran�ais
C'est du fran�ais correct m�me si c'est pas parfaitement clair au premier coup d��il. Microsoft est bien l'un des plus grands de l'histoire de l'informatique, et depuis peu il pousse � l'adoption de Rust.
1  0 
Avatar de TotoParis
Membre exp�riment� https://www.developpez.com
Le 12/07/2021 � 13:55
"Rust a d�sormais l�un des plus grands de l�histoire de l�informatique pour le pousser." : �a veut dire quoi en [FONT=Verdana, Amiko, sans-serif]Fran�ais[/FONT] ?
"
De fa�on ramass�" : quel mot...C'est pas plut�t "De fa�on r�sum�e" ?
0  0 
Avatar de yahiko
R�dacteur/Mod�rateur https://www.developpez.com
Le 12/07/2021 � 16:37
Apr�s, Rust a d�sormais l�un des plus grands de l�histoire de l�informatique pour le pousser. Ce sont des ressources suppl�mentaires qui peuvent �tre allou�es � l'am�lioration et au d�veloppement du langage lui-m�me : du temps d'ing�nierie, probablement des propositions et pistes d'am�lioration. En sus, l�appui de Microsoft appara�t comme une �tiquette qualit� pour le langage de programmation.
Le langage Rust va pouvoir d�coller gr�ce � l'appui de la firme de Redmond. Celle-ci va professionnaliser la fili�re avec enfin des certifications Microsoft en Rust.
0  0 
Avatar de TotoParis
Membre exp�riment� https://www.developpez.com
Le 12/07/2021 � 14:01
Citation Envoy� par 23JFK Voir le message
Ce n'est pas le langage le probl�me, mais l'usure du programmeur devant continuellement travailler sur deux fichiers distincts .h et .c
Et aussi qu'il faut apprendre un nouveau langage, de nouvelles r�gles. C'est (un peu) comme passer du COBOL � Java : il faut en avoir les capacit�s. M�me ainsi, la courbe d'apprentissage est longue.
0  3 
Avatar de 23JFK
Inactif https://www.developpez.com
Le 12/07/2021 � 13:00
Ce n'est pas le langage le probl�me, mais l'usure du programmeur devant continuellement travailler sur deux fichiers distincts .h et .c
0  8