Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parFrancine Cornu Modifié depuis plus de 11 années
1
É criture de code s é curis é – M é thodes Eric Mittelette (ericmitt@microsoft.com) ericmitt@microsoft.com Jean Gautier (jeanga@microsoft.com ) jeanga@microsoft.com
2
Sujets abord é s Processus de développement sécurisé Modélisation des menaces Atténuation des risques Méthodes conseillées
3
Conditions pr é alables pour la session Exp é rience du d é veloppement avec Microsoft Visual Basic ®, Microsoft Visual C++ ® ou C#
4
Programme Processus de d é veloppement s é curis é Mod é lisation des menaces Att é nuation des risques M é thodes conseill é es pour assurer la s é curit é
5
Amélioration du processus de développement d'applications Prendre en compte la sécurité : Au début du processus Pendant le développement Pendant le déploiement À chaque étape clé de la révision du logiciel Continuer leffort de sécurité jusqu'à la fin du processus de développement
6
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 et gestion Processus : Guides pratiques, Guides d'architecture Personnes : Formation Architecture SD 3
7
Chronologie du d é veloppement d'un produit s é curis é Plans de test terminés Conceptionsterminées Concept Codeterminé DiffusionPost-diffusion Tester les vulnérabilités de sécurité Évaluer les connaissances sur la sécurité lors du recrutement de l'équipe Déterminer les critères de validation de la sécurité Envoyer pour une révision externe Analyser les menaces Apprendre et affiner Révision de la sécurité par l'équipe Former les membres de l'équipe Tester la mutation des données et les privilèges minimaux Résoudre les problèmes liés à la sécurité, vérifier que le code respecte les consignes de sécurité = continu
8
Sécurité dès la conception Sensibiliser l'équipe de conception à la sécurité Assurer une formation continue Bousculer les esprits : « Ne pas avoir conscience dun danger ne signifie pas quil nexiste pas!» Prendre en compte la sécurité dès la phase de conception Définir les objectifs du produit en termes de sécurité Mettre en œuvre la sécurité comme fonctionnalité clé du produit Utiliser la modélisation des menaces dès la phase de conception Utiliser la modélisation des menaces dès la phase de conception
9
Programme Processus de développement sécurisé Modélisation des menaces Atténuation des risques Méthodes conseillées pour assurer la sécurité
10
la modélisation des menaces, Pourquoi faire? Ses objectifs sont les suivants : Identifier les ressources Découvrir les vulnérabilités Identifier les menaces Évaluer les menaces Réduire les risques
11
Avantages de la modélisation des menaces Permet de mieux comprendre votre application Permet de rechercher les erreurs Permet d'identifier les erreurs de conception complexes Permet d'intégrer de nouveaux membres à l'équipe Permet d'établir des programmes de test de sécurité bien conçus Risque Vulnérabilité Ressource
12
Processus de modélisation des menaces Identifier les ressources à protéger 1 Créer une vue d'ensemble de l'architecture 2 Décomposer l'application 3 Identifier les menaces 4 Documenter les menaces 5 Évaluer les menaces 6 Processus de modélisation des menaces
13
Processus de modélisation des menaces Étape 1 : Identifier les ressources Établir la liste des ressources devant être protégées : Données confidentielles, telles que les bases de données des clients Pages Web Disponibilité système Tous les autres éléments qui, s'ils étaient endommagés, pourraient empêcher le bon fonctionnement de votre application
14
Processus de mod é lisation des menaces É tape 2 : Cr é er une vue d'ensemble de l'architecture Identifier ce que fait l'application Cr é er un diagramme de l'architecture Identifier les technologies Autorisations NTFS (authentification) Autorisation de fichier Autorisation d'URL Rôles.NET (authentification) Rôle défini par l'utilisateur (authentification) SSL (Confidentialité/ Intégrité) Frontière sécurisée Alice Mirwault Laura Bartoli Victor Nahas IIS Authentification anonyme Authentification par formulaires IPSec (Privé/Intégrité) Frontière sécurisée ASPNET (identité du processus) Microsoft ASP.NET Microsoft ASP.NET Authentification de Microsoft® Windows Microsoft SQL Server
15
Processus de modélisation des menaces Étape 3 : Décomposer l'application Décomposez l'application Créez un profil de sécurité basé sur les domaines de vulnérabilité classiques Examinez les interactions entre les différents sous-systèmes Utilisez les diagrammes UML ou de flux de données Identifier les frontières sécurisées Identifier le flux de données Identifier les points d'entrée Identifier le code privilégié Documenter le profil de sécurité
16
Processus de modélisation des menaces Étape 4 : Identifier les menaces Constituer une équipe Identifier les menaces Menaces liées au réseau Menaces liées aux hôtes Menaces liées à l'application
17
Types de menaces Exemples U S urpation Falsification de messages électroniques Rediffusion de paquets d'authentification Falsifica T ion 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' I nformations Exposition d'informations dans des messages d'erreur Exposition de code sur des sites Web D eni de service Submersion d'un réseau avec des paquets SYN Submersion d'un réseau avec des paquets ICMP falsifiés E lévation de privilèges Exploitation du débordement de mémoire tampon pour obtenir des privilèges système Obtention illégale des privilèges d'administrateur Processus de modélisation des menaces Identifier les menaces à l'aide de STRIDE
18
Menace n°1 (I) Voir les informations relatives aux salaires 1.1 Le trafic n'est pas protégé 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 1.2.2.2 Endommager le routeur 1.2.2.3 Deviner 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
19
Processus de modélisation des menaces Étape 5 : Documenter les menaces Documenter les menaces à l'aide d'un modèle : Ne pas renseigner le champ Risque (pour l'instant) Description de la menaceInjection de commandes SQL Cible de la menace Composant de l'accès aux données Risque Techniques 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
20
Processus de modélisation des menaces Étape 6 : Évaluer les menaces Utilisez la formule suivante : Risque = Probabilité * Dommage potentiel Utilisez le modèle DREAD pour noter les menaces Dommage potentiel Dommage potentiel Reproductibilité Reproductibilité Exploitation Exploitation Affectés Utilisateurs Affectés Découverte Découverte
21
Processus de modélisation des menaces Exemple : Évaluer les menaces Menace n°1 (I) Voir les informations relatives aux salaires 1.1 Le trafic n'est pas protégé 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 1.2.2.2 Endommager le routeur 1.2.2.3 Deviner le mot de passe du routeur Dommage potentiel Utilisateurs affectés Ou Dommage Reproductibilité Exploitation Découverte Ou Probabilité
22
Codage pour un modèle de menace Utilisez la modélisation des menaces pour : déterminer les parties les plus « à risque » de votre application classer par ordre de priorité les efforts de sécurité classer par ordre de priorité les révisions de code régulières déterminer les techniques d'atténuation des menaces à utiliser déterminer le flux de données
23
Programme Processus de développement sécurisé Modélisation des menaces Atténuation des risques Méthodes conseillées pour assurer la sécurité
24
Options relatives à l'atténuation des risques Option 1 : Ne rien faire Option 2 : Avertir l'utilisateur Option 3 : Supprimer le problème Option 4 : Résoudre le problème Surveillé
25
Processus d'atténuation des risques Type de menace (STRIDE) Technique d'atténuation Technologie UsurpationAuthentification NTLM Certificats X.509 Clés PGP Basic Digest Kerberos SSL/TLS 1.Identifier la catégorie Par exemple : Usurpation 2.Sélectionner les techniques Par exemple : Authentification ou protection des données confidentielles 3.Sélectionner la technologie Par exemple : Kerberos
26
Exemples de techniques d'atténuation Client Serveur Données persistantes Données d'authentification Données de configuration STRIDE SSL/TLS IPSec RPC/DCO avec confidentialité Pare-feu Limitation de l'utilisation des ressources pour les connexions anonymes Contrôle d'accès rigoureux Signatures numériques Audit Réseau non sécurisé
27
Programme Processus de d é veloppement s é curis é Mod é lisation des menaces Att é nuation des risques M é thodes conseill é es pour assurer la s é curit é
28
Exécuter avec le moins de privilèges possible Principe de sécurité connu : « Exécuter l'application avec juste assez de privilèges pour faire le travail, et pas plus » Un privilège élevé peut avoir des conséquences désastreuses : Un code nuisible s'exécutant à l'intérieur d'un processus à privilège élevé s'exécute également avec ces privilèges. De nombreux virus se propagent parce que la source infectée a des privilèges d'administrateur.
29
Démonstration 1 Sécurité des applications ASP.NET Étude des privilèges des applications ASP.NET Limitation des niveaux d'approbation des applications ASP.NET
30
Réduire la surface d'attaque Exposez uniquement les interfaces bien documentées et limitées de votre application. Utilisez uniquement les services nécessaires à votre application. Les virus Slammer et CodeRed ne se seraient pas propagés si certaines fonctionnalités n'avaient pas été activées par défaut ILoveYou (et d'autres virus) ne se serait pas propagé si l'écriture de script avait été désactivée Désactivez tout le reste.
31
Se méfier des entrées utilisateur Valider toutes les entrées Considérer que toute entrée est néfaste jusqu'à preuve du contraire Rechercher les entrées valides et refuser toutes les autres Limiter et/ou rejeter les entrées utilisateur avec : Contrôles de types Contrôles de longueurs Contrôles de limites Contrôles de formats Validator.ValidationExpression = "\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"; http://regexlib.com/Default.aspx http://www.3leafsolutions.com/resources/articles/regex.as px RegExp Workbench sur www.gotdotnet.com
32
Défense en profondeur (1) Utiliser plusieurs garde-barrières SSL Pare-feu ISA IIS SQL Server Pare-feu ISA IPSec
33
Défense en profondeur (2) Appliquer des mesures appropriées à chaque niveau Contrôler la sécurité Application.dll Application.exe Contrôler la sécurité Sécuriser la ressource avec une ACL Application.dll
34
Défense en profondeur (3) Appliquer des ACL fortes aux ressources Concevez des ACL dans l'application dès le début Appliquez les ACL aux fichiers, dossiers, pages Web, paramètres du Registre, fichiers de base de données, imprimantes et objets contenus dans Active Directory Créez vos propres ACL pendant l'installation de l'application Ajoutez des ACE DENY N'utilisez pas les DACL NULL
35
Se méfier de la sécurité par la dissimulation Ne cachez pas les clés de sécurité dans des fichiers Méfiez-vous des clés du Registre non documentées Partez toujours du principe qu'un intrus en sait autant que vous
36
Utiliser DPAPI pour protéger la confidentialité Deux fonctions DPAPI : CryptProtectDataCryptUnprotectData Deux magasins pour les données cryptées avec DPAPI : Magasin d'utilisateur Magasin d'ordinateur
37
D é monstration 2 DPAPI Stockage de cha î nes de connexion dans Web.config Cryptage de cha î nes de connexion avec DPAPI Installation de l'utilitaire Aspnet_setreg Utilisation d'attributs crypt é s dans un fichier de configuration Octroi d'autorisations sur des cl é s de Registre
38
Échouer intelligemment (1) Si votre code échoue, vérifiez qu'il le fait de manière sécurisée DWORD dwRet = IsAccessAllowed(…); if (dwRet == ERROR_ACCESS_DENIED) { // Échec du contrôle de sécurité. // Informer l'utilisateur que l'accès est refusé } else { // Contrôle de sécurité OK. // Effectuer la tâche… } Que faire si IsAccessAllowed() renvoie ERROR_NOT_ ENOUGH_MEMORY ? Que faire si IsAccessAllowed() renvoie ERROR_NOT_ ENOUGH_MEMORY ?
39
Échouer intelligemment (2) Ne pas faire : Révéler des informations dans des messages d'erreur Utiliser des ressources immédiatement après une défaillance Faire : Utiliser des blocs de gestion des exceptions pour empêcher la propagation des erreurs vers l'appelant Écrire les échecs suspects dans un journal des événements
40
Tester la sécurité Impliquez les équipes de test dès le début des projets Utilisez la modélisation des menaces pour développer une stratégie de test de sécurité Pensez comme l'ennemi. Soyez comme l'ennemi. Testez comme l'ennemi. Automatisez les attaques avec des scripts et des langages de programmation de niveau inférieur Soumettez des données non valides Supprimez ou refusez l'accès aux fichiers ou aux entrées de Registre Testez avec un compte non administrateur Apprenez à connaître votre ennemi Quelles techniques et technologies utiliseront les pirates ? Quelles techniques et technologies peuvent utiliser les testeurs ?
41
Tirer les leçons de ses erreurs Si vous rencontrez un problème lié à la sécurité, tirez-en les leçons : Comment est arrivée l'erreur de sécurité ? Le code contient-il plusieurs fois cette même erreur ? Comment aurait-elle pu être évitée ? Que faut-il changer pour que ce type d'erreur ne se reproduise pas ? Faut-il actualiser le matériel de formation ou les outils d'analyse ?
42
Résumé de la session Processus de développement sécurisé Modélisation des menaces Atténuation des risques Méthodes conseillées pour améliorer la sécurité
43
Pour plus d'informations Site Microsoft sur la sécurité (tout public) http://www.microsoft.com/france/securite/ default.asp http://www.microsoft.com/france/securite/ default.asp Site MSDN sur la sécurité (développeurs) http://msdn.microsoft.com/securityhttp://msdn.microsoft.com/security (en anglais) http://msdn.microsoft.com/security Site TechNet sur la sécurité (informaticiens) http://www.microsoft.com/france/technet/themes/ secur/default.asp http://www.microsoft.com/france/technet/themes/ secur/default.asp
44
Étapes suivantes Être informé sur la sécurité Être informé sur la sécurité S'inscrire aux bulletins de sécurité : S'inscrire aux bulletins de sécurité : http://www.microsoft.com/security/security_bulletins/alerts2.asp http://www.microsoft.com/security/security_bulletins/alerts2.asp (en anglais) http://www.microsoft.com/security/security_bulletins/alerts2.asp Obtenir l'aide la plus récente de Microsoft sur la sécurité : Obtenir l'aide la plus récente de Microsoft sur la sécurité : http://www.microsoft.com/france/securite/default.asp Obtenir des formations supplémentaires sur la sécurité Obtenir des formations supplémentaires sur la sécurité Trouver des séminaires de formation en ligne et en classe : Trouver des séminaires de formation en ligne et en classe : http://www.microsoft.com/france/events/default.asp Trouver un centre CTEC local pour des cours pratiques : Trouver un centre CTEC local pour des cours pratiques : http://www.microsoft.com/france/formation/centres/recherche.asp
45
Questions ?
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.