SDL Trustworthy Computing Security Development Lifecycle Synthèse E. Mittelette, E Vernié
SDL: Principes …Ce processus consiste à ajouter une série d'activités et de tâches relatives à la sécurité à chacune des phases du processus de développement des logiciels Microsoft… l'élaboration de modèles de menace l'utilisation d'outils d'analyse statique de code lors de leur implémentation l'exécution de révisions de code et de tests de sécurité pendant une période dédiée à la sécurité Avant que les logiciels sujets au SDL puissent être diffusés, ils doivent subir un examen de sécurité final effectué par une équipe indépendante de son groupe de développement.
Nécessité de changer les éditeurs de logiciels doivent passer à un processus de développement de logiciels plus strict, c'est-à-dire centré sur la sécurité. Cest un processus répétitif Qui inclus la formation des développeurs Qui propose des éléments de mesure et de transparence
Sécurité et Coût… l'adoption du SDL par d'autres entreprises ne doit pas accroitre excessivement les coûts du développement de logiciels. D'après l'expérience de Microsoft, les avantages procurés par des logiciels mieux sécurisés (par exemple, moins de correctifs, plus de satisfaction client) l'emportent sur ces coûts additionnels.
Lapproche et la méthode l'intégration de mesures permettant d'améliorer la sécurité des logiciels Sans remettre en cause lorganisation actuelle ajouter des points de contrôle de sécurité bien définis et des tâches relatives à la sécurité Postulat : il existe une équipe de sécurité centrale A prévoir en interne ou en externe…
Trustworthy Computing Initiative Mail de Bill à tous les employés : Faire de la sécurité une priorité, la traiter comme une fonctionnalité de base de nos produits… Début 2002 Depuis publication de Writing Secure Code Publication et blog de M Howard
« Le concept de Trustworthy Computing repose sur quatre piliers : Fiabilit é signifie qu'un syst è me informatique est s û r, disponible quand on en a besoin, et fonctionne correctement, aux niveaux appropri é s. S é curit é signifie qu'un syst è me r é siste aux attaques, et que la confidentialit é, l'int é grit é et la disponibilit é du syst è me comme des donn é es sont prot é g é es. Confidentialit é signifie que les individus ont la possibilit é d'avoir un contrôle sur les donn é es informatiques les concernant et que les organisations qui utilisent ces donn é es observent scrupuleusement des principes de respect des informations. Int é grit é signifie que les entreprises de notre secteur sont responsables vis- à -vis de leurs clients et doivent les aider à trouver des solutions adapt é es à leurs probl é matiques, à r é soudre ces probl è mes à l'aide de produits et services et à se montrer ouvertes dans leurs rapports avec leurs clients. » Trustworthy Computing - Bill Gates 18 juillet 2002
En 2005, SDL est documenté Liens associés :
Processus de développement Bien que la figure présente cinq étapes et semble indiquer un processus de développement en « cascade », il s'agit en fait d'un processus en spirale. Les exigences et la conception sont souvent reconsidérées lors de l'implémentation, en réponse aux besoins variables du marché et aux réalités apparues lors de l'implémentation du logiciel. De plus, le processus de développement insiste sur la nécessité de l'exécution d'un code pratiquement à chaque phase. Par conséquent, chaque étape principale est en fait divisée en une série de versions pouvant être constamment testées et utilisées de manière fonctionnelle (par l'équipe de développement).
SD 3 Architecture de sécurité SD 3 Sécurité dès la conception Sécurité par défaut Sécurité du déploiement Code et architecture sécurisés Analyse des menaces Diminution des vulnérabilités Surface d'attaque réduite Fonctionnalités inutilisées désactivées par défaut Privilèges minimum utilisés Protection : Détection, défense, récupération, gestion Processus : Guides pratiques, guides d'architecture Personnes : Formation
SD3+C et SDL En introduisant les mesures de sécurité visant à intégrer le paradigme SD3+C dans le processus de développement existant, on obtient :
Sécurité tout au long du cycle de vie d'un projet Plans de test terminés Conceptionsterminées Concept Codeterminé DiffusionPost-diffusion Accent sur la sécurité Questions sur la sécurité au cours des entretiens Déterminer les critères de validation de sécurité Révision externe Analyser les menaces Apprendre et affiner Révision de la sécurité par l'équipe Former l'équipe Tests sur la mutation des données et les privilèges minimaux Revoir les anciens défauts, intégrer les instructions vérifiées sur le codage sécurisé, utiliser les outils =continu
Le processus SDL Phase de définition des exigences, la phase de définition des exigences et de planification initiale d'une nouvelle version offre l'occasion idéale d'élaborer un logiciel sécurisé. Phase de conception Définir la structure générale du logiciel du point de vue de la sécurité et identifier les composants dont le fonctionnement correct est essentiel à la sécurité (la « base informatique fiable »). Répertorier les éléments présents dans la surface d'attaque du logiciel Effectuer une modélisation des menaces
Le processus SDL Phase d'implémentation Les développeurs prêtent une attention toute particulière à l'exactitude du code permettant de limiter les menaces à haute priorité et les testeurs vérifient que de telles menaces sont effectivement bloquées ou limitées Appliquer les normes de codage et de test. Appliquer des outils de test de la sécurité Appliquer des outils d'analyse statique de code Effectuer des revues de code
Le processus SDL Phase de vérification Au cours de cette phase, pendant que le logiciel est soumis à des tests bêtas, l'équipe produit effectue une « campagne de sécurité » comprenant des revues de code de sécurité plus poussées que celles réalisées à la phase d'implémentation, ainsi que des tests de sécurité ciblés. Mener une campagne de sécurité pendant la phase de vérification garantit que la revue de code et les tests sont effectués sur la version finale
Le processus SDL Phase de vérification doit subir une revue de sécurité finale, ou FSR « Du point de vue de la sécurité, ce logiciel est-il prêt à être livré à des clients ? » La FSR est une revue du logiciel indépendante Toute FSR exige une révision des bogues initialement identifiés comme des bogues de sécurité Une FSR comprend également une revue de la capacité du logiciel à résister à des vulnérabilités récemment signalées affectant des logiciels similaires Tests de pénétration
Le processus SDL Phase de support et de maintenance Malgré l'application du SDL au cours du développement, les pratiques de développement de pointe ne garantissent pas encore l'envoi de logiciels totalement invulnérables et il y a de bonnes raisons de croire que cela n'arrivera jamais.
A qui sapplique SDL Obligation d'application du SDL Susceptibles d'être utilisés pour traiter des informations personnelles et sensibles Susceptibles d'être utilisés dans une entreprise ou par toute autre organisation (par exemple, une université, un gouvernement ou une association). Susceptibles d'être connectés à Internet ou bien utilisés dans un environnement réseau.
Une équipe « dédiée » sécurité L'équipe de sécurité centrale : SWI - Secure Windows Initiative Développement, maintenance et amélioration du SDL, y compris la définition des aspects obligatoires du processus. Développement, amélioration et dispense d'une formation aux techniciens. Attribution/mise à disposition de « conseillers en sécurité » qui assistent les équipes produit tout au long du processus, effectuent 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 les meilleurs délais. 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é reçoivent des réponses précises dans les meilleurs délais. Exécution des FSR avant le lancement du logiciel. 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 comprises et que le niveau de réponse approprié est mis en œuvre.
Efficacité et outils Efficacité des éléments du SDL L'équipe SWI est d'accord sur le fait que la modélisation des menaces est le composant le plus important du SDL les tests de pénétration ne constituent pas la meilleure façon de parvenir à un niveau de sécurité satisfaisant centrées sur la modélisation des menaces, les révisions de code et l'utilisation d'outils automatisés, ainsi que des tests de robustesse plutôt que sur des tests de pénétration. L'expérience de Microsoft montre que le SDL est efficace pour réduire le nombre de vulnérabilités en matière de sécurité
Microsoft Confidential – NDA Material Sur MSDN, retrouvez tout un ensemble de ressources liées à la sécurité pour les développeurs Les meilleures articles techniques en français Les Webcasts (vidéos de formation) enregistrées lors des Rencontres Sécurité de décembre 2005, et ceux, à venir, des Journées Microsoft de la Sécurité Des cours en ligne, en français et gratuits Les derniers bulletins de sécurité Et le jeu concours « Sale bug ! » Chaque mois, un bug caché dans une portion de code Le mois suivant, la solution sur le site avec des liens vers des articles pour en savoir plus Et des lots à gagner, tout au long de lannée