13
Ecrire du code sécurisé: Un regard sur les bonnes pratiques d’implémentation sur Vista Eric Mittelette-Eric Vernié Relation Technique Développeurs ; [email protected] [email protected] Microsoft France

Bonnes pratiques et top Issues Ce quapporte Vista Démos!

Embed Size (px)

Citation preview

Page 1: Bonnes pratiques et top Issues Ce quapporte Vista Démos!

Ecrire du code sécurisé:Un regard sur les bonnes pratiques d’implémentation sur Vista

Eric Mittelette-Eric VerniéRelation Technique Développeurs ; [email protected]@microsoft.com Microsoft France

Page 2: Bonnes pratiques et top Issues Ce quapporte Vista Démos!

Agenda

Bonnes pratiques et top IssuesCe qu’apporte VistaDémos!

Page 3: Bonnes pratiques et top Issues Ce quapporte Vista Dé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

Page 4: Bonnes pratiques et top Issues Ce quapporte Vista Démos!

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

Page 5: Bonnes pratiques et top Issues Ce quapporte Vista Démos!

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

Page 6: Bonnes pratiques et top Issues Ce quapporte Vista Démos!

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)

Page 7: Bonnes pratiques et top Issues Ce quapporte Vista Démos!

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…

Page 8: Bonnes pratiques et top Issues Ce quapporte Vista Démos!

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

Page 9: Bonnes pratiques et top Issues Ce quapporte Vista Démos!

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

Page 10: Bonnes pratiques et top Issues Ce quapporte Vista Démos!

Apports de Vista/aslrUAC (cf. LabUAC en libre service)Virtualisation

Démo

Page 11: Bonnes pratiques et top Issues Ce quapporte Vista Démos!

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

Page 12: Bonnes pratiques et top Issues Ce quapporte Vista Démos!

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

Page 13: Bonnes pratiques et top Issues Ce quapporte Vista Démos!

© 2007 Microsoft France

Votre potentiel, notre passion TM