Maintenant que vous avez découvert le Top 10 de l’OWASP, vous devriez mieux comprendre le sujet et j’espère y voir un peu plus clair sur vos besoins en sécurité sur vos applications web.
Appliquer le Top 10 est vraiment la première étape à réaliser. Ensuite, pour aller plus loin dans votre démarche de sécurisation, je vous propose d’investir dans une approche proactive, d’amélioration continue : le SSDLC (Secure Software Development Life Cycle ou cycle de vie du développement logiciel sécurisé).
Pour cela, on va s’appuyer sur le cycle de vie du développement logiciel (SDLC en anglais), qui vous permet de vous questionner à chaque étape du cycle sur la sécurité de vos applications web.
Et vous souvenez-vous des ressources complémentaires de l’OWASP aux acronymes barbares que je vous ai cités au début de ce cours ? ASVS, WTSG… Et bien, c’est le moment de les aborder aussi ici ! Vous aurez ainsi toutes les ressources clés pour sécuriser vos applications web.
Découvrez le cycle de vie du développement logiciel
Commençons par résumer le cycle de vie classique d'un développement logiciel.
Le cycle de vie du développement logiciel est composé de six étapes :
La planification : L’étape de planification définit les objectifs, les portées et les contraintes du projet. Durant cette étape, les équipes déterminent les ressources nécessaires, établissent les calendriers, et planifient les tâches à réaliser.
L’analyse/la définition du besoin : L'analyse se concentre sur la compréhension des besoins des utilisateurs et du système. Il s'agit d'évaluer les exigences fonctionnelles et non fonctionnelles, de comprendre les défis et de définir les critères de réussite du projet
La conception : Durant l’étape de conception, l'architecture du système est définie. Les développeurs décident de l'approche technique, conçoivent l'interface utilisateur, et établissent les schémas de base de données.
L’implémentation/développement : L'implémentation est l'étape où le code de l’application est réellement écrit. Les développeurs transforment les conceptions en fonctionnalités opérationnelles en utilisant des langages de programmation appropriés.
Les tests et l’intégration : Cette étape est dédiée à la vérification de la qualité du logiciel. Les tests unitaires, d'intégration, de système, et d'acceptation sont réalisés pour identifier et corriger les bugs, les failles de sécurité, et les problèmes de performance.
La maintenance : Après le déploiement du logiciel, l’étape de maintenance s'occupe des mises à jour nécessaires, des corrections de bugs, et de l'ajout de nouvelles fonctionnalités.
Chaque acteur, qu’il soit développeur, intégrateur, administrateur, chef de projet ou DSI, a son rôle à jouer dans les différentes étapes du cycle de vie du développement logiciel.
Ce processus à l’air déjà bien défini, pourquoi y ajouter de la sécurité ?
L'intégration de la sécurité dans le cycle de vie du développement logiciel (SDLC) est essentielle pour construire des applications web résilientes face aux menaces de sécurité actuelles. Le parti pris de l'OWASP, à juste titre, est de considérer que la sécurité ne sera effectivement intégrée dans une application web que si elle l'est au bon moment, à chaque étape de son cycle de vie.
En adoptant une approche proactive, le Secure SDLC (SSDLC) assure que les mesures de sécurité sont prises en compte dès la conception et tout au long du développement, du déploiement, et de la maintenance de l'application.
Une étude menée par l'institut Systems and Sciences d'IBM (article en anglais) a révélé qu'il coûte six fois plus cher de corriger unbug détecté lors de la mise en œuvre que pour un bug identifié dès l’étape de conception. Cette étude a également indiqué que cela coûte 15 fois plus cher si des défauts sont identifiés lors des tests et jusqu'à 100 fois plus cher s'ils sont identifiés pendant les étapes de maintenance et d'exploitation.
Voyons dans le prochain chapitre les premières étapes du Secure SDLC.
En résumé
Le cycle de vie du développement logiciel est composé de six étapes distinctes ;
Le cycle de vie du développement logiciel sécurisé (SSDLC) représente une évolution du cycle de vie du développement logiciel classique, en intégrant la sécurité à chaque étape ;
Chaque acteur a son rôle à jouer dans le développement d’un logiciel ou d’une application ;
Plus les failles sont détectées tôt, moins leurs corrections sera coûteuse.
Voyons dans les chapitres suivants comment intégrer la sécurité dans chacune des étapes du cycle. Commençons par les deux premières : la planification et l’analyse du besoin.