Blog

Adopter le « left of left » : un code sécurisé est-il toujours un code de qualité ?

February 10, 2021
Matias Madou, Ph.D.
Bureau avec clavier, tasse de café blanche, téléphone, panneau portant l'inscription « No Bad Days » et petites plantes en pot

Une version de cet article a été publiée dans Dark Reading. Il a été mis à jour et syndiqué ici.

Lorsque je parle de sécurité aux développeurs, l'un de mes mantras est que « le seul code de qualité est un code sécurisé ». Cela reste vrai ; nous avons peut-être évité le pire lorsque des logiciels vulnérables circulaient dans les années 90, mais cela ne vaut pas le risque aujourd'hui. Beaucoup ont travaillé dur au fil des ans pour inculquer une culture de la sécurité aux développeurs et, ce faisant, ont espéré rendre la sécurité synonyme de qualité lors de l'auto-évaluation de leur code.

Après réflexion (et quelques débats avec mes pairs), il s'agit peut-être d'une simplification excessive du concept. Il est tout à fait possible de créer un code qui soit effectivement sécurisé, tout en montrant des signes de techniques de développement novices ou d'autres zones problématiques qui le rendent loin d'être idéal.

Notre industrie parle longuement de la notion de « décalage vers la gauche » (shifting left). À mon sens, tout repose sur le fait de « commencer » à gauche en permettant aux équipes d'ingénierie de partager la responsabilité de la sécurité (en tant qu'aspect de la qualité) et en leur donnant le pouvoir d'éliminer les vulnérabilités courantes au bout de leurs doigts. À la lumière de ce dilemme actuel, il semble toutefois nécessaire d'aller un peu plus loin.

Un code d'un certain niveau de qualité est par définition sécurisé, mais tout code sécurisé n'est pas nécessairement de bonne qualité. « Commencer avant le début » est-il la formule pour garantir des normes de codage purement sécurisées ?

À quoi ressemble un code sécurisé de « mauvaise qualité » ?

Examinons ce fragment de code à la loupe :

Si nous analysons ce code sous l'angle de la sécurité, ce fragment est effectivement sécurisé et ne constitue pas un point d'entrée permettant à un attaquant d'exploiter une vulnérabilité par injection SQL.

Est-ce un exemple de code de haute qualité ? Malheureusement, pas vraiment. Un simple changement de l'argument, passant d'un int(eger) à une valeur String, permet à une saisie utilisateur libre de manipuler la requête, contrairement à un nombre qui ne le permet pas. Ce changement — ou un copier-coller hasardeux de la chaîne SQL depuis un autre endroit — crée immédiatement un environnement où les vulnérabilités par injection SQL deviennent possibles, avec tous les risques qui y sont associés :

Java method getFeedbackById that retrieves feedback from database and returns a FeedbackEntity object.

Les mesures de sécurité avaient une portée très limitée ici, alors qu'un développeur plus rigoureux (ou expérimenté) aurait pu adopter une approche différente et prendre en compte les implications d'une structure d'argument inefficace. Livrer un tel code n'est pas seulement une mauvaise pratique, cela donne un mauvais exemple aux autres membres de l'équipe de développement.

Le « triple défi » du logiciel : forme, fonction, forteresse ?

Dans l'industrie du divertissement, un « triple talent » est une personne capable de jouer la comédie, de danser et de chanter avec un niveau d'excellence égal dans chaque discipline. Ce sont les personnes redoutées et enviées lors de chaque audition, les licornes d'un secteur déjà très compétitif. Chaque industrie possède sa propre version de produits et services d'exception, et le logiciel ne fait pas exception à la règle.

Si l'on considère trois éléments clés dans les applications qu'il est difficile d'équilibrer avec une qualité égale (et élevée), il s'agit peut-être de la fonctionnalité/élégance, d'une sécurité à toute épreuve et de la rentabilité, compte tenu de la vitesse de livraison requise. Ce dernier attribut est sans aucun doute un facteur déterminant dans la manière dont les deux autres options sont appliquées, et il peut être le catalyseur d'une baisse de la qualité globale au fil du temps.

Cependant, tous les logiciels doivent-ils être aussi performants que Hugh Jackman, ou pouvons-nous nous contenter de Nicolas Cage ? Disons les choses ainsi : si vous pouvez avoir Wolverine dans votre équipe, alors donnez tout ce que vous avez.

Martin Fowler a posé la question : La haute qualité vaut-elle son coût ? dans le développement logiciel, concluant que non seulement cela « en valait la peine », mais que c'était en réalité moins coûteux sur le long terme. La plupart des utilisateurs ne vont pas regarder sous le capot pour évaluer si le code est un désordre, ni si la sécurité a été traitée avec autant d'importance que le reste. Cependant, ceux qui travaillent sur les outils perdront un temps précieux à refaire du code bâclé pour ajouter de nouvelles fonctionnalités, à fouiller dans des parties majeures du projet pour comprendre ce qui se passe, ou, pire encore : à corriger une vulnérabilité renvoyée par l'équipe AppSec qui retarde la production. Prendre le temps de rendre le code à la fois sécurisé et de bonne qualité permet d'éviter bien des tourments futurs, sans parler du coût lié à la correction d'un travail mal exécuté.

Les développeurs qualifiés et conscients des enjeux de sécurité écrivent un code qui préserve leur vision créative et leur capacité à résoudre des problèmes lors de la livraison des fonctionnalités, tout en veillant à éliminer les pièges de sécurité courants que les ingénieurs peuvent contrôler à leur niveau. Un code sécurisé n'est pas très efficace s'il est isolé, et c'est pourquoi la notion de « commencer avant le début » aidera à soutenir une culture de la sécurité comme seconde nature pour les développeurs, intégrée à leur capacité à fournir des fonctionnalités incroyables avec un risque réduit.

« Commencer avant le début » est essentiel pour une expérience utilisateur sécurisée.

La sécurité est une considération de longue date dans l'expérience utilisateur des logiciels, mais elle a clairement connu un succès mitigé. Les erreurs de configuration de sécurité ont représenté 21 % des violations de données basées sur le cloud au cours de l'année écoulée, avec des erreurs de débutant comme le stockage de mots de passe en texte clair, entraînant de graves pertes de productivité, de revenus et de confiance des clients pour les entreprises concernées.

De plus, les utilisateurs sont souvent leurs propres ennemis lorsqu'il s'agit de protéger leurs données. Bien trop de personnes utilisent encore « motdepasse » comme mot de passe, ou la même combinaison pour plusieurs comptes sensibles.

Je ne connais aucun développeur qui saute de joie à l'idée de travailler sur un écran de connexion, et ce n'est pas étonnant : concevoir un parcours de sécurité à la fois robuste, fonctionnel et intuitif pour l'utilisateur, tout en minimisant les frictions, est un exercice d'équilibriste.

Ajoutez trop d'étapes complexes et de restrictions, et les utilisateurs risquent de fuir (ce qui est désastreux pour une nouvelle application) ; rendez le processus trop confus, et vous donnerez une migraine collective à votre équipe de support qui devra gérer les demandes d'accès. À l'inverse, si c'est trop simple, vous échouez sur le plan de la sécurité.

Une expérience utilisateur sécurisée réussie doit intégrer une sécurité rigoureuse dans un parcours cohérent, sans nuire à ce qui rend le logiciel attrayant. Vous pouvez certes coder une fonction de connexion sécurisée avec des exigences complexes, des CAPTCHA et des obstacles à n'en plus finir, mais si le résultat est une expérience rebutante, vous manquez votre cible.

Posez les bases de l'excellence logicielle.

En tant que développeur, je sais que la grande majorité d'entre nous est fière de son travail et souhaite bien faire. Les imprévus comme les contraintes de temps, les changements d'objectifs ou les correctifs urgents peuvent perturber le travail et mener à des erreurs, mais la réalité est que beaucoup d'ingénieurs ne sont pas mis dans les meilleures conditions pour réussir.

Le concept « left of left » place le développeur au centre et exige des organisations qu'elles s'investissent réellement dans la montée en compétences de leurs équipes. Les développeurs sensibilisés à la sécurité valent de l'or. La formation, les bons outils et le mentorat favorisent un environnement où le code est conçu avec une approche « sécurité d'abord », avec la précision nécessaire pour hisser le logiciel vers le haut.

Prêt à éveiller votre fibre du code sécurisé ? Relevez le défi.

‍

Slogan

Gouvernez le développement assisté par IA avant la mise en production

Évaluez les risques liés à l'IA, appliquez des politiques de codage sécurisé dès le commit et accélérez la livraison sécurisée tout au long de votre cycle de développement.

Réserver une démo
Bibliothèque de ressources

Explorer plus d'articles

Accédez à du contenu expert sur le codage sécurisé, la gouvernance de l'IA et la gestion des risques logiciels.

tout parcourir
Étude de cas
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

En savoir plus
Étude de cas
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

En savoir plus
Étude de cas
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Une culture de la sécurité : comment Sage a bâti son programme de champions

Découvrez comment Sage a renforcé sa sécurité grâce à une approche flexible axée sur les relations humaines, formant plus de 200 champions de la sécurité et obtenant une réduction mesurable des risques.

En savoir plus
Blog
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Mois de la sensibilisation à la cybersécurité 2026 : comprendre la sécurité de l'IA est essentiel à la défense de l'entreprise

Nous avons atteint un point où la plupart des grandes entreprises d'IA ont publiquement appelé à un ralentissement mondial du développement de l'IA afin de permettre aux garde-fous de sécurité de rattraper leur retard. Pourtant, la réalité est que de graves problèmes de sécurité se sont déjà concrétisés. Cela place d'innombrables responsables de la sécurité et équipes de direction dans une situation d'urgence, alors que les coûts financiers et les risques liés à la mise en œuvre de l'IA ne cessent de s'accumuler.

En savoir plus
Blog
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Levier 8 : Valoriser votre programme

Un programme de codage sécurisé a besoin de plus qu'un contenu de qualité pour réussir. Le levier 8 montre comment l'image de marque transforme la participation en une expérience convoitée, axée sur le statut.

En savoir plus
Blog
Libellé du filtre
Ceci est un texte à l'intérieur d'un bloc div.

Chaque employé est désormais en première ligne de la cybersécurité IA

Le paysage technologique des entreprises évolue à une vitesse que peu avaient anticipée avant qu'il ne soit trop tard. Nous avons officiellement franchi le cap du code écrit par l'humain et de l'assistance basique par copilote pour entrer dans l'ère du cycle de vie de développement agentique (ADLC). Si les agents IA autonomes promettent une efficacité sans précédent dans de multiples fonctions, ils apportent également une toute nouvelle catégorie de risques en matière de sécurité et de réglementation.

En savoir plus

Sécurisez le développement piloté par l'IA avant le déploiement

Identifiez les risques de développement, appliquez vos politiques et prévenez les vulnérabilités tout au long du cycle de vie de vos logiciels.

Réserver une démo
trust score
Aucun élément trouvé.