• 10 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 15/03/2023

Appliquez le cycle de vie du développement logiciel sécurisé

Les logiciels de production sont généralement créés en utilisant le cycle de vie de développement logiciel (SDLC ou Software Development Lifecycle en anglais). Il est possible de tenir compte des vulnérabilités pendant ce cycle de vie. Voyons comment faire dans ce chapitre.

Découvrez si le cycle de vie du développement logiciel (SDLC) est adéquat 

Le cycle de vie du développement logiciel commence généralement par les phases de collecte des exigences, de conception, de mise en œuvre, d’essais et de diffusion (évolution). Ce cycle de base ne tient pas compte des vulnérabilités. Les pratiques de codage sécurisé que nous avons apprises dans ce cours ne font étonnamment pas partie du cycle de vie moyen de développement d’un logiciel. La sécurité n’est en effet pas une priorité dans la plupart des cycles de développement logiciel. Il n’est donc pas surprenant que 80 % des applications web en production aujourd’hui soient vulnérables aux attaques courantes !

Découvrez comment est gérée la sécurité dans un cycle de vie logiciel traditionnel

Dans un cycle de vie classique, la sécurité n’est pas prise en compte dès le début de l’élaboration de l’application.

Alors que se passe-t-il lorsque des vulnérabilités apparaissent lors des tests ?

Les problèmes sont renvoyés à l’équipe de développement. Mais la reconception et le développement d’un grand nombre de fonctionnalités de base peuvent s’avérer coûteux.

Que se passe-t-il lorsque des vulnérabilités apparaissent après la sortie du logiciel ?

Puisqu’il est déjà en production, vous ne pouvez pas revenir en arrière et réparer le code original. Alors, vous devez créer un patch et espérer que les clients l’appliqueront.

Ajoutez la sécurité au cycle de vie du développement logiciel

De nombreuses organisations, dont l’OWASP, ont proposé un cycle de vie intégré de la sécurité (SDLC) ou un cycle de vie de développement logiciel sécurisé (SSDLC). Il y a encore beaucoup de débats à ce sujet ; cependant, dans la production d’applications web à grande échelle, la sécurité sera très probablement intégrée dans le modèle SDLC déjà utilisé par les entreprises.

Comprenez le cycle de vie du développement logiciel

Le cycle comprend 7 étapes : l'analyse du besoin, la conception, la planification, le développement, les tests, le déploiement et la maintenance.
Le cycle de vie du développement logiciel

Le cycle de vie du développement logiciel est composé de sept phases :

  • L’analyse/la définition du besoin : Quels sont les problèmes ou les besoins auxquels le projet devra répondre ?

  • La conception : La conception peut être vue comme la réponse à la question suivante : “Comment pouvons-nous obtenir ce dont nous avons besoin ?”

  • La planification : La planification va entre autres déterminer le coût et les ressources nécessaires pour que le projet aboutisse. Les risques y seront aussi détaillés, et des solutions pour les éviter seront définies.

  • Le développement : La phase de développement devra répondre aux problématiques définies dans l’analyse/la définition du besoin, en prenant en compte les contraintes énoncées dans la phase de conception, pour pouvoir fournir une implémentation sécurisée et fonctionnelle.

  • Les tests : Des méthodes de développement comme le TDD (Test Driven Development) peuvent être mis en place pour guider les développeurs dans l’implémentation d’une solution fiable et répondant à la demande. Les tests unitaires, d’intégration et fonctionnels devront être décrits et implémentés.

  • Le déploiement : La mise à disposition de l’application aux utilisateurs, en prenant en compte les différentes problématiques de sécurité et de droits.

  • La maintenance : Bien que les phases de tests soient là pour fiabiliser le développement, l’application n’est pas à l’abri de problèmes qu’il faudra résoudre. La mise en place de processus (ex : ITIL) pourra aider dans cette phase.

Chaque acteur, qu’il soit développeur ou DSI, a son rôle à jouer dans les différentes phases du cycle de vie du développement logiciel.

Le SDLC n’est pas uniquement une méthodologie orientée sécurité du système d’information, mais une méthodologie de gestion de projet complète, comme pourrait l’être une méthodologie en cascade, un cycle en V ou une méthodologie agile.

Ici nous allons nous focaliser sur les éléments de sécurité à prendre en compte dans cette méthodologie.

En tant que DSI, chef de projet, Product Owner ou même acheteur pour une structure, vous allez devoir être en mesure de fiabiliser les étapes d’analyse/définition du besoin, de planification, de conception, mais aussi piloter les phases de déploiement ou de maintenance.

Si vous êtes développeur, vous serez probablement plus focalisé sur les étapes liées à la conception éventuellement, mais surtout les phases de développement, de tests et de maintenance. Votre investissement au niveau de la phase de déploiement sera potentiellement important aussi, en fonction des structures et des projets.

Dans ce cours, nous avons vu comment intégrer la sécurité dans les phases de conception et de mise en œuvre du cycle de vie.

En résumé

  • Le cycle SDLC est utilisé par les organisations qui ont de grands projets logiciels.

  • Traditionnellement, il n’inclut pas le développement sécurisé comme partie intégrante du processus.

  • Le fait de ne pas assurer la sécurité dans le cycle SDLC entraîne une augmentation du temps et de l’argent consacrés à la correction du code non sécurisé.

  • Utilisez SSDLC pour ajouter la sensibilisation à la sécurité dans chaque phase du SDLC.

Vous êtes presque arrivé à la fin de ce cours ! Dans le chapitre suivant, je vous propose de tester la sécurité de votre application web.

Et si vous obteniez un diplôme OpenClassrooms ?
  • Formations jusqu’à 100 % financées
  • Date de début flexible
  • Projets professionnalisants
  • Mentorat individuel
Trouvez la formation et le financement faits pour vous
Exemple de certificat de réussite
Exemple de certificat de réussite