sdl trustworthy computing security development lifecycle synthèse e. mittelette, e vernié
TRANSCRIPT
SDLTrustworthy Computing Security Development
Lifecycle
SDLTrustworthy 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.
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
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.
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…
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
«« 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
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
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).
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
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 :
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
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
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
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
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
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.
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.
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.
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é
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