Ouvrir le menu Fermer le menu

Comment Sécuriser son Cycle de Vie du Développement Logiciel (Software Development LifeCycle - SDLC)

trait de séparation
Temps de lecture : 5 minutes

Les menaces en perpétuelle évolution qui pèsent sur les applications logicielles et leurs écosystèmes nous imposent de réfléchir  aux moyens de contrôle de sécurité que nous utilisons pour nous assurer de garder de nos données à l’abri des gens malintentionnés.

C'est là que la sécurité du cycle de vie du développement logiciel ou Software Development LifeCycle (SDLC) entre en jeu. Les entreprises doivent veiller à ce qu'au-delà de fournir des produits innovants à leurs clients avant la concurrence, la sécurité soit  présente à chaque étape du processus SDLC.

Afin de sécuriser l'intégralité du cycle, nous devons prendre un  certain nombre de mesures importantes, malheureusement souvent ignorées, et mettre en place  les bons outils pour réaliser les tâches nécessaires au  travail quotidien.

Les menaces pour la sécurité des applications

Au cours des dernières années, les attaques envers les couches applicatives des logiciels sont devenues de plus en plus courantes. OWASP estime que près d'un tiers des applications Web contiennent des failles de sécurité, et le rapport 2019 sur les risques de sécurité des applications de Micro Focus, Micro Focus’ 2019 Application Security Risk Report, a révélé que presque toutes les applications Web comportent des bugs au sein même de leurs couches de sécurité. Les attaquants ont toutes les facilités pour exploiter ces failles de sécurité pour accéder facilement au réseau d'une organisation et y faire des ravages.

Equifax est un exemple relativement récent et notoire, qui montre que de nombreuses organisations sont encore lentes à mettre en œuvre une stratégie globale pour sécuriser leur SDLC.

Comment peut-on sécuriser le SDLC ?

L'un des principes de base d’un SDLC sécurisé consiste à déplacer la sécurité au plus tôt dans le cycle (Shift left).

Cela signifie intégrer des pratiques et des outils de sécurité tout au long du cycle de développement logiciel, en commençant dès les premières phases. Cette approche, au plus tôt, permet d'économiser énormément de temps et d'argent par la suite, car, comme le montre l’exemple ci-dessous, le coût de la correction d'une faille de sécurité une fois le produit déployé se révèle bien plus élevé que de la résoudre dans les premières étapes du SDLC.
WhiteSource_SDLC_Comment-ISIT

Intégration de la sécurité dans l’ensemble des phases du SDLC

Chaque étape du SDLC nécessite ses propres mesures et outils de sécurité. A chaque étape, des outils de détection, de priorisation et de correction automatisés peuvent être intégrés aux IDEs de développement, aux gestionnaires de configurations, aux serveurs d’intégration continue, aux outils de suivi de bugs pour permettre aux équipes de développement de faire face aux risques potentiels dès qu'ils surviennent.

# 1 Planification 
Durant cette première phase du SDLC, les développeurs et les experts en sécurité doivent réfléchir aux risques communs qui pourraient nécessiter une attention pendant le développement et s'y préparer.

# 2 Exigences et analyse
Dans la deuxième étape du SDLC, les exigences et l'analyse, des choix sont faits concernant la technologie, les langages et les Frameworks de développement qui seront utilisés. C'est à ce moment-là que les experts doivent considérer quelles vulnérabilités pourraient menacer la sécurité des outils sélectionnés, afin de faire les choix de sécurité appropriés tout au long de la conception et du développement.

# 3 Architecture et conception
Durant cette phase, les équipes doivent suivre les directives d'architecture et de conception pour faire face aux risques qui ont déjà été pris en compte et analysés au cours des étapes précédentes. Lorsque les vulnérabilités sont corrigées au début de la phase de conception, vous pouvez être assurés qu'elles n'impacteront pas votre logiciel durant le développement. Des processus comme la modélisation des menaces et l'analyse des risques d'architecture rendent le processus de développement beaucoup plus simple et plus sûr.

# 4 Développement
Pendant la phase de développement, les équipes doivent s'assurer qu'elles utilisent des normes de codage sécurisées. Tout en effectuant les revues de code habituelles pour s'assurer que le projet implémente bien les caractéristiques et fonctions spécifiées, les développeurs doivent également prêter attention à toutes les vulnérabilités de sécurité dans le code.

# 5 Test
La phase de test doit inclure des tests de sécurité, en utilisant des outils DevSecOps automatisés pour améliorer la sécurité des applications.

Il est important de se rappeler que l'approche DevOps nécessite des tests continus tout au long du SDLC. Tester plus tôt et tester souvent est le meilleur moyen de s'assurer qu’à la fois vos produits et votre SDLC sont sécurisés dès le départ. Cela signifie que les équipes doivent commencer les tests dès les premiers stades de développement, et que les tests de sécurité ne s'arrêtent pas une fois l’équipement déployé et  mis en œuvre.

# 6 Maintenance
Bien que les tests puissent être approfondis, la vraie vie montre que la réalité  n'est jamais la même que l'environnement de test. Il faut donc se préparer à traiter les erreurs ou les risques non détectés auparavant et s’assurer que la configuration définie pour le produit ai été faite correctement.

Même après le déploiement et la mise en œuvre, les mesures et pratiques de sécurité doivent être suivies tout au long de la maintenance du logiciel. Les produits doivent être régulièrement mis à jour pour garantir leur protection contre les nouvelles menaces et vulnérabilités, et rester compatibles avec tout nouvel outil que vous pourriez décider d'adopter.

Garder un œil sur la sécurité des Open Source

Un autre risque qui doit être abordé pour garantir un SDLC sécurisé est celui des composants open source avec des vulnérabilités connues. Étant donné que les produits logiciels actuels contiennent entre 60% et 80% de code open source, il est important de prêter attention à la gestion de la sécurité open source durant tout le SDLC. Les outils d'analyse de composition logicielle (SCA) sont des technologies automatisées dédiées spécifiquement au suivi des composants open source. Ils alertent les développeurs en temps réel de tous les risques open source qui surviennent dans leur code, et fournissent même des informations de priorisation et de correction et dans certains cas proposent des corrections automatiques.

L’approche « Shift Left » pour assurer un SDLC sécurisé

L'approche DevSecOps consiste à mettre en place les bonnes pratiques et les bons outils de sécurité dès les premières étapes du pipeline DevOps, et à les intégrer à toutes les phases du cycle de vie du développement logiciel. Sécuriser son SDLC aide à fournir aux clients des produits et des services sécurisés tout en respectant des délais de développement courts.

Alors que les attaques sont de plus en plus dirigées vers les couches applicatives et que la nécessité de fournir des applications plus sécurisées pour les clients se renforce, la sécurité SDLC devient une priorité absolue. C'est à nous de nous assurer que nous avons une visibilité et un contrôle complets tout au long du processus.

3

Ces articles peuvent vous intéresser

image blog article

Intégrez l’Analyse Statique dans votre cycle de développement

Cet article est une introduction à la convergence entre sûreté et sécurité des systèmes embarqués, notamment pour démystifier ce que cela implique en détaillant une activité fondamentale dans le process de développement : l’analyse statique avancée.