sdl trustworthy computing security development lifecycle synthèse e. mittelette, e vernié novembre...
Post on 03-Apr-2015
106 Views
Preview:
TRANSCRIPT
SDLTrustworthy Computing Security Development Lifecycle
SDLTrustworthy Computing Security Development Lifecycle
Synthèse E. Mittelette, E Vernié Novembre 2005
SDL: Principes ……Ce processus consiste à ajouter une Ce processus consiste à ajouter une
série d'activités et de tâches relativessérie d'activités et de tâches relatives à la à la sécurité à chacune des phases du sécurité à chacune des phases du processus de développement des logiciels processus de développement des logiciels Microsoft…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 indépendante de son groupe de développement.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 développement de logiciels plus strict, c'est-à-dire centré sur la strict, c'est-à-dire centré sur la sécurité. 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 mieux sécurisés (par exemple, moins de correctifs, plus de satisfaction de correctifs, plus de satisfaction client) l'emportent sur ces coûts client) l'emportent sur ces coûts additionnels. 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 Initiative
Mail 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 2002 Depuis 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 « indiquer un processus de développement en « cascade », 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 reconsidérées lors de l'implémentation, en réponse aux besoins variables du marché et aux réalités aux besoins variables du marché et aux réalités apparues lors de l'implémentation du logiciel. apparues 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 manière fonctionnelle (par l'équipe de développement).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 En introduisant les mesures de sécurité visant à intégrer le sécurité visant à intégrer le paradigme SD3+C dans le processus paradigme SD3+C dans le processus de développement existant, on de développement existant, on obtient :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émentation Les 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 à permettant de limiter les menaces à haute priorité et les testeurs vérifient haute priorité et les testeurs vérifient que de telles menaces sont que de telles menaces sont effectivement bloquées ou limitéeseffectivement bloquées ou limitées
Appliquer les normes de codage et de Appliquer les normes de codage et de test. test.
Appliquer des outils de test de la Appliquer des outils de test de la sécuritésécurité
Appliquer des outils d'analyse statique Appliquer des outils d'analyse statique de codede code
Effectuer des révues de codeEffectuer des révues 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 « l'équipe produit effectue une « campagne de sécurité » comprenant des campagne de sécurité » comprenant des revues de code de sécurité plus revues de code de sécurité plus poussées que celles réalisées à la phase poussées que celles réalisées à la phase d'implémentation, ainsi que des tests de d'implémentation, ainsi que des tests de sécurité ciblés. 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, doit subir une revue de sécurité finale,
ou FSRou FSR « Du point de vue de la sécurité, ce logiciel « Du point de vue de la sécurité, ce logiciel
est-il prêt à être livré à des clients ? »est-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 Une FSR comprend également une revue de la capacité du logiciel à résister à des la 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 développement de pointe ne garantissent pas encore l'envoi de garantissent pas encore l'envoi de logiciels totalement invulnérables et il y logiciels totalement invulnérables et il y a de bonnes raisons de croire que cela a de bonnes raisons de croire que cela n'arrivera jamais.n'arrivera jamais.
A qui s’applique SDL
Obligation d'application du SDLObligation d'application du SDL Susceptibles d'être utilisés pour traiter Susceptibles d'être utilisés pour traiter
des informations personnelles et des informations personnelles et sensiblessensibles
Susceptibles d'être utilisés dans une Susceptibles d'être utilisés dans une entreprise ou par toute autre entreprise ou par toute autre organisation (par exemple, une organisation (par exemple, une université, un gouvernement ou une université, un gouvernement ou une association).association).
Susceptibles d'être connectés à Internet Susceptibles d'être connectés à Internet ou bien utilisés dans un environnement ou 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 Secure Windows
InitiativeInitiative Développement, maintenance et amélioration du SDL, y Développement, maintenance et amélioration du SDL, y
compris la définition des aspects obligatoires du processus.compris la 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, assistent les équipes produit tout au long du processus, effectuent des révisions pour elles et s'assurent que les effectuent des révisions pour elles et s'assurent que les questions de l'équipe produit reçoivent des réponses précises, questions de l'équipe produit reçoivent des réponses précises, bien documentées et dans les meilleurs délais.bien documentées et dans les meilleurs délais.
Faire office d'experts dans une large gamme de sujets relatifs à Faire office d'experts dans une large gamme de sujets relatifs à la sécurité, en s'assurant que les questions adressées aux 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 conseillers en sécurité reçoivent des réponses précises dans les meilleurs délais.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 Investigation technique des vulnérabilités signalées dans les
logiciels envoyés aux clients afin de s'assurer que les causes logiciels envoyés aux clients afin de s'assurer que les causes premières sont comprises et que le niveau de réponse premières sont comprises et que le niveau de réponse approprié est mis en œuvre.approprié est mis en œuvre.
Efficacité et outils
Efficacité des éléments du SDLEfficacité des éléments du SDL L'équipe SWI est d'accord sur le fait que L'équipe SWI est d'accord sur le fait que
la 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 les tests de pénétration ne constituent pas la meilleure façon de parvenir à un pas la meilleure façon de parvenir à un niveau de sécurité satisfaisantniveau de sécurité satisfaisant centrées sur la modélisation des menaces, centrées sur la modélisation des menaces,
les révisions de code et l'utilisation d'outils les révisions de code et l'utilisation d'outils automatisés, ainsi que des tests de automatisés, ainsi que des tests de robustesse plutôt que sur des tests de robustesse plutôt que sur des tests de pénétration. 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é
AnnexeAnnexe
Evaluation des menaces
Types d'attaques courants
Échec de la connexion
Attaquesd'entreprise
Données confidentielles
Violations accidentellesde la sécurité
Attaquesautomatisées
Pirates
Virus, chevaux de Troie et vers
Déni de service (DoS)
DoS
Qu'est-ce que la modélisation des menaces ?
LaLa modélisationmodélisation desdes menacesmenaces estest uneune analyseanalyse baséebasée sursur lala sécuritésécurité dontdont lesles objectifsobjectifs sontsont lesles suivantssuivants :: Aider l'équipe produit à identifier les vulnérabilités Aider l'équipe produit à identifier les vulnérabilités
du produitdu produit Évaluer les menaces relatives à une applicationÉvaluer les menaces relatives à une application Réduire les risques globaux à l'égard de la sécuritéRéduire les risques globaux à l'égard de la sécurité Identifier les ressourcesIdentifier les ressources Découvrir les vulnérabilitésDécouvrir les vulnérabilités Identifier les menacesIdentifier les menaces Permettre d'établir la base des spécifications Permettre d'établir la base des spécifications
de conception en matière de sécuritéde conception en matière de sécurité
Avantages de la modélisation des menaces
PermetPermet dede mieuxmieux comprendrecomprendre votrevotre applicationapplication Permet de rechercher Permet de rechercher
les erreursles erreurs Permet d'identifier les Permet d'identifier les
erreurs de conception erreurs de conception complexescomplexes
Permet d'intégrer de Permet d'intégrer de nouveaux membres à l'équipenouveaux membres à l'équipe
Permet d'établir des programmes Permet d'établir des programmes de test de sécurité bien conçusde test de sécurité bien conçus
Risque
Vulnérabilité
Ressource
Processus de modélisation des menaces
Identifier les ressources1
Créer une vue d'ensemble de l'architecture2
Décomposer l'application3
Identifier les menaces4
Documenter les menaces5
Évaluer les menaces6
Processus de modélisation des menaces
Processus de modélisation des menaces Étape 1 : Identifier les ressources
ÉtablissezÉtablissez lala listeliste desdes ressourcesressources devantdevant être protégéesêtre protégées :: Données confidentielles, telles que les Données confidentielles, telles que les
bases de données des clientsbases de données des clients Pages WebPages Web Disponibilité systèmeDisponibilité système Tous les autres éléments qui, s'ils étaient Tous les autres éléments qui, s'ils étaient
endommagés, pourraient empêcher le bon endommagés, pourraient empêcher le bon fonctionnement de votre applicationfonctionnement de votre application
Processus de modélisation des menaces Étape 2 : Créer une vue d'ensemble de l'architecture IdentifierIdentifier cece queque faitfait l'applicationl'application Créer un diagramme de l'architectureCréer un diagramme de l'architecture
Identifier les technologiesIdentifier les technologies
Autorisations NTFS(authentification)
Autorisation de fichierAutorisation d'URL
Rôles .NET(authentification)
Rôle défini par l'utilisateur(authentification)
SSL(Confidentialité/
Intégrité)
Frontière sécurisée
Alice MirwaultLaura BartoliVictor Nahas
IISIIS
Authentificationanonyme
Authentificationpar formulaires
IPSec(Privé/Intégrité)
Frontière sécurisée
ASPNET(identité du processus)Microsoft
ASP.NETMicrosoft ASP.NET
Authentification de Microsoft® Windows
MicrosoftSQL Server
Processus de modélisation des menaces Étape 3 : Décomposer l'application
DécomposezDécomposez l'applicationl'application
Créez un profil de Créez un profil de sécurité basé sur les sécurité basé sur les domaines de domaines de vulnérabilité classiquesvulnérabilité classiques
Examinez les Examinez les interactions entre les interactions entre les différents sous-systèmesdifférents sous-systèmes
Utilisez les diagrammes Utilisez les diagrammes UML ou de flux de UML ou de flux de donnéesdonnées
IdentifierIdentifier lesles frontièresfrontières sécuriséessécurisées
IdentifierIdentifier lele fluxflux dede donnéesdonnées
IdentifierIdentifier lesles pointspoints d'entréed'entrée
IdentifierIdentifier lele codecode privilégiéprivilégié
DocumenterDocumenter lele profilprofil dede sécuritésécurité
Processus de modélisation des menaces Étape 4 : Identifier les menaces
ConstituezConstituez uneune équipeéquipe Identifiez les menacesIdentifiez les menaces
Menaces liées au réseauMenaces liées au réseau Menaces liées aux hôtesMenaces liées aux hôtes Menaces liées à l'applicationMenaces liées à l'application
Types de menaces Exemples
USurpation Falsification de messages électroniques Rediffusion de paquets d'authentification
FalsificaTion Modification des données lors d'une transmission Changement des données dans des fichiers
Répudiation Suppression d'un fichier important et déni de l'action Achat d'un produit et déni de l'action
Divulgation
d'Informations
Exposition d'informations dans des messages d'erreur Exposition de code sur des sites Web
Deni de serviceSubmersion d'un réseau avec des paquets SYNSubmersion d'un réseau avec des paquets ICMP falsifiés
Elévation de privilèges
Exploitation du débordement de mémoire tampon pour obtenir des privilèges systèmeObtention illégale des privilèges d'administrateur
Processus de modélisation des menaces Identifier les menaces à l'aide de STRIDE
Menace n°1 (I)Voir les informations relatives aux salaires
1.1Le trafic n'est pas protégé
1.2L'intrus voitle trafic
1.2.1Espionner le trafic avec un analyseur de protocole
1.2.2Écouter le traficdu routeur
1.2.2.1Routeur non équipé d'un correctif
1.2.2.2Endommager le routeur
1.2.2.3Deviner le mot de passe du routeur
1.0 Voir les informations relatives aux salaires (I) 1.1 Le trafic n'est pas protégé (ET) 1.2 L'intrus voit le trafic 1.2.1 Espionner le trafic avec un analyseur de protocole 1.2.2 Écouter le trafic du routeur 1.2.2.1 Routeur non équipé d'un correctif (ET) 1.2.2.2 Endommager le routeur 1.2.2.3 Deviner le mot de passe du routeur
Processus de modélisation des menaces Identifier les menaces à l'aide d'organigrammes des menaces
Processus de modélisation des menaces Étape 5 : Documenter les menaces
DocumenterDocumenter lesles menacesmenaces àà l'aidel'aide d'und'un modèlemodèle ::
Ne pas renseigner le champ Risque Ne pas renseigner le champ Risque (pour l'instant)(pour l'instant)
Description de la menace
Injection de commandes SQL
Cible de la menace Composant de l'accès aux données
RisqueTechniques d'attaque L'intrus ajoute des commandes
SQL au nom d'utilisateur utilisé pour former une requête SQL
Contre-mesures Utiliser une expression régulière pour valider le nom d'utilisateur et une procédure stockée avec des paramètres pour accéder à la base de données
Processus de modélisation des menaces Étape 6 : Évaluer les menaces
UtilisezUtilisez lala formuleformule suivantesuivante :: Risque = Probabilité * Dommage potentielRisque = Probabilité * Dommage potentiel
Utilisez le modèle DREAD pour noter Utilisez le modèle DREAD pour noter les menacesles menaces Dommage potentielDommage potentiel ReproductibilitéReproductibilité ExploitationExploitation Utilisateurs AffectésAffectés DécouverteDécouverte
Processus de modélisation des menacesExemple : Évaluer les menaces
Menace n°1 (I)Voir les informations relatives aux salaires
1.1Le trafic n'est pas protégé
1.2L'intrus voitle trafic
1.2.1Espionner le trafic avec un analyseur de protocole
1.2.2Écouter le traficdu routeur
1.2.2.1Routeur non équipé d'un correctif
1.2.2.2Endommager le routeur
1.2.2.3Deviner le mot de passe du routeur
•Dommage potentiel•Utilisateurs affectésOu•Dommage
•Reproductibilité•Exploitation•DécouverteOu•Probabilité
top related