Phases du cycle de vie du développement logiciel SDLC sécurisé

Publié: 2021-02-26

L'approche intelligente pour créer un logiciel sécurisé est Secure SDLC ou Software Development Lifecycle. Au lieu de créer un logiciel puis de le tester pour ses vulnérabilités, il est préférable de le créer en mettant l'accent sur la sécurité.

Qu'est-ce que le SDLC sécurisé ?

Dans un sens plus large, un SDLC sécurisé est un processus d'intégration des tests de sécurité et d'autres mesures dans le cycle de vie de développement logiciel existant. Cela peut inclure :

  • Rédaction des exigences de sécurité ainsi que des exigences fonctionnelles.
  • Réalisation d'analyse d'architecture.
  • Utilisation de composants open source sans vulnérabilités de sécurité connues.
  • Tester le logiciel à chaque étape et empêcher la transmission des vulnérabilités/menaces.

Pourquoi le SDLC sécurisé est-il important ?

La mise en œuvre de pratiques sécurisées du cycle de vie du développement logiciel est importante car les développeurs ne peuvent pas se permettre de publier un produit présentant des failles de sécurité. Afin de protéger le logiciel et les données contre les menaces et les attaques, il doit être développé de manière à garantir la sécurité.

Une autre raison en est que ce n'est pas une approche efficace pour développer un logiciel sans se concentrer sur la sécurité, puis le tester et le corriger.

Phases du SDLC sécurisé

Tout le concept de SDLC sécurisé consiste à étouffer le mal dans l'œuf. Le processus empêche les défauts d'être reportés à la phase suivante du cycle de vie du développement logiciel. Voici un aperçu des phases impliquées dans Secure SDLC et des mesures de sécurité mises en œuvre dans chacune d'elles.

Phase d'exigences du SDLC sécurisé

Outre les exigences fonctionnelles du logiciel, les exigences de sécurité sont également décrites au début du SDLC sécurisé. Ces exigences détaillent ce qui est exigé des développeurs pour rendre le logiciel intrinsèquement sécurisé.

Une liste détaillée de tous les cas d'utilisation et scénarios liés à la sécurité est compilée avant le début du développement. Ceci est ensuite utilisé pour créer les fonctionnalités de sécurité et concevoir des scénarios de test de sécurité.
Ces exigences peuvent ressembler à ceci :

  • Toutes les passerelles et tous les points d'entrée doivent avoir mis en place des mesures d'authentification.
  • Le système doit implémenter l'authentification via un écran de connexion sécurisé.
  • Toutes les données personnelles doivent être cryptées à tout moment.
  • Plusieurs canaux d'authentification doivent être utilisés pour le transfert de données sensibles.

Phase de planification du SDLC sécurisé

La phase de planification est l'étape cruciale de Secure SDLC. La planification peut différer d'un cas à l'autre, mais voici quelques-unes des choses les plus fondamentales dont il faut s'occuper :

  • Une équipe de sécurité dédiée expérimentée doit être formée pour superviser et diriger toutes les mesures liées à la sécurité du logiciel de manière impartiale. Cette équipe, située de préférence à l'extérieur du bureau de gestion de projet, doit être composée d'un agent de sécurité, d'architectes de sécurité et de testeurs de sécurité. Tous les membres de l'équipe doivent avoir des rôles et des responsabilités clairement définis.
  • Toute ambiguïté ou escalade liée aux problèmes de sécurité du projet doit être traitée par le responsable de la sécurité du produit. Il doit être conseillé par l'équipe de sécurité pour s'assurer que les bonnes décisions sont prises.
  • Un point de contact de sécurité doit être établi pour s'assurer que toute modification apportée à la sécurité du produit ne passe pas inaperçue par l'équipe de sécurité.

Phase d'architecture et de conception du SDLC

Une évaluation détaillée des risques liés à la sécurité des produits doit être effectuée pendant la phase de conception. Cela comprend l'examen du programme d'un point de vue de la sécurité alors qu'il n'est pas entré dans l'étape de codage. Tous les risques de sécurité doivent être éliminés avant d'entrer dans la phase suivante. Afin d'assurer la sécurité, toutes les évaluations doivent être effectuées selon les normes de l'industrie.

Les choses qui doivent être prises en charge pendant cette phase incluent, mais ne sont pas limitées à :

  • Examiner toutes les fonctionnalités, les exigences, les user stories et les documents de conception en fonction des détails partagés par l'équipe de projet. En cas d'absence de l'un des documents requis, tout doit clairement être discuté par les membres de l'équipe de projet.
  • Toute lacune dans les exigences de sécurité du programme doit être identifiée et évaluée par rapport aux normes de l'industrie utilisées. Si nécessaire, des modèles de menace peuvent être créés en fonction des lacunes identifiées.
  • Les lacunes présentant des risques de sécurité suffisants doivent être répertoriées et des mesures d'atténuation viables sont suggérées pour celles-ci.

Phase de développement du SDLC

Il s'agit du « développement » proprement dit du logiciel. Une fois qu'une mise en page sécurisée de l'application a été préparée, les développeurs doivent écrire le code d'une manière conforme aux directives de sécurité. Ceci comprend:

  • Utilisation de composants open source sans vulnérabilités connues.
  • Utiliser les mesures de sécurité convenues tout au long du développement du logiciel.
  • Tester le code à froid pour exposer et atténuer toute vulnérabilité dans le code.

Certains tests sont également effectués dans la phase. Cela peut inclure des choses comme s'assurer que les données sensibles ne sont pas transmises en texte brut.

Phase de mise en œuvre du SDLC

Une fois le logiciel développé, l'étape suivante est l'analyse dynamique du code. Il s'agit d'une forme de test de sécurité des applications, également connu sous le nom de test Open Web Application Project (OWASP).

Avant que la solution ne soit mise en œuvre dans la vie réelle, l'analyse de vulnérabilité et les tests de pénétration sont effectués. Les versions du logiciel sur lesquelles cette vérification est effectuée sont appelées versions de test. Les principales choses à noter à ce sujet incluent:

  • Des outils tels que HP WebInspect, ZAP, Burp Suite et SOAP sont utilisés pour vérifier les vulnérabilités du logiciel par rapport à diverses bases de données de vulnérabilités.
  • Toute cette phase est un mélange d'automatisation et de tests manuels.
  • Ce processus est exécuté dans un environnement indépendant non lié à l'environnement de développement pour garantir des scénarios de test proches de la réalité.
  • Toute vulnérabilité trouvée dans cette phase est atténuée avant la publication du logiciel.
  • Les menaces courantes et typiques sont identifiées au cours de cette phase et des mesures sont prises pour les prévenir.

Conclusion

Alors que notre dépendance aux logiciels ne cesse d'augmenter, il est important de les sécuriser pour les utilisateurs. Pour s'assurer que les logiciels et les applications sont à la hauteur de la marque en matière de sécurité, les pratiques Secure SDLC sont adoptées. Le but ultime est toujours de créer des solutions logicielles invulnérables.

Le processus SDLC sécurisé comporte cinq phases allant de la collecte des exigences aux tests de pré-déploiement. L'objectif est d'atténuer les menaces et les vulnérabilités à chaque étape afin qu'elles ne soient pas reportées à l'étape suivante.