SDL Trustworthy Computing Security Development Lifecycle Synthèse E. Mittelette, E Vernié

22
SDL Trustworthy Computing Security Development Lifecycle Synthèse E. Mittelette, E Vernié

Transcript of SDL Trustworthy Computing Security Development Lifecycle Synthèse E. Mittelette, E Vernié

Page 1: SDL Trustworthy Computing Security Development Lifecycle Synthèse E. Mittelette, E Vernié

SDLTrustworthy Computing Security Development

Lifecycle

SDLTrustworthy Computing Security Development

Lifecycle

Synthèse E. Mittelette, E Vernié

Page 2: SDL Trustworthy Computing Security Development Lifecycle Synthèse E. Mittelette, E Vernié

SDL: Principes

……Ce processus consiste à ajouter une Ce processus consiste à ajouter une série série d'activités et de tâches relativesd'activités et de tâches relatives à la à la sécurité à chacune des phases du processus sécurité à chacune des phases du processus de développement des logiciels Microsoft…de développement des logiciels Microsoft…

l'élaboration de modèles de menace l'élaboration de modèles de menace l'utilisation d'outils d'analyse statique de code l'utilisation d'outils d'analyse statique de code lors de leur implémentation lors de leur implémentation l'exécution de révisions de code et de tests de l'exécution de révisions de code et de tests de sécurité pendant une période dédiée à la sécurité pendant une période dédiée à la sécuritésécurité Avant que les logiciels sujets au SDL puissent Avant que les logiciels sujets au SDL puissent être diffusés, ils doivent subir un examen de être diffusés, ils doivent subir un examen de sécurité final effectué par une équipe sécurité final effectué par une équipe indépendante de son groupe de développement.indépendante de son groupe de développement.

Page 3: SDL Trustworthy Computing Security Development Lifecycle Synthèse E. Mittelette, E Vernié

Nécessité de changer

les éditeurs de logiciels doivent les éditeurs de logiciels doivent passer à un processus de passer à un processus de développement de logiciels plus strict, développement de logiciels plus strict, c'est-à-dire centré sur la sécurité. c'est-à-dire centré sur la sécurité.

C’est un processus répétitifC’est un processus répétitif

Qui inclus la formation des développeursQui inclus la formation des développeurs

Qui propose des éléments de mesure et Qui propose des éléments de mesure et de transparencede transparence

Page 4: SDL Trustworthy Computing Security Development Lifecycle Synthèse E. Mittelette, E Vernié

Sécurité et Coût…

l'adoption du SDL par d'autres l'adoption du SDL par d'autres entreprises ne doit pas accroitre entreprises ne doit pas accroitre excessivement les coûts du excessivement les coûts du développement de logiciels.développement de logiciels.

D'après l'expérience de Microsoft, les D'après l'expérience de Microsoft, les avantages procurés par des logiciels avantages procurés par des logiciels mieux sécurisés (par exemple, moins de mieux sécurisés (par exemple, moins de correctifs, plus de satisfaction client) correctifs, plus de satisfaction client) l'emportent sur ces coûts additionnels. l'emportent sur ces coûts additionnels.

Page 5: SDL Trustworthy Computing Security Development Lifecycle Synthèse E. Mittelette, E Vernié

L’approche et la méthode

l'intégration de mesures permettant l'intégration de mesures permettant d'améliorer la sécurité des logicielsd'améliorer la sécurité des logiciels

Sans remettre en cause l’organisation Sans remettre en cause l’organisation actuelleactuelle

ajouter des points de contrôle de ajouter des points de contrôle de sécurité bien définis et des tâches sécurité bien définis et des tâches relatives à la sécuritérelatives à la sécurité

Postulat : il existe une équipe de Postulat : il existe une équipe de sécurité centrale sécurité centrale

A prévoir en interne ou en externe…A prévoir en interne ou en externe…

Page 6: SDL Trustworthy Computing Security Development Lifecycle Synthèse E. Mittelette, E Vernié

Trustworthy Computing Initiative

Trustworthy Computing InitiativeTrustworthy Computing InitiativeMail de Bill à tous les employés :Mail de Bill à tous les employés :

Faire de la sécurité une priorité, la traiter Faire de la sécurité une priorité, la traiter comme une fonctionnalité de base de comme une fonctionnalité de base de nos produits…nos produits…

Début 2002Début 2002Depuis publication de Writing Secure CodeDepuis publication de Writing Secure Code

Publication et blog de M HowardPublication et blog de M Howard

Page 7: SDL Trustworthy Computing Security Development Lifecycle Synthèse E. Mittelette, E Vernié

««  LeLe conceptconcept dede TrustworthyTrustworthy ComputingComputing reposerepose sursur quatrequatre pilierspiliers  :: FiabilitéFiabilité signifie qu'un système informatique est sûr, signifie qu'un système informatique est sûr, disponible quand on en a besoin, et fonctionne disponible quand on en a besoin, et fonctionne correctement, aux niveaux appropriés.correctement, aux niveaux appropriés. SécuritéSécurité signifie qu'un système résiste aux attaques, et signifie qu'un système résiste aux attaques, et que la confidentialité, l'intégrité et la disponibilité du que la confidentialité, l'intégrité et la disponibilité du système comme des données sont protégées.système comme des données sont protégées. ConfidentialitéConfidentialité signifie que les individus ont la signifie que les individus ont la possibilité possibilité d'avoir un contrôle sur les données informatiques les d'avoir un contrôle sur les données informatiques les concernant concernant et que les organisations qui utilisent ces données et que les organisations qui utilisent ces données observent scrupuleusement des principes de respect des observent scrupuleusement des principes de respect des informations.informations.IntégritéIntégrité signifie que les entreprises de notre secteur signifie que les entreprises de notre secteur sont responsables vis-à-vis de leurs clients et doivent les sont responsables vis-à-vis de leurs clients et doivent les aider aider à trouver des solutions adaptées à leurs problématiques, à trouver des solutions adaptées à leurs problématiques, à résoudre ces problèmes à l'aide de produits et services à résoudre ces problèmes à l'aide de produits et services et et à se montrer ouvertes dans leurs rapports avec leurs à se montrer ouvertes dans leurs rapports avec leurs clients. »clients. »

Trustworthy Computing

- Bill Gates 18 juillet 2002

Page 8: SDL Trustworthy Computing Security Development Lifecycle Synthèse E. Mittelette, E Vernié

En 2005, SDL est documenté

Liens associés :http://www.microsoft.com/france/technet/securite/sdl.mspxhttp://www.microsoft.com/france/securite/default.mspxhttp://www.microsoft.com/france/msdn/securite/default.mspx

Page 9: SDL Trustworthy Computing Security Development Lifecycle Synthèse E. Mittelette, E Vernié

Processus de développement

Bien que la figure présente cinq étapes et semble Bien que la figure présente cinq étapes et semble indiquer un processus de développement en « cascade indiquer un processus de développement en « cascade », », il s'agit en fait d'un processus en spiraleil s'agit en fait d'un processus en spirale. . Les exigences et la conception sont souvent Les exigences et la conception sont souvent reconsidérées lors de l'implémentation, en réponse aux reconsidérées lors de l'implémentation, en réponse aux besoins variables du marché et aux réalités apparues besoins variables du marché et aux réalités apparues lors de l'implémentation du logiciel. lors de l'implémentation du logiciel. De plus, le processus de développement insiste sur la De plus, le processus de développement insiste sur la nécessité de l'exécution d'un code pratiquement à nécessité de l'exécution d'un code pratiquement à chaque phase. Par conséquent, chaque phase. Par conséquent, chaque étape chaque étape principale est en fait divisée en une série de versions principale est en fait divisée en une série de versions pouvant être constamment testéespouvant être constamment testées et utilisées de et utilisées de manière fonctionnelle (par l'équipe de développement).manière fonctionnelle (par l'équipe de développement).

Page 10: SDL Trustworthy Computing Security Development Lifecycle Synthèse E. Mittelette, E Vernié

SDSD33

Architecture de sécurité SD3

SécuritéSécurité dèsdès lala

conceptionconception

SécuritéSécurité parpar défautdéfaut

SécuritéSécurité dudu déploiementdéploiement

CodeCode etet architecturearchitecture sécuriséssécurisésAnalyse des menacesAnalyse des menacesDiminution des vulnérabilitésDiminution des vulnérabilités

SurfaceSurface d'attaqued'attaque réduiteréduiteFonctionnalités inutilisées Fonctionnalités inutilisées désactivées par défautdésactivées par défautPrivilèges minimum utilisésPrivilèges minimum utilisés

ProtectionProtection  :: Détection,Détection, défense,défense, récupération,récupération, gestiongestionProcessus : Guides pratiques, Processus : Guides pratiques, guides d'architectureguides d'architecturePersonnes : FormationPersonnes : Formation

Page 11: SDL Trustworthy Computing Security Development Lifecycle Synthèse E. Mittelette, E Vernié

SD3+C et SDL

En introduisant les mesures de sécurité En introduisant les mesures de sécurité visant à intégrer le paradigme SD3+C visant à intégrer le paradigme SD3+C dans le processus de développement dans le processus de développement existant, on obtient :existant, on obtient :

Page 12: SDL Trustworthy Computing Security Development Lifecycle Synthèse E. Mittelette, E Vernié

Sécurité tout au long du cycle de vie d'un projet

PlansPlans dede testtestterminésterminés

ConceptionsConceptionsterminéesterminées

ConceptConcept CodeCodeterminéterminé

DiffusionDiffusion Post-diffusionPost-diffusion

Accent surla sécurité

Questions sur lasécurité au cours

des entretiens

Déterminer lescritères de validation

de sécurité

Révision externe

Analyser les menaces

Apprendreet affiner

Révisionde la sécuritépar l'équipe

Formerl'équipe

Tests sur la mutation des données et les

privilèges minimaux

Revoir les anciens défauts, intégrerles instructions vérifiées sur le codage

sécurisé, utiliser les outils

=continu

Page 13: SDL Trustworthy Computing Security Development Lifecycle Synthèse E. Mittelette, E Vernié

Le processus SDL

Phase de définition des exigencesPhase de définition des exigences , la phase de définition des exigences et de , la phase de définition des exigences et de planification initiale d'une nouvelle version offre planification initiale d'une nouvelle version offre l'occasion idéale d'élaborer un logiciel sécurisé. l'occasion idéale d'élaborer un logiciel sécurisé.

Phase de conception Phase de conception Définir la structure générale du logiciel du point Définir la structure générale du logiciel du point de vue de la sécurité et identifier les de vue de la sécurité et identifier les composants dont le fonctionnement correct est composants dont le fonctionnement correct est essentiel à la sécurité (la « base informatique essentiel à la sécurité (la « base informatique fiable »).fiable »).

Répertorier les éléments présents dans la Répertorier les éléments présents dans la surface d'attaque du logicielsurface d'attaque du logiciel

Effectuer une modélisation des menacesEffectuer une modélisation des menaces

Page 14: SDL Trustworthy Computing Security Development Lifecycle Synthèse E. Mittelette, E Vernié

Le processus SDL

Phase d'implémentationPhase d'implémentationLes développeurs prêtent une attention Les développeurs prêtent une attention toute particulière à l'exactitude du code toute particulière à l'exactitude du code permettant de limiter les menaces à haute permettant de limiter les menaces à haute priorité et les testeurs vérifient que de priorité et les testeurs vérifient que de telles menaces sont effectivement telles menaces sont effectivement bloquées ou limitéesbloquées ou limitées

Appliquer les normes de codage et de test. Appliquer les normes de codage et de test.

Appliquer des outils de test de la sécuritéAppliquer des outils de test de la sécurité

Appliquer des outils d'analyse statique de Appliquer des outils d'analyse statique de codecode

Effectuer des revues de codeEffectuer des revues de code

Page 15: SDL Trustworthy Computing Security Development Lifecycle Synthèse E. Mittelette, E Vernié

Le processus SDL

Phase de vérificationPhase de vérification Au cours de cette phase, pendant que le Au cours de cette phase, pendant que le logiciel est soumis à des tests bêtas, logiciel est soumis à des tests bêtas, l'équipe produit effectue une « campagne l'équipe produit effectue une « campagne de sécurité » comprenant des revues de de sécurité » comprenant des revues de code de sécurité plus poussées que celles code de sécurité plus poussées que celles réalisées à la phase d'implémentation, réalisées à la phase d'implémentation, ainsi que des tests de sécurité ciblés. ainsi que des tests de sécurité ciblés.

Mener une campagne de sécurité Mener une campagne de sécurité pendant la phase de vérification garantit pendant la phase de vérification garantit que la revue de code et les tests sont que la revue de code et les tests sont effectués sur la version finale effectués sur la version finale

Page 16: SDL Trustworthy Computing Security Development Lifecycle Synthèse E. Mittelette, E Vernié

Le processus SDL

Phase de vérificationPhase de vérification doit subir une revue de sécurité finale, ou doit subir une revue de sécurité finale, ou FSRFSR

« Du point de vue de la sécurité, ce logiciel est-« Du point de vue de la sécurité, ce logiciel est-il prêt à être livré à des clients ? »il prêt à être livré à des clients ? »

La FSR est une revue du logiciel La FSR est une revue du logiciel indépendanteindépendante

Toute FSR exige une révision des bogues Toute FSR exige une révision des bogues initialement identifiés comme des bogues de initialement identifiés comme des bogues de sécuritésécurité Une FSR comprend également une revue de la Une FSR comprend également une revue de la capacité du logiciel à résister à des capacité du logiciel à résister à des vulnérabilités récemment signalées affectant vulnérabilités récemment signalées affectant des logiciels similairesdes logiciels similaires

Tests de pénétration Tests de pénétration

Page 17: SDL Trustworthy Computing Security Development Lifecycle Synthèse E. Mittelette, E Vernié

Le processus SDL

Phase de support et de maintenancePhase de support et de maintenance Malgré l'application du SDL au cours du Malgré l'application du SDL au cours du développement, les pratiques de développement, les pratiques de développement de pointe ne garantissent développement de pointe ne garantissent pas encore l'envoi de logiciels totalement pas encore l'envoi de logiciels totalement invulnérables et il y a de bonnes raisons invulnérables et il y a de bonnes raisons de croire que cela n'arrivera jamais.de croire que cela n'arrivera jamais.

Page 18: SDL Trustworthy Computing Security Development Lifecycle Synthèse E. Mittelette, E Vernié

A qui s’applique SDL

Obligation d'application du SDLObligation d'application du SDL Susceptibles d'être utilisés pour traiter des Susceptibles d'être utilisés pour traiter des informations personnelles et sensiblesinformations personnelles et sensibles

Susceptibles d'être utilisés dans une Susceptibles d'être utilisés dans une entreprise ou par toute autre organisation entreprise ou par toute autre organisation (par exemple, une université, un (par exemple, une université, un gouvernement ou une association).gouvernement ou une association).

Susceptibles d'être connectés à Internet ou Susceptibles d'être connectés à Internet ou bien utilisés dans un environnement bien utilisés dans un environnement réseau.réseau.

Page 19: SDL Trustworthy Computing Security Development Lifecycle Synthèse E. Mittelette, E Vernié

Une équipe « dédiée » sécurité

L'équipe de sécurité centraleL'équipe de sécurité centrale : SWI - : SWI - Secure Windows InitiativeSecure Windows Initiative Développement, maintenance et amélioration du SDL, y compris la Développement, maintenance et amélioration du SDL, y compris la définition des aspects obligatoires du processus.définition des aspects obligatoires du processus.Développement, amélioration et dispense d'une formation aux Développement, amélioration et dispense d'une formation aux techniciens.techniciens.Attribution/mise à disposition de « conseillers en sécurité » qui Attribution/mise à disposition de « conseillers en sécurité » qui assistent les équipes produit tout au long du processus, effectuent assistent les équipes produit tout au long du processus, effectuent des révisions pour elles et s'assurent que les questions de l'équipe des révisions pour elles et s'assurent que les questions de l'équipe produit reçoivent des réponses précises, bien documentées et dans produit reçoivent des réponses précises, bien documentées et dans les meilleurs délais.les meilleurs délais.Faire office d'experts dans une large gamme de sujets relatifs à la Faire office d'experts dans une large gamme de sujets relatifs à la sécurité, en s'assurant que les questions adressées aux conseillers en sécurité, en s'assurant que les questions adressées aux conseillers en sécurité reçoivent des réponses précises dans les meilleurs délais.sécurité reçoivent des réponses précises dans les meilleurs délais.Exécution des FSR avant le lancement du logiciel.Exécution des FSR avant le lancement du logiciel.Investigation technique des vulnérabilités signalées dans les logiciels Investigation technique des vulnérabilités signalées dans les logiciels envoyés aux clients afin de s'assurer que les causes premières sont envoyés aux clients afin de s'assurer que les causes premières sont comprises et que le niveau de réponse approprié est mis en œuvre.comprises et que le niveau de réponse approprié est mis en œuvre.

Page 20: SDL Trustworthy Computing Security Development Lifecycle Synthèse E. Mittelette, E Vernié

Efficacité et outils

Efficacité des éléments du SDLEfficacité des éléments du SDLL'équipe SWI est d'accord sur le fait que la L'équipe SWI est d'accord sur le fait que la modélisation des menacesmodélisation des menaces est le est le composant le plus important du SDLcomposant le plus important du SDL les tests de pénétration ne constituent pas les tests de pénétration ne constituent pas la meilleure façon de parvenir à un niveau la meilleure façon de parvenir à un niveau de sécurité satisfaisantde sécurité satisfaisant

centrées sur la modélisation des menaces, les centrées sur la modélisation des menaces, les révisions de code et l'utilisation d'outils révisions de code et l'utilisation d'outils automatisés, ainsi que des tests de robustesse automatisés, ainsi que des tests de robustesse plutôt que sur des tests de pénétration. plutôt que sur des tests de pénétration.

L'expérience de Microsoft montre que L'expérience de Microsoft montre que le SDL est efficace pour réduire le le SDL est efficace pour réduire le nombre de vulnérabilités en matière nombre de vulnérabilités en matière de sécuritéde sécurité

Page 21: SDL Trustworthy Computing Security Development Lifecycle Synthèse E. Mittelette, E Vernié

Microsoft Confidential – NDA Material

Sur MSDN, retrouvez tout un ensemble de Sur MSDN, retrouvez tout un ensemble de ressources liées à la sécurité pour les ressources liées à la sécurité pour les développeursdéveloppeurs

Les meilleures articles techniques en françaisLes meilleures articles techniques en français

Les Webcasts (vidéos de formation) enregistrées lors Les Webcasts (vidéos de formation) enregistrées lors des Rencontres Sécurité de décembre 2005, et ceux, des Rencontres Sécurité de décembre 2005, et ceux, à venir, des Journées Microsoft de la Sécuritéà venir, des Journées Microsoft de la Sécurité

Des cours en ligne, en français et gratuitsDes cours en ligne, en français et gratuits

Les derniers bulletins de sécuritéLes derniers bulletins de sécurité

Et le jeu concours « Sale bug ! »Et le jeu concours « Sale bug ! »Chaque mois, un bug caché dans une portion de codeChaque mois, un bug caché dans une portion de code

Le mois suivant, la solution sur le site avec des liens vers des articles pour Le mois suivant, la solution sur le site avec des liens vers des articles pour en savoir plusen savoir plus

Et des lots à gagner, tout au long de l’annéeEt des lots à gagner, tout au long de l’année

Page 22: SDL Trustworthy Computing Security Development Lifecycle Synthèse E. Mittelette, E Vernié