Un regard sur les bonnes pratiques d'implémentation Eric Mittelette Eric Vernié Microsoft France -...

16
Un regard sur les bonnes pratiques d'implémentation Eric Mittelette Eric Vernié Microsoft France - DPE

Transcript of Un regard sur les bonnes pratiques d'implémentation Eric Mittelette Eric Vernié Microsoft France -...

Page 1: Un regard sur les bonnes pratiques d'implémentation Eric Mittelette Eric Vernié Microsoft France - DPE.

Un regard sur les bonnes pratiques

d'implémentation  

Un regard sur les bonnes pratiques

d'implémentation  

Eric MitteletteEric Vernié

Microsoft France - DPE

Page 2: Un regard sur les bonnes pratiques d'implémentation Eric Mittelette Eric Vernié Microsoft France - DPE.

Les 10 grandes règles de sécurité Qu'un développeur doit connaître pour protéger son code

Se méfier des entrées utilisateurSe méfier des entrées utilisateurSe protéger contre les saturations de tamponSe protéger contre les saturations de tamponÉviter les scripts inter-siteÉviter les scripts inter-siteN'exigez pas d'autorisations d'administrateur N'exigez pas d'autorisations d'administrateur système (sa)système (sa)Attention au code de cryptage !Attention au code de cryptage !Réduisez votre profil d'attaqueRéduisez votre profil d'attaqueUtilisez le principe du moindre privilègeUtilisez le principe du moindre privilègeFaites attention aux modes de défaillanceFaites attention aux modes de défaillanceL'emprunt d'identité est fragileL'emprunt d'identité est fragile

Écrivez des applications que les non-administrateurs Écrivez des applications que les non-administrateurs puissent réellement utiliserpuissent réellement utiliser

http://www.microsoft.com/france/msdn/securite/articles.mspx

Page 3: Un regard sur les bonnes pratiques d'implémentation Eric Mittelette Eric Vernié Microsoft France - DPE.

Agenda

« Top 10 » des questions de sécurité« Top 10 » des questions de sécuritéContrôler les saisiesContrôler les saisies

Problèmes liés à la localisationProblèmes liés à la localisation

Protéger un secretProtéger un secret

Utiliser la cryptographieUtiliser la cryptographie

Problèmes de déni de serviceProblèmes de déni de service

Contrôler l’exécution du codeContrôler l’exécution du code

Sécurité et gestion des rôlesSécurité et gestion des rôles

Propriétés intellectuellePropriétés intellectuelle

Page 4: Un regard sur les bonnes pratiques d'implémentation Eric Mittelette Eric Vernié Microsoft France - DPE.

Toute saisie est source de problème

Point fondamental lors de la conception Point fondamental lors de la conception

Identifier au plus tôt saisie,règles de saisieIdentifier au plus tôt saisie,règles de saisieSaisie et Buffer overrun dans le code C/C++Saisie et Buffer overrun dans le code C/C++

Les formes canoniques (piège dans les url)Les formes canoniques (piège dans les url)

Saisie et base de données (Sql injection)Saisie et base de données (Sql injection)

Saisie sur le Web et XSS (cross scripting site)Saisie sur le Web et XSS (cross scripting site)

Denis de service et robustesse des codesDenis de service et robustesse des codes

http://www.microsoft.com/france/technet/securite/secmod94.mspx#EIBAC

Page 5: Un regard sur les bonnes pratiques d'implémentation Eric Mittelette Eric Vernié Microsoft France - DPE.

void UnSafe (const char* uncheckedData)

{

int anotherLocalVariable;

strcpy (localVariable, uncheckedData);

}

char localVariable[4];

Exemple de débordement de la pile

Haut de la pile

char[4]

int

Adresse de retour

Page 6: Un regard sur les bonnes pratiques d'implémentation Eric Mittelette Eric Vernié Microsoft France - DPE.

Débordement de segments de mémoire

RemplaceRemplace lesles donnéesdonnées stockéesstockées dansdans lele segmentsegment

Plus difficile à exploiter qu'un Plus difficile à exploiter qu'un débordement de mémoire tampondébordement de mémoire tampon

Données

Pointeur

Données

Données

Pointeur

Pointeur

strcpystrcpy xxxxxxxxxxxxxxxxxxxxxxxxxxxx

Page 7: Un regard sur les bonnes pratiques d'implémentation Eric Mittelette Eric Vernié Microsoft France - DPE.

Problèmes liés à la localisation

La localisation peut être une source de La localisation peut être une source de faille de sécurité.faille de sécurité.

Notamment en C/C++ et lors de la Notamment en C/C++ et lors de la manipulation des chaines UNICODEmanipulation des chaines UNICODE

MultiByteToWideCharMultiByteToWideChar() ()

Outil d’analyse statique de codeOutil d’analyse statique de code/Analyse et VS2005 (C++)/Analyse et VS2005 (C++)

http://www.microsoft.com/france/technet/securite/default.mspx

Page 8: Un regard sur les bonnes pratiques d'implémentation Eric Mittelette Eric Vernié Microsoft France - DPE.

Protéger un secret

Identifier les données « secrètes » de Identifier les données « secrètes » de l’applicationl’application

Chaîne de connexionChaîne de connexionSaisie d’un mot de passeSaisie d’un mot de passeSecureString SecureString

Gestion des mots de passe dans .NET vs natifGestion des mots de passe dans .NET vs natif

Utiliser la cryptographie et choisir la Utiliser la cryptographie et choisir la bonne approche…bonne approche…

Ne pas ré inventer la roueNe pas ré inventer la roueRester à jour des hack et paradesRester à jour des hack et parades

http://www.microsoft.com/france/msdn/securite/secmod39.mspx

Page 9: Un regard sur les bonnes pratiques d'implémentation Eric Mittelette Eric Vernié Microsoft France - DPE.

Utiliser la Cryptographie

Différents algorithmesDifférents algorithmesSymétrique – asymétriqueSymétrique – asymétriqueHashHashSignature, et certificatSignature, et certificat

.NET encapsule certains d’entre eux.NET encapsule certains d’entre euxCas concrets:Cas concrets:

Comment transmettre un secret à un Comment transmettre un secret à un utilisateur utilisateur Gérer le mot de passe de l’utilisateurGérer le mot de passe de l’utilisateur

http://www.microsoft.com/france/msdn/securite/secmod39.mspx

Page 10: Un regard sur les bonnes pratiques d'implémentation Eric Mittelette Eric Vernié Microsoft France - DPE.

Problème de Déni de service 

L’attaque vise a mettre a genoux les L’attaque vise a mettre a genoux les application serveurapplication serveur

Buffer énorme, recherche de faille Buffer énorme, recherche de faille technique, hack sur les services du technique, hack sur les services du serveur…serveur…

Utilisation abusive du compte sa pour Utilisation abusive du compte sa pour une base de donnéesune base de données

http://www.microsoft.com/france/technet/securite/secmod97.mspx Menaces et contre mesure :http://www.microsoft.com/france/technet/securite/secmod75.mspx

Page 11: Un regard sur les bonnes pratiques d'implémentation Eric Mittelette Eric Vernié Microsoft France - DPE.

Contrôle de l’exécution du code .NET

Code Access SecurityCode Access SecurityInitiative .NET de contrôle de l’exécution d’un codeInitiative .NET de contrôle de l’exécution d’un codeTout code appartient a un groupe de code, un groupe de code Tout code appartient a un groupe de code, un groupe de code va posséder un jeu d’autorisation.va posséder un jeu d’autorisation.On peut créer ses jeux de permissionOn peut créer ses jeux de permission

Entité de sécurité Description

StratégieStratégie

Définie par les administrateursAppliquée au moment de l'exécutionSimplifie l'administrationContient des autorisationsContient des groupes de codes

GroupeGroupe dede codescodes

Associe des composants similairesBasé sur les preuvesLié à un ou plusieurs jeux d'autorisations

JeuJeu d'autorisationsd'autorisations

Est un ensemble d'autorisations accordéeshttp://www.microsoft.com/france/technet/securite/secmod79.mspx

Page 12: Un regard sur les bonnes pratiques d'implémentation Eric Mittelette Eric Vernié Microsoft France - DPE.

Gestion des rôles applicatifs .NET

Notion d’ Identificateur et de RôlesNotion d’ Identificateur et de RôlesComparable au mécanisme COM+Comparable au mécanisme COM+

Rôle et users peuvent être des Rôle et users peuvent être des comptes/groupes NT ou créé par la logique comptes/groupes NT ou créé par la logique applicativeapplicative

Couplage « de fait » avec ActiveDirectory…Couplage « de fait » avec ActiveDirectory…

Et/ou Rôles ApplicatifsEt/ou Rôles Applicatifs

Role Based Security est traité au même niveau Role Based Security est traité au même niveau que Code Access Securityque Code Access Security

Même mécanisme d’interception/EceptionMême mécanisme d’interception/Eception

Utilise l’Objet : PrincipalPermissionUtilise l’Objet : PrincipalPermissionL’application en cours doit en avoir les droits…L’application en cours doit en avoir les droits…

Le rôle est porté par la thread d’exécution…Le rôle est porté par la thread d’exécution…http://www.microsoft.com/france/technet/securite/secmod80.mspx

Page 13: Un regard sur les bonnes pratiques d'implémentation Eric Mittelette Eric Vernié Microsoft France - DPE.

Protection de la propriété intellectuelle

Le code MSIL est lisible, et l’on peut y Le code MSIL est lisible, et l’on peut y comprendre les algorithmes utiliséscomprendre les algorithmes utilisés

Les Obfuscator sont la réponseLes Obfuscator sont la réponseAttention aux idées reçue sur .NETAttention aux idées reçue sur .NET

Dé assemblage et code natif…Dé assemblage et code natif…

http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/vsent7/html/vxoriDesignConsiderationsForDistributedApplications.asp

Page 14: Un regard sur les bonnes pratiques d'implémentation Eric Mittelette Eric Vernié Microsoft France - DPE.

Conclusion

Restons vigilant !Restons vigilant !

Cycle itératifs sur la sécurité dés la Cycle itératifs sur la sécurité dés la phase de conception jusqu’à la phase de phase de conception jusqu’à la phase de maintenance…maintenance…

Créer une équipe sécurité, penser à la Créer une équipe sécurité, penser à la formation et mise a jour annuelle des formation et mise a jour annuelle des développeursdéveloppeurs

S’équiper d’outils de test et de S’équiper d’outils de test et de mesures…mesures…

Page 15: Un regard sur les bonnes pratiques d'implémentation Eric Mittelette Eric Vernié Microsoft France - DPE.

Microsoft Confidential – NDA Material

Sur MSDN, retrouvez tout un ensemble de Sur MSDN, retrouvez tout un ensemble de ressources liées à la sécurité pour les ressources liées à la sécurité pour les développeursdéveloppeurs

Les meilleures articles techniques en françaisLes meilleures articles techniques en français

Les Webcasts (vidéos de formation) enregistrées lors Les Webcasts (vidéos de formation) enregistrées lors des Rencontres Sécurité de décembre 2005, et ceux, des Rencontres Sécurité de décembre 2005, et ceux, à venir, des Journées Microsoft de la Sécuritéà venir, des Journées Microsoft de la Sécurité

Des cours en ligne, en français et gratuitsDes cours en ligne, en français et gratuits

Les derniers bulletins de sécuritéLes derniers bulletins de sécurité

Et le jeu concours « Sale bug ! »Et le jeu concours « Sale bug ! »Chaque mois, un bug caché dans une portion de codeChaque mois, un bug caché dans une portion de code

Le mois suivant, la solution sur le site avec des liens vers des articles pour Le mois suivant, la solution sur le site avec des liens vers des articles pour en savoir plusen savoir plus

Et des lots à gagner, tout au long de l’annéeEt des lots à gagner, tout au long de l’année

Page 16: Un regard sur les bonnes pratiques d'implémentation Eric Mittelette Eric Vernié Microsoft France - DPE.