Jump to section

Les approches Shift Left et Shift Right

Copier l'URL

La réalisation de tests à chaque étape du cycle de développement logiciel est essentielle pour répondre aux attentes des utilisateurs, aux exigences fonctionnelles et aux mesures de sécurité. L'approche Shift Left, ou glissement vers la gauche, vise à intégrer des tests de sécurité le plus tôt possible afin de détecter les vulnérabilités et de corriger les défauts de manière précoce dans le cycle de développement. Quant à l'approche Shift Right, ou glissement vers la droite, elle a pour but de surveiller des indicateurs de mesure du comportement des utilisateurs, de l'utilisation, des performances et de la sécurité lors de la production afin de s'assurer de l'opérabilité du logiciel.

Ces deux approches ont pour objectif commun d'évaluer et d'assurer la qualité et les performances des nouveaux produits et fonctions tout au long du processus DevOps et du cycle de développement logiciel par le biais de méthodes de tests continus. Elles reposent sur le principe agile qui consiste à limiter les défaillances et à les corriger rapidement. Autrement dit, il s'agit de détecter les erreurs potentielles avant qu'elles se transforment en problèmes majeurs.

Pour comprendre le Shift Left et le Shift Right, il faut d'abord se représenter le cycle de développement logiciel sous la forme d'une ligne qui va de la gauche vers la droite. La moitié gauche de la ligne correspond aux étapes de codage et de création, tandis que la partie droite correspond à l'étape de production, qui se rapporte au déploiement et à la surveillance du logiciel.

Auparavant, l'étape de test de la sécurité du logiciel se déroulait vers le milieu du cycle de développement logiciel, juste avant la mise en production. Plus les tests sont effectués tardivement dans le cycle, plus il y a de risques que les failles du logiciel passent inaperçues. Lorsqu'une vulnérabilité est finalement détectée, les équipes sont alors confrontées à un travail de correction coûteux et complexe, nécessaire pour isoler et corriger les défauts qui auront été compilés dans l'application jusqu'à ce moment.

Les entreprises ont fini par prendre conscience qu'une détection précoce des goulets d'étranglement était synonyme de failles et d'erreurs moins coûteuses, de ressources préservées et d'un produit fini de plus grande qualité. C'est dans ce contexte qu'est né le concept de l'intégration en amont de la sécurité, désormais essentiel au développement moderne de logiciels.

Les équipes de développement ne sont pas des spécialistes de la sécurité, et n'ont pas pour vocation de l'être. Elles peuvent avoir des difficultés à suivre la cadence de lancement des versions, surtout lorsqu'elles sont chargées de corriger ou modifier du code écrit par d'autres développeurs qui auraient pu introduire une grave vulnérabilité par accident.

Plus une architecture logicielle est complexe, étendue et décentralisée, plus il est difficile de surveiller et gérer la sécurité efficacement dans toute l'entreprise. Les méthodes modernes de distribution des logiciels qui reposent sur des déploiements continus dans des environnements hybrides nécessitent d'adopter une nouvelle approche de la sécurité. Celle-ci doit intégrer des mécanismes de sécurité à un stade précoce du processus de développement ainsi que des mesures de sécurité automatisées à chaque étape, et transformer la sécurité en atout pour l'entreprise.

Le Shift Left permet aux équipes de développement de renforcer la sécurité de leurs applications de manière proactive en identifiant et en corrigeant les défauts avant qu'ils ne progressent trop dans le pipeline. Cette stratégie implique d'intégrer des pratiques et des tests de sécurité le plus tôt possible dans le processus de développement, au lieu de considérer la sécurité comme secondaire. Le Shift Left est étroitement lié à l'essor du DevSecOps, qui prône l'intégration précoce et continue de la sécurité. 

Les incidents de sécurité peuvent survenir pendant les phases de création, de déploiement et d'exécution. La mise en œuvre de pratiques DevSecOps automatisées dans le cadre d'une approche Shift Left permet aux équipes de développement de mettre en place facilement des mécanismes de sécurité, pour réduire le risque d'erreurs des utilisateurs lors des étapes de création et de déploiement ainsi que pour protéger les charges de travail pendant l'exécution.

Voici les principales techniques de tests Shift Left :

  • Tests statiques de la sécurité des applications (SAST) : tests qui permettent d'analyser la source, le bytecode ou le code binaire d'une application pour identifier les vulnérabilités.
  • Tests dynamiques de la sécurité des applications (DAST) : méthode de test en boîte noire qui sert à détecter les failles potentielles de sécurité en soumettant une cible en cours d'exécution à une analyse de sécurité automatisée.
  • Modélisation des menaces : processus qui vise à réfléchir à chaque décision prise dans un système donné et à extrapoler les effets de celle-ci sur le profil de sécurité du système, dans l'immédiat ou à l'avenir.
  • Examen de la sécurité de l'architecture : processus qui consiste à identifier, évaluer et réduire les risques pour renforcer les mesures de sécurité d'une entreprise contre les menaces et les risques actuels et émergents.
  • Analyse des images de conteneurs : technique qui permet d'examiner chaque couche d'une image de conteneur afin de détecter les menaces potentielles pour la sécurité.
  • Signature de code : méthode qui vise à appliquer une signature numérique à un logiciel, un fichier ou une mise à jour logicielle pour permettre d'en vérifier l'authenticité et l'intégrité lors de l'installation et de l'exécution. 

L'approche Shift Left vise à détecter et corriger les vulnérabilités le plus tôt possible lors du codage. Non seulement cette approche renforce la sécurité, mais elle améliore aussi l'expérience utilisateur et les fonctionnalités du logiciel grâce à une distribution plus rapide et fréquente ainsi qu'à une qualité supérieure. De plus, le Shift Left augmente l'efficacité du développement et réduit les frais généraux, car les bogues sont détectés et corrigés plus tôt dans le cycle de développement. 

Face à des vecteurs de menace toujours plus sophistiqués et à des surfaces d'attaque de plus en plus étendues, les entreprises ont pris conscience que la réalisation de tests Shift Left pendant la phase de création ne pouvait suffire à les protéger contre des menaces en constante évolution.

Cette situation a fait émerger l'approche complémentaire du Shift Right. Celle-ci consiste à continuer les processus de test, d'assurance qualité et d'évaluation des performances dans l'environnement de post-production. 

Pour mettre en œuvre les tests Shift Right, les équipes de développement réalisent des expériences contrôlées vers la fin du cycle de développement d'un logiciel afin d'examiner son fonctionnement, ses performances, sa tolérance aux pannes et l'expérience utilisateur.

Voici les principales techniques de tests Shift Right pour les contrôles clés et la visibilité en temps réel :

  • Gestion des informations et des événements de sécurité (SIEM) : processus qui permet de détecter, d'analyser et de traiter les menaces.
  • Orchestration, automatisation et réponse aux incidents de sécurité informatique (SOAR) : processus qui permet de coordonner, d'exécuter et d'automatiser les tâches entre différentes personnes et outils pour soulager les équipes informatiques.
  • Déploiement canary : technique qui permet de soumettre une nouvelle fonctionnalité à un petit groupe d'utilisateurs avant de la proposer à toute la base d'utilisateurs.
  • Anneaux de déploiement : technique qui permet de déployer et valider des modifications d'une extension en production tout en limitant leurs effets sur les utilisateurs.
  • Tests A/B : méthode qui vise à tester une hypothèse via la création d'un groupe de contrôle et l'introduction de divers scénarios, fonctionnalités, apparences et autres éléments, puis l'évaluation des réactions par rapport aux réactions attendues.
  • Tests par injection de fautes : technique qui introduit intentionnellement des pannes dans le système afin de le tester.
  • Tests de sécurité des API : technique qui permet de suivre le trafic entrant et les appels sortants pour comprendre et détecter les incidents de sécurité.La plateforme de Service Mesh Istio fournit un canal de communication sous-jacent et facilite la gestion de l'authentification, de l'autorisation et du chiffrement des communications entre les services à grande échelle.
  • Ingénierie du chaos : méthode qui vise à provoquer des pannes pour tester la résilience d'un système.
  • Déploiement bleu/vert : modèle de publication d'application qui permet de transférer progressivement le trafic utilisateur depuis la version antérieure d'une application vers une nouvelle version pratiquement identique, ces deux versions s'exécutant en même temps dans l'environnement de production. 

En observant le comportement du logiciel dans des environnements réels, les équipes peuvent détecter les menaces de sécurité de manière proactive lors de l'exécution et s'assurer que les applications fonctionnent comme prévu. Les tests Shift Right permettent d'obtenir des retours d'expérience d'utilisateurs en temps réel et en continu, et d'analyser les problèmes qui n'auraient pas été anticipés. 

Avec l'adoption croissante d'architectures cloud-native et la modernisation des applications pour intégrer des technologies telles que les microservices et les conteneurs, il est recommandé d'associer les approches Shift Left et Shift Right. En permettant à vos équipes d'exécuter des tests de bout en bout à toutes les étapes du cycle de développement logiciel, votre entreprise atteindra plus facilement son objectif ultime : l'intégration et la distribution continues (CI/CD).

L'adoption des méthodes Shift Left et Shift Right offre de nombreux avantages, notamment une augmentation de l'efficacité et de la qualité des produits, un renforcement de la sécurité, une réduction du délai de mise sur le marché et une amélioration de la satisfaction des utilisateurs. Par ailleurs, les entreprises constatent que le coût relatif associé à la correction des bogues, en fonction du moment de détection, augmente avec le temps. Autrement dit, plus on attend pour corriger un problème, plus il y a de risques qu'il soit coûteux. Par conséquent, la réalisation de tests Shift Left en prévention pourra probablement influer sur leurs résultats financiers. 

Pour protéger votre chaîne d'approvisionnement des logiciels, vous devez adopter une approche pluridimensionnelle. Chaque mesure que vous prendrez pour renforcer la sécurité de votre chaîne d'approvisionnement des logiciels viendra ajouter un niveau de protection supplémentaire pour votre entreprise et vos clients.

Pour intégrer les principes du Shift Left et du Shift Right dans le cycle de développement logiciel de votre entreprise, commencez par mettre en place une nomenclature logicielle, qui désigne un inventaire imbriqué de toutes les sources et dépendances (code source, logiciels et bibliothèques Open Source, solutions de middleware, frameworks de développement) constituant un artéfact.

Vous pourrez ensuite mettre en œuvre les tests automatisés pour recueillir des données et des analyses tout au long du pipeline de développement et de déploiement logiciel. La réalisation de tests continus à chaque étape du cycle de développement est le meilleur moyen de surveiller les performances de vos logiciels et d'identifier les causes profondes.

Peut-être plus important encore, veillez à la bonne collaboration et communication entre les équipes afin d'identifier les problèmes au sein de chacune d'entre elles et d'identifier les outils adaptés à leurs tâches. 

Dans un paysage technologique qui ne cesse d'évoluer, les entreprises envisagent de plus en plus la conteneurisation pour renforcer l'évolutivité, la portabilité et l'efficacité des déploiements de leurs applications. Si la conteneurisation présente des avantages, elle est aussi synonyme de défis liés à la sécurisation qu'il faut relever pour améliorer la sécurité, la confidentialité et l'accessibilité des applications conteneurisées. À mesure que l'utilisation d'applications cloud-native se développe, il devient de plus en plus essentiel de renforcer la posture de sécurité des conteneurs et de Kubernetes.

Chez Red Hat, nous investissons considérablement dans la maintenance des logiciels Open Source pendant toute la durée de vie de nos produits. Les logiciels que nous distribuons font l'objet d'une prise en charge et bénéficient de correctifs pour les problèmes majeurs touchant notamment à la sécurité.

L'offre Red Hat Trusted Software Supply Chain aide les entreprises à intégrer la sécurité dès le début du cycle de développement logiciel. En optant pour un logiciel de sécurité adapté, elles se protègent contre les risques et les vulnérabilités qui affectent les systèmes de leur chaîne d'approvisionnement. Sans une protection adaptée, elles risquent de perdre la confiance de leurs utilisateurs, de leurs clients et d'autres parties prenantes. Avec l'offre Red Hat Trusted Software Supply Chain, les entreprises peuvent coder, créer et surveiller leurs logiciels à l'aide de plateformes et de contenus fiables ainsi que d'outils d'analyse et de correction en temps réel.

La plateforme Red Hat OpenShift® promeut l'approche Shift Left en automatisant les pratiques DevSecOps et en intégrant la sécurité plus tôt dans le cycle de développement. Cette solution offre des outils de développement prêts à l'emploi ainsi que des capacités CI/CD, et met l'accent sur la sécurité pour assurer l'efficacité et la sécurisation de la chaîne d'approvisionnement. Plateforme d'applications basée sur Kubernetes, elle aide les entreprises à créer, déployer, exécuter, gérer et sécuriser des applications novatrices à grande échelle.

La solution Red Hat Advanced Cluster Security for Kubernetes intègre la sécurité en amont et automatise les meilleures pratiques DevSecOps. Cette plateforme fonctionne avec tous les environnements Kubernetes et s'intègre aux processus DevOps et aux outils de sécurité pour permettre aux équipes d'exploiter et de mieux sécuriser leur chaîne d'approvisionnement, leur infrastructure et leurs charges de travail.

La solution Red Hat Ansible Automation Platform offre une base cohérente pour développer et gérer l'automatisation à grande échelle, tout en renforçant la sécurité à chaque étape du cycle de développement logiciel. Elle permet aux équipes d'automatiser les processus de sécurité et conformité dans toute l'entreprise, et d'utiliser des contenus d'automatisation certifiés pour lutter contre les menaces de manière coordonnée. Et nous sommes disponibles 24 h/24, 7 j/7 pour les y aider. Red Hat Ansible est compatible avec diverses solutions de sécurité prises en charge par nos équipes et nos partenaires technologiques spécialistes de la sécurité.

Pour aller plus loin

ARTICLE

Le DevSecOps, qu'est-ce que c'est ?

Si vous souhaitez tirer pleinement parti de l'agilité et de la réactivité d'une approche DevOps, vous devez également intégrer la sécurité informatique au cycle de vie complet de vos applications.

ARTICLE

L'approche CI/CD, qu'est-ce que c'est ?

L'approche CI/CD garantit une automatisation et une surveillance continues tout au long du cycle de vie des applications, des phases d'intégration et de test jusqu'à la distribution et au déploiement.

ARTICLE

Un ingénieur DevOps, qu'est-ce que c'est ?

Un ingénieur DevOps possède un ensemble unique de compétences et de connaissances qui favorisent la collaboration, l'innovation et le changement culturel au sein d'une entreprise.  

En savoir plus sur le DevOps

Produits

Stage intensif et spécialisé auprès d'experts Red Hat ayant pour objectif de vous former à l'utilisation d'une méthode agile et d'outils Open Source en vue de résoudre les problèmes métier de votre entreprise.

Contrats avec des conseillers stratégiques qui prennent en considération tous les tenants et les aboutissants de votre entreprise, analysent les défis auxquels vous êtes confrontés et vous aident à les relever avec des solutions complètes et économiques.

Ressources