
D�agences de cybers�curit� qui militent pour un passage � des langages plus s�curis�s comme le Rust
Bjarne Stroustrup, cr�ateur du langage C++, appelle la communaut� C++ pour qu'elle d�fende ce langage de programmation. Ce dernier est sous le feu des critiques des agences de cybers�curit� et des experts techniques ces derni�res ann�es en raison de ses lacunes en mati�re de s�curit� de la m�moire. L�initiative du cr�ateur du langage C++ se fait dans un contexte d�urgence �tant donn� l�appel du CISA � l�abandon du C++ d�ici � 2026.
� Il ne s'agit manifestement pas d'une note technique traditionnelle proposant un nouveau langage ou une nouvelle fonctionnalit� de biblioth�que. Il s'agit d'un appel � une action urgente, en partie en r�ponse � des attaques graves et sans pr�c�dent contre le C++. Je pense que le WG21 doit faire quelque chose de significatif et �tre per�u comme tel. Profiles est un cadre qui peut le faire �, d�clare-t-il dans le cadre de la pr�sentation de nouvelles lignes directrices pour la s�curit� des ressources et des types.
� Comme je l'ai d�j� dit, il s'agit �galement d'une opportunit� car la s�curit� des types et la s�curit� des ressources (y compris la s�curit� de la m�moire) ont �t� des objectifs cl�s du C++ depuis le tout d�but �, ajoute-t-il.
Bjarne Stroustrup, cr�ateur du C++, appelle la communaut� � d�fendre le langage face aux critiques croissantes sur sa s�curit� m�moire. Depuis plusieurs ann�es, les experts en cybers�curit� et les agences gouvernementales privil�gient des alternatives comme Rust, Go ou Swift,� pic.twitter.com/musoZoUN3y
— Bruno Guglielminetti | Mon Carnet (@Guglielminetti) March 2, 2025
Certains acteurs de la fili�re du d�veloppement de logiciels sont d�avis qu�il faut arr�ter d�initier de nouveaux projets en C++ et passer au Rust
Mark Russinovich de Microsoft recommande le langage Rust plut�t que le C ou C++. Les raisons : la parit� en termes de vitesse d�ex�cution en comparaison avec le C ; la s�curisation et la fiabilit� du Rust en comparaison avec C ou C++. C�est en droite ligne avec cet �tat de choses que l��diteur de RisingWave a abandonn� son projet de SGBD cloud natif initialement d�velopp� en C++ pour le r��crire en Rust.
� Rust garantit la s�curisation de la m�moire et des threads au moment de la compilation en introduisant des r�gles de propri�t�. Il va au-del� du RAII, un m�canisme de gestion de la m�moire couramment utilis� en C++. Il pr�sente deux avantages. Le premier est �vident : une fois que le compilateur Rust a valid� notre programme, nous n'aurons pas de d�fauts de segmentation ou de conditions de concurrence lors de l'ex�cution, ce qui n�cessiterait des dizaines d'heures de d�bogage, en particulier dans une base de code hautement concurrente et principalement asynchrone. La seconde est plus subtile : le compilateur Rust restreint simplement les types de fautes, ce qui r�duit les fragments de code �troitement imbriqu�s qui peuvent causer un tel comportement bogu�. La r�plication des bogues est consid�rablement am�lior�e avec l'aide de l'ex�cution d�terministe �, explique-t-il.
Linus Torvalds est d�avis que Rust est une solution d�avenir pour le noyau Linux mais certains intervenants pensent le choix de Rust est une erreur et que C++ moderne est une meilleure alternative
Il consid�re la prise en charge de Rust pour le d�veloppement du noyau Linux comme une � une �tape importante vers la capacit� d'�crire les pilotes dans un langage plus s�r. � Rust de Mozilla Research est le type de langage de programmation auquel ceux qui �crivent du code pour des syst�mes d�entr�e/sortie de base (BIOS), des chargeurs d�amorce, des syst�mes d�exploitation, etc. portent un int�r�t. D�avis d�observateurs avertis, c�est le futur de la programmation syst�me en lieu et place du langage C. En effet, des experts sont d�avis qu�il offre de meilleures garanties de s�curisation des logiciels que le couple C/C++. Chez AWS on pr�cise que choisir Rust pour ses projets de d�veloppement c�est ajouter l�efficacit� �nerg�tique et la performance d�ex�cution du C � l�atout s�curit�.
En effet, il y a une liste de griefs qui reviennent � l�encontre du langage C : 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.
De plus, certains benchmarks sugg�rent que les applications Rust sont plus rapides que leurs �quivalents en langage C. Et c�est justement pour ces atouts que sont la parit� en termes de vitesse d�ex�cution en comparaison avec le C, mais surtout pour la s�curisation et la fiabilit� que de plus en plus d�acteurs de la fili�re du d�veloppement informatique recommandent le Rust plut�t que le C ou le C++.
Ainsi, en adoptant Rust, la communaut� autour du noyau Linux devrait mettre � profit ces atouts du langage sur le C. Et elle devrait faire d�une pierre deux coups �tant donn� que Rust peut faciliter l�arriv�e de nouveaux contributeurs. C�est en tout cas ce que laisse entrevoir une �tude de l�universit� de Waterloo.
N�anmoins, certains intervenants comme le d�veloppeur Peter Anvin sont d�avis que C++ moderne est une meilleure alternative que Rust pour le d�veloppement du noyau Linux :
� Maintenant, "pourquoi pas Rust" ? Tout d'abord, Rust utilise une syntaxe diff�rente (souvent, � mon avis, gratuitement), et non seulement tous les d�veloppeurs du noyau devraient se familiariser intimement avec la syntaxe afin d'obtenir le m�me type de "feeling" que nous avons pour le C, mais convertir du code C en Rust n'est pas quelque chose qui ne peut �tre fait par les d�veloppeurs du noyau qu'au coup par coup, alors qu'avec quelques nettoyages le code C existant peut �tre compil� en C++.
Cependant, je ne suis pas d'accord avec certaines des conclusions de David. en fait, je crois que David est inutilement pessimiste, du moins en ce qui concerne le C++ moderne.
Notez que personne de sain d'esprit ne s'attend � utiliser toutes les fonctionnalit�s de C++. Tout comme nous avons le "kernel C" (actuellement un sous-ensemble de C11 avec un avec un ensemble relativement large d'extensions sp�cifiques au compilateur), nous aurions le "noyau C++", que je sugg�re d'�tre un sous-ensemble strictement d�fini de de C++20, combin� � un ensemble similaire d'extensions de compilateur). Je me rends compte que que la prise en charge du C++20 par les compilateurs est encore tr�s r�cente pour des raisons �videntes, de sorte qu'au moins une partie de ce qui pr�c�de est tourn�e vers l'avenir. �
Avec l�introduction des extensions Safe C++, le C++ se positionne pour rester pertinent et comp�titif face aux nouveaux langages de programmation. Cette �volution devrait permettre au C++ de s�adapter et �voluer pour r�pondre aux besoins modernes de s�curit� et de fiabilit� des logiciels. Les extensions Safe C++ repr�sentent une avanc�e majeure pour un langage qui continue de jouer un r�le crucial dans le monde de la programmation.
Source : Bjarne
Et vous ?


Voir aussi :




Vous avez lu gratuitement 0 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer � vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer � vous proposer des publications.