View
102
Download
0
Category
Preview:
Citation preview
Ecrire du code sécurisé:Un regard sur les bonnes pratiques d’implémentation sur Vista
Eric Mittelette-Eric VerniéRelation Technique Développeurs ; ericmitt@microsoft.comericv@microsoft.com Microsoft France
Agenda
Bonnes pratiques et top IssuesCe qu’apporte VistaDémos!
Dix règles immuables de sécurité
Règle 1 : si une personne malveillante parvient à vous convaincre d'exécuter son programme sur votre ordinateur, ce dernier ne vous appartient plus Règle 2 : si une personne malveillante parvient à altérer le système d'exploitation de votre ordinateur, ce dernier ne vous appartient plus Règle 3 : si une personne malveillante bénéficie d'un accès physique illimité à votre ordinateur, ce dernier ne vous appartient plus Règle 4 : si vous autorisez une personne malveillante à télécharger des programmes sur votre site Web, ce dernier ne vous appartient plus Règle 5 : des mots de passe forts pour une meilleure sécurité Règle 6 : plus l'administrateur est digne de confiance plus l'ordinateur est sûr Règle 7 : les données chiffrées ne sont en sécurité que si la clé de déchiffrement l'est également Règle 8 : mieux vaut un antivirus obsolète que pas d'antivirus du tout Règle 9 : l'anonymat total est irréalisable, dans la vie comme sur InternetRègle 10 : la technologie n'est pas une panacée
Les 10 grandes règles de sécurité qu'un développeur doit connaître pour protéger son code– M Howard 02/2002
Se méfier des entrées utilisateurSe protéger contre les saturations de tamponÉviter les scripts inter-siteN'exigez pas d'autorisations d'administrateur système (sa)Attention au code de cryptage !Réduisez votre profil d'attaqueUtilisez le principe du moindre privilègeFaites attention aux modes de défaillanceL'emprunt d'identité est fragileÉcrivez des applications que les non-administrateurs puissent réellement utiliser
8 règles simples pour le développement d’un code mieux sécurisé – M Howard 12/2006
Pratique n°1 : Assumer la responsabilitéPratique n°2 : Ne jamais se fier aux donnéesPratique n°3 : Modéliser les menaces à l'encontre de votre codePratique n°4 : Conserver une longueur d'avancePratique n°5 : FuzzingPratique n°6 : Ne pas écrire de code non sécuriséPratique n°7 : Reconnaître l'asymétrie stratégiquePratique n°8 : Utiliser les meilleurs outils disponibles
Développer pour Vista
Problèmes Hygiène du Code Apports Vista
Entrées utilisateursSe méfier des entrées utilisateurSe protéger contre les saturations de tamponÉviter les scripts inter-site
Contrôle des saisies utilisateurRegEx, double check (client ET Serveur)Analyse statique de code sur buffer overrun, XSS(*), SQL InjectionTest&Fuzz
/ASLR
Qualité du codeAttention au code de cryptage !Réduisez votre profil d'attaqueFaites attention aux modes de défaillanceUtilisez le principe du moindre privilège
Utilisation de crypto « validée »Installation par défaut et droit miniRègle du moindre privilègeGestion des cas d’erreurUtiliser CAS et Crypto .NET3.0Analyse statique du codeTest&Fuzz
Nouvelles API de cryptoKernel Patch Protection
Gestion des droitsN'exigez pas d'autorisations d'administrateur système (sa)L'emprunt d'identité est fragileÉcrivez des applications que les non-administrateurs puissent réellement utiliser
Identifier les rôles et droits nécessairesIdentifier les ressources critiquesIsoler les codes nécessitant des droits administrateurs
UACVirtualisationCardSpace
(*) une version d’anti-XSS est dispo (encodage des chaines)
Entrées utilisateur
Code .NET 3.0 Code Natif
SQLInjection Utiliser les objets paramètres dans ADO.NET
Utiliser les objets paramètres dans OLEDB, ADO, ODBC…
Valider les entrées
•Valider la taille des buffers•Utiliser les Expressions Régulières de .NET•Utiliser les contrôles de saisie ASP.NET et valider coté client et serveur
•Valider la taille des buffers•Utiliser la CRT Safe•Utiliser les Expressions Régulières •Utiliser /GS pour les buffers overrun•/DynamicBase (ASLR)
Cross Scripting Site
Utiliser la bibliothèque .NET anti-XSS
Valider tous les champs…
Qualité du code
Code .NET 3.0 Code Natif
Cryptographie .Utiliser les classes .NETSecureString.NET DPAPIHash des mots de passe
Utiliser CAPICOMUtiliser CNGDPAPI natif
Moindre privilège Utiliser CASRole Based SecurityDebug in zone de .NET
Utiliser les ACLUtiliser des token restreints
Code de défaillance Rester « discret » dans les msg d’erreur
/SafeSEH
Gestion des droits
Code .NET 3.0 Code Natif
N’exiger pas des droits administrateur
•UAC•Isoler les parties « admin » du code•CAS et RoleBased
•UAC
Apports de Vista/aslrUAC (cf. LabUAC en libre service)Virtualisation
Démo
Ressourceshttp://www.infosecinstitute.com/blog/2005/12/fuzzers-ultimate-list.htmlhttp://msdn.microsoft.com/msdnmag/issues/06/11/ExtendingSDL/default.aspx?loc=frhttp://msdn2.microsoft.com/en-us/security/default.aspx http://msdn.microsoft.com/msdnmag/issues/04/11/AttackSurface/http://msdn.microsoft.com/msdnmag/issues/05/11/SDL/http://msdn.microsoft.com/msdnmag/issues/02/09/SecurityTips/http://msdn.microsoft.com/msdnmag/issues/06/11/SecureHabits/Default.aspx?loc=frhttp://technet.microsoft.com/en-us/windowsvista/aa905108.aspxhttp://technet2.microsoft.com/WindowsVista/en/library/00d04415-2b2f-422c-b70e-b18ff918c2811033.mspx?mfr=true http://blogs.msdn.com/uac/http://blogs.msdn.com/windowsvistasecurity/archive/2006/08/11/695993.aspxhttp://www.microsoft.com/technet/windowsvista/security/guide.mspxhttp://technet.microsoft.com/en-us/windowsvista/aa905072.aspxhttp://msdn.microsoft.com/library/default.asp?url=/workshop/security/protmode/overviews/pmie_intro.asphttp://www.microsoft.com/technet/prodtechnol/windows/appcompatibility/default.mspxhttp://windowshelp.microsoft.com/Windows/en-US/Help/bf416877-c83f-4476-a3da-8ec98dcf5f101033.mspxhttp://www.microsoft.com/technet/desktopdeployment/bdd/2007/AppCompact.mspx
La référence technique
pour les IT Pros :technet.microsoft.com
La référence techniquepour les développeurs :msdn.microsoft.com
S’informer - Un portail d’informations, des événements, une newsletter bimensuelle personnalisée
Se former - Des webcasts, des articles techniques, des téléchargements, des forums pour échanger avec vos pairs
Bénéficier de services - Des cursus de formations et de certifications, des offres de support technique
Visual Studio 2005 +
Abonnement MSDN Premium
Abonnement TechNet Plus :
Versions d’éval + 2 incidents support
© 2007 Microsoft France
Votre potentiel, notre passion TM
Recommended