C++ 2 min de lecture

Il était évident que le C++ serait accusé pour la panne géante de CrowdStrike

Share this article
Il était évident que le C++ serait accusé pour la panne géante de CrowdStrike

Vendredi dernier, banques, aéroports, chaînes de télévision, organismes de santé, hôtels et de nombreuses autres entreprises ont subi des pannes informatiques massives, clouant des vols au sol et provoquant d’importantes perturbations, des machines Windows rencontrant des erreurs dans le monde entier. Et nous avions écrit un billet expliquant qu’on allait bientôt en accuser le C++, et c’est exactement ce qui se passe, comme on peut le voir ici.

L’une des principales raisons pour lesquelles nous rencontrons des problèmes graves impliquant le C++ est que, de par sa puissance, il est largement utilisé dans les systèmes critiques. Dans ces systèmes critiques, un seul bug peut mener au désastre.

Supposons que tous les systèmes critiques soient développés en Java ou C#. Ces systèmes seraient-ils nécessairement sûrs ? La réponse, comme Herb Sutter l’a expliqué dans ce billet détaillé, est non.

Mais il y a aussi eu des idées fausses, notamment le fait de se concentrer trop étroitement sur la sécurité des langages de programmation comme problème principal de sécurité et de sûreté de notre industrie — ce n’en est pas un. Beaucoup des failles de sécurité récentes les plus dommageables concernaient du code écrit dans des langages à sécurité mémoire (par exemple Log4j) ou n’avaient rien à voir avec les langages de programmation (par exemple les secrets Kubernetes stockés dans des dépôts GitHub publics).

Comme l’a souligné Herb Sutter, la plupart des 10 faiblesses logicielles les plus dangereuses de 2023 n’étaient pas liées à la sécurité mémoire.

La plupart des 10 « faiblesses logicielles les plus dangereuses » de 2023 n’étaient pas liées à la sécurité mémoire. Beaucoup des plus grosses fuites de données, cyberattaques et cybercriminalités de 2023 n’avaient rien à voir avec les langages de programmation.

Accuser le C++ de la prévalence des bugs logiciels est une vision simpliste qui ignore le contexte plus large du développement logiciel. Si le C++ offre un haut degré de contrôle et de performance, il exige un usage soigneux et compétent pour éviter les pièges. On peut en dire autant de tout langage de programmation, chacun ayant ses propres défis et problèmes potentiels.

En fin de compte, la responsabilité de la qualité logicielle incombe aux développeurs, aux testeurs et au processus de développement lui-même. Mettre l’accent sur une formation adéquate, des tests rigoureux et le respect des bonnes pratiques permet d’atténuer la plupart des risques associés à tout langage de programmation, y compris le C++. Plutôt que de diaboliser un outil, concentrons-nous sur l’amélioration de la façon dont nous l’utilisons pour créer des logiciels fiables, sûrs et efficaces.

Share this article