Développement et maintenance des systèmes

La stratégie d’une entreprise développant des logiciels se doit d’envisager les propriétés et les implications de la sécurité des applications, des systèmes et des services utilisés ou fournis par l’entreprise tout au long du cycle de vie d’un projet.

La charte de sécurité de développement des applications, systèmes et services de l’entreprise doit prévoir que les équipes et les personnes mettent en œuvre les mesures de sécurité appropriées dans les applications, les systèmes et les services en cours de développement, en fonction des risques et préoccupations de sécurité identifiés. La charte doit mentionner que l’entreprise dispose des rôles et des responsabilité de sécurité dont la mission est de fournir des lignes directrices de sécurité et d’assurer l’évaluation des risques.

L’entreprise doit mettre en oeuvre un certain nombre de mesures visant à garantir que les produits logiciels et services quelle propose aux utilisateurs soient conformes aux normes les plus strictes sur la sécurité logicielle. Cet article décrit une approche en matière de sécurité logicielle, celle-ci peut s’adapter et évoluer en fonction de l’organisattion et de la culture de l’entreprise.

Consultation et revue de sécurité

S’agissant de la conception, du développement et du fonctionnement des applications et services, les rôles de sécurité inclus les catégories principales de services de consultation suivantes aux équipes de développement, techniques et production :

Une multitude de types de problèmes de sécurité peuvent intervenir au niveau de la conception du produit, c’est pourquoi ils doivent être pris en considération et résolus au plus tôt lors de la phase de conception du produit ou du service. La finalité essentielle de la revue de sécurité au niveau conception est de garantir la prise en compte de ces considérations. 

Dans ce cadre, la revue de sécurité au niveau de la conception se fixe les objectifs suivants :

Lorsque des projets impliquent des fonctionnalités ou des technologies innovantes, un des rôles de sécurité est chargé de rechercher et d’explorer les menaces, les schémas d’attaque potentiels et les classes de vulnérabilités spécifiques des technologies et fonctionnalités en question. Le cas échéant, l’entreprise peut sous-traiter à des prestataires la consultation de sécurité pour compléter les compétences de l’équipe de sécurité et obtenir une revue indépendante garante d’objectivité afin de valider les revues de sécurité internes.

Sécurité dans le contexte du cycle de vie des logiciels

La sécurité est au cœur du processus de conception et de développement que l’on nomme cycle de vie des logiciels ou Software Devlopment Life Cycle (SDLC) en anglais. L’organisation technique de l’entreprise ne requiert pas que les équipes de développement de produits suivent un processus de développement logiciel particulier, au contraire, les équipes choisissent et mettent en œuvre des processus adaptés aux besoins du projet. Dans ce cadre, un certain nombre de processus de développement logiciel sont utilisés, allant des méthodologies de développement Agile aux processus plus classiques : par étapes, en V ou en cascade.

Sur les illustrations ci-dessous vous pouvez découvrir comment l’intégration de la sécurité se fait dans un cycle en V :

SDLC Procédures
SDLC Procédures
SDLC Processus
SDLC Processus

Les processus de revue de la sécurité sont prévus pour fonctionner dans la structure choisie. Leur réussite dépend de la culture technique en matière de qualité et de quelques exigences définies par la direction technique des processus de développement de projet :

Les exigences ci-dessus représentent la culture d’ingénierie logicielle, dans laquelle les objectifs clés sont la qualité, la fiabilité et la maintenabilité des logiciels. Tandis que la finalité première de ces exigences est d’encourager la création d’artefacts logiciels irréprochables en matière de qualité logicielle, les bonnes pratiques de sécurité suggèrent également qu’ils représentent des « moteurs » significatifs et évolutifs en faveur de la réduction de l’incidence de failles de sécurité dans la conception logicielle :

Les développeurs logiciels de l’équipe de sécurité collaborent avec d’autres développeeurs de l’entreprise sur le développement et la validation de composants réutilisables conçus et implémentés pour permettre aux projets logiciels d’éviter certaines classes de vulnérabilités. Parmi les exemples figurent les couches d’accès aux données conçues pour résister aux failles d’injection de langage de requête SQL, ou les structures de modèles HTML avec défenses intégrées contre les vulnérabilités XSS.

Formation à la sécurité

Reconnaissant l’importance d’une main-d’oeuvre technique formée aux pratiques de codage sécurisé, le responsable sécurité met en place une campagne de communication et un programme de formation à l’intention des équipes, dont le contenu est le suivant :

Tests et revue de sécurité au niveau implémentation

L’entreprise doit appliquer un certain nombre d’approches pour continuer de réduire l’incidence de failles de la sécurité au niveau de l’implémentation dans ses produits et services :

Services de consulting

Nous menons les projets de conseils en sécurité avec une offre de services très diversifiée et adaptée à vos besoins, par exemple :