Rechercher
Contactez-nous Suivez-nous sur Twitter En francais English Language
 











Abonnez-vous gratuitement à notre NEWSLETTER

Newsletter FR

Newsletter EN

Vulnérabilités

Se désabonner

Security Development Lifecycle : par où commencer ?

février 2011 par Emmanuelle Lamandé

Même s’il n’existe pas à ce jour de solution miracle d’un codage sécurisé, certaines méthodes, telles que la SDL (Security Development Lifecycle) de Microsoft, accompagnent les entreprises dans la prise en compte de la sécurité dès la conception d’un logiciel ou d’une application. Cette démarche permet, entre autres, d’avoir un œil précis sur le développement, d’améliorer la qualité de l’application, de réduire le nombre de vulnérabilités existantes, mais aussi de minimiser les coûts des mises à jour. A l’occasion des Microsoft Techdays, Sébastien Gioria, Auditeur Systèmes d’informations et Sécurité, Groupe Y Audit, revient sur les principales étapes de cette méthodologie et, d’une manière plus générale, sur les points de vigilance accessibles à tous.

La méthode SDL (Security Development Lifecycle) fait partie intégrante de la stratégie Microsoft depuis 2004. Cette méthode de développement sécurisé des produits a été conçue comme une partie essentielle du processus de développement des logiciels Microsoft. D’ailleurs, tous les produits Microsoft rentrent dans ce cycle de vie de développement. SDL s’articule autour de différentes phases, allant de la formation à la diffusion, en passant par la modélisation des menaces, les tests de sécurité, …

Avant de se lancer dans tout développement, vient la période la formation. Celle-ci doit être obligatoire pour toute l’équipe du projet : architecte, développeur, testeur, chef du projet, … Toute l’équipe doit être formée, au minimum, à la conception sécurisée, à la modélisation des menaces, à l’écriture de code sécurisé, aux tests de sécurité, ainsi qu’au respect de la vie privée.

Une fois l’équipe formée, l’heure est à la spécification des exigences de sécurité, mais aussi de respect de la vie privée. Concernant la sécurité, il s’agit notamment d’identifier une personne ou une équipe responsable du suivi de la gestion de la sécurité, de vérifier que les outils de suivi et de rapport des bogues soient bel et bien opérationnels, et de définir et documenter une échelle des bogues de sécurité en fonction de leur criticité pour l’entreprise. Cet aspect doit d’ailleurs être maintenu et vérifié tout au long du projet. Pour ce qui est de la vie privée, un conseiller en respect de la vie privée doit être désigné, ainsi qu’un responsable de ces problématiques au sein de l’équipe. Il faut, en outre, définir et documenter une échelle des bogues liés à la vie privée.

Durant la phase de conception, l’équipe aura en charge d’effectuer une revue de conception et de procéder à des analyses de risque. Il s’agit ici d’analyser la surface d’attaque et de modéliser les menaces.

Ensuite, vient la phase d’implémentation, qui comprend entre autres : la création d’une documentation et des outils permettant d’adresser les problèmes de sécurité et de vie privée, le suivi des bonnes pratiques de développement, l’intégration de check lists de sécurité, ou encore la revue automatisée de code. Enfin, s’ensuivent les phases de vérification (tests, audits, …) et de diffusion. Sans oublier bien sûr la création d’un plan de réponse aux incidents et de mises à jour correctives.

La méthode SDL est aujourd’hui utilisée par différentes entreprises, autres que Microsoft, dans la conception de leurs produits. Toutefois, pour Sébastien Gioria, cette méthodologie, prise dans son ensemble, peut s’avérer trop contraignante pour les entreprises qui n’ont pas les ressources suffisantes. Il conseille donc de s’attacher principalement à certains aspects de cette méthode qui sont les plus essentiels, sans être forcément trop coûteux.

Si vous n’êtes pas prêt à corriger tous les problèmes de sécurité que vous allez trouver, ce n’est même pas la peine de les chercher

Avant toute chose, il conseille aux entreprises de garder le bon sens paysan, c’est-à-dire d’être pragmatique, et d’avoir une bonne boîte à outils. De plus, il faut être prêt à se jeter à l’eau. Beaucoup d’entreprises font, en effet, des tests ou des audits, mais ne changent rien a posteriori. « Si vous n’êtes pas prêt à corriger tous les problèmes de sécurité que vous allez trouver, ce n’est même pas la peine de les chercher » souligne-t-il.

Pour lui, 5 étapes sont essentielles à retenir et à mettre en œuvre :

 La formation : elle commence par la mise à disposition de l’équipe d’une documentation. Il peut s’agir de l’OWASP 2010, de la classification des menaces WASC, ou encore d’ouvrages tels que « Writing Secure Code », etc.

 La spécification des exigences de sécurité : l’OWASP propose, par exemple, un guide et une boîte à outils permettant d’aider les entreprises dans la réalisation d’un cahier des charges sécurité.

 L’analyse de risques : plusieurs méthodologies existent en la matière (STRIDE, ISO 27005, SDL Threat Modeling Tool, …). L’important est de garder à l’esprit l’impact métier. Cette étape doit aboutir à la mise en place d’un tableau de bord de décision des corrections, adapté aux risques métiers.

 L’utilisation de bons outils, reconnus comme sécurisés sur le marché. Concernant l’analyse de code statique, différents outils disponibles sur le marché permettent d’éradiquer déjà pas mal de problèmes. Sans oublier l’éducation des gens qui est un outil pour à peu près tout.

 La revue de code : pour ce faire, il existe des outils gratuits (CAT.NET – FxCop, OWASP Code Crawler, CodePro Analytix, …). Enfin, il faut procéder des tests de pénétration. Pour cela, vous devez vous adresser à de vrais professionnels. Pour qu’ils soient compréhensibles de tous et utiles, vous devez, en complément des rapports techniques, demander des rapports orientés métiers. De plus, les indicateurs doivent être en adéquation avec votre outil de bogue. Enfin, demandez un transfert de compétences afin de bien comprendre le problème et savoir comment le corriger.

Dans cette démarche, le plus difficile est de se jeter à l’eau. De plus, il faut garder à l’esprit qu’ « Il n’y a qu’une façon d’échouer, c’est d’abandonner avant d’avoir réussi » (Olivier Lockert), conclut-il.


Voir les articles précédents

    

Voir les articles suivants