1 / 30

Développement Sécurisé Tour Novembre-Décembre 2005

Développement Sécurisé Tour Novembre-Décembre 2005. Eric Mittelette, Eric Vernié ericmitt@microsoft.com ericv@microsoft.com Microsoft France – DPE Novembre 2005. Agenda. Partie I : Méthodologie Sécurité et le développement Partie II : Hack et code Top X des problèmes de développement

terra
Download Presentation

Développement Sécurisé Tour Novembre-Décembre 2005

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Développement SécuriséTour Novembre-Décembre 2005 Eric Mittelette, Eric Vernié ericmitt@microsoft.com ericv@microsoft.com Microsoft France – DPE Novembre 2005

  2. Agenda • Partie I : Méthodologie • Sécurité et le développement • Partie II : Hack et code • Top X des problèmes de développement • Conclusion

  3. Partie I: Sécurité et le développement • Stratégie de sécurité Microsoft • SD3 - SDL • Analyse des risques, outils, méthodologie • Stratégie de développement sécurisé • Informatique de confiance et SDL (WSI) • STRIDE Model et analyse des menaces … • Security et ressource humaine… • Outils de test et d’analyse de code … • PAG de sécurité • http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/SecurityGuidanceIndex.asp

  4. 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 utilisateur • Se protéger contre les saturations de tampon • Éviter les scripts inter-site • N'exigez pas d'autorisations d'administrateur système (sa) • Attention au code de cryptage ! • Réduisez votre profil d'attaque • Utilisez le principe du moindre privilège • Faites attention aux modes de défaillance • L'emprunt d'identité est fragile • Écrivez des applications que les non-administrateurs puissent réellement utiliser

  5. Partie II • « Top 10 » des questions de sécurité • Contrôle des saisies • Problèmes liés à la localisation • Protéger un secret • Utiliser la cryptographie • Problèmes de déni de service • Contrôler l’exécution du code • Sécurité et gestion des rôles • Propriétés intellectuelle • Sécuriser un site WEB • Sécuriser un Web Service

  6. Toute saisie est source de problème • Point fondamental lors de la conception • Identifier au plus tôt saisie,règles de saisie • Saisie et Buffer overrun dans le code C/C++ • Les formes canoniques (piège dans les url) • Saisie et base de données (Sql injection) • Saisie sur le Web et XSS (cross scripting site) • Denis de service et robustesse des codes http://www.microsoft.com/france/technet/securite/secmod94.mspx#EIBAC

  7. voidUnSafe(constchar*uncheckedData) { charlocalVariable[4]; intanotherLocalVariable; strcpy(localVariable,uncheckedData); } Exemplededébordementdelapile Hautdelapile char[4] int Adressederetour

  8. Données Pointeur Données Données Pointeur Pointeur Débordementdesegmentsdemémoire • Remplacelesdonnéesstockéesdanslesegment • Plus difficile à exploiter qu'un débordement de mémoire tampon xxxxxxxxxxxxxx strcpy

  9. Problèmes liés à la localisation • La localisation peut être une source de faille de sécurité. • Notamment en C/C++ et lors de la manipulation des chaines UNICODE • MultiByteToWideChar() • Outil d’analyse statique de code • /Analyse et VS2005 (C++) http://www.microsoft.com/france/technet/securite/default.mspx

  10. Pause • 

  11. Protéger un secret • Identifier les données « secrètes » de l’application • Chaîne de connexion • Saisie d’un mot de passe • SecureString • Gestion des mots de passe dans .NET vs natif • Utiliser la cryptographie et choisir la bonne approche… • Ne pas ré inventer la roue • Rester à jour des hack et parades http://www.microsoft.com/france/msdn/securite/secmod39.mspx

  12. Utiliser la Cryptographie • Différents algorithmes • Symétrique – asymétrique • Hash • Signature, et certificat • .NET encapsule certains d’entre eux • Cas concrets: • Comment transmettre un secret à un utilisateur • Gérer le mot de passe de l’utilisateur http://www.microsoft.com/france/msdn/securite/secmod39.mspx

  13. Problème de Déni de service  • L’attaque vise a mettre a genoux les application serveur • Buffer énorme, recherche de faille technique, hack sur les services du serveur… • Utilisation abusive du compte sa pour une 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

  14. Contrôle de l’exécution du code .NET • Code Access Security • Initiative .NET de contrôle de l’exécution d’un code • Tout code appartient a un groupe de code, un groupe de code va posséder un jeu d’autorisation. • On peut créer ses jeux de permission http://www.microsoft.com/france/technet/securite/secmod79.mspx

  15. Gestion des rôles applicatifs .NET • Notion d’ Identificateur et de Rôles • Comparable au mécanisme COM+ • Rôle et users peuvent être des comptes/groupes NT ou créé par la logique applicative • Couplage « de fait » avec ActiveDirectory… • Et/ou Rôles Applicatifs • Role Based Security est traité au même niveau que Code Access Security • Même mécanisme d’interception/Eception • Utilise l’Objet : PrincipalPermission • L’application en cours doit en avoir les droits… • Le rôle est porté par la thread d’exécution… http://www.microsoft.com/france/technet/securite/secmod80.mspx

  16. Protection de la propriété intellectuelle • Le code MSIL est lisible, et l’on peut y comprendre les algorithmes utilisés • Les Obfuscator sont la réponse • Attention aux idées reçue sur .NET • Dé assemblage et code natif… http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/vsent7/html/vxoriDesignConsiderationsForDistributedApplications.asp

  17. Sécuriser un site WEB • Authentification ASP.NET • Config.web • Windows, Passport, Forms, None • En accord avec l’Authentification IIS • Anonyme • Basic/Digest • Integrated • Autorisation (web.config) • allow • deny http://www.microsoft.com/france/technet/securite/secmod08.mspx

  18. Sécuriser un WebService • WS-I WS-* • Sécurité indépendante des couches de transports • Travail sur les enveloppes SOAP (header) http://www.microsoft.com/france/technet/securite/secmod10.mspx

  19. Service Web et la sécurité • La sécurité se décline en plusieurs notions • Authentification • Passer une identité au Service Web • Autorisation • Donner des droits sur des ressources • Confidentialité des données • Contrôler les données • Intégrité des données • Assurer que les données ne soient pas altérées • Dénie de Service • Bloquer les accès aux Services

  20. LesmessagesXMLtransmettentdesinformationsdesécurité Informations d'identification Signatures numériques Les messages peuvent être cryptés Client Service XML XML XML XML Touttransport Transport Transport Lasécuritéestindépendanteduprotocoledetransport Sécuritédeniveaumessage

  21. Sécurité au niveau Applicatif • Authentification • Étendre le modèle de Service Web ASP.NET • Utilisation d’en-têtes SOAP personnalisés • Flexibilité d’utiliser son propre mécanisme • Intégrité et Confidentialité • Utilisation des APIs de cryptographie et les standards du Web en terme de signatures et d’encryptage • Alternative : est l’utilisation de SSL combiné avec les entêtes SOAP • Quand l’utiliser ? • Utilisation de schémas de bases de données existant pour la validation d’utilisateurs ou de rôles • Crypter une partie du message plutôt que la totalité du flux • Indépendant du transport

  22. WS-* Architecture des Spécifications SecurityWS-Security WS-Trust WS-Federation ReliabilityWS-Reliable Messaging TransactionsWS-BusinessActivity WS-Coordination WS-AtomicTransaction Metadata WSDL, WS-Policy Messaging SOAP, WS-Addressing XML XML, XSD, XPath Transports HTTP , HTTPS, SMTP, TCP… Livre blanc commun IBM Microsoft:http://msdn.microsoft.com/webServices/default.aspx?pull=/library/en-us/dnwebsrv/html/wsoverview.asp

  23. Web Services Architecture • Modulaire : Composition d’en-têtes SOAP • Largement adoptée • Toutes nouvelles spécifications XML sont étudiées par l’organisme WS-I • L’industrie centralise ses efforts sur l’interopérabilité des outils et des plates-formes autour de Services Web • On réutilise, on ne réinvente pas • Tous les modules sont indépendants des plates-formes et langages

  24. Message SOAP Modulaire : Exemple <?xml version="1.0" encoding="utf-8"?> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <S:Header> <m:path xmlns:m="http://schemas.xmlsoap.org/rp"> <m:action>http://tickers-r-us.org/getQuote</m:action> <m:to>soap://tickers-r-us.org/stocks</m:to> <m:from>mailto:johnsmith@isps-r-us.com</m:from> <m:id>uuid:84b9f5d0-33fb-4a81-b02b-5b760641c1d6</m:id> </m:path> <wssec:credentials xmlns:wssec="http://schemas.xmlsoap.org/ws/2001/10/security"> <wslic:binaryLicense xmlns:wslic="http://schemas.xmlsoap.org/ws/2001/10/licenses" wslic:valueType="wslic:x509v3" xsi:type="xsd:base64Binary">      dWJzY3JpYmVyLVBlc…..eFw0wMTEwMTAwMD </wslic:binaryLicense> </wssec:credentials> </S:Header> <S:Body> <tru:StockSymbol xmlns:tru="http://tickers-r-us.org/payloads"> QQQ </tru:StockSymbol> </S:Body> </S:Envelope> Routage Sécurité Et Licence

  25. Implémentation Microsoft • Web Services Enhancements 1.0 ,2.0 et 3.0 pour Microsoft .NET • Nouvelle bibliothèque de classes Microsoft .NET de Services Web (Microsoft.Web.Services)

  26. Runtime WSE … • Moteur d’application des protocoles WS-*, à des messages SOAP • Fournit un modèle de programmation pour manipuler les entêtes SOAP. • Implémentation côté client et serveur • Notion de pipelines et de filtres • Lecture des entêtes SOAP entrant • Écriture dans les entêtes SOAP sortant • Transformation du corps SOAP (Cryptage)

  27. Ma boite à outil • Les outils • CAS cnfg et Caspol… • FxCop, /Analyse • Test unitaires intégrés dans VS2005 • Obfuscator • Outil de hacking, pour tester les attaques connues • Outil de configuration du WEB (ASP-v2) • Et la presse…d’éric !

  28. Conclusion • Restons vigilant ! • Cycle itératifs sur la sécurité dés la phase de conception jusqu’à la phase de maintenance… • Créer une équipe sécurité, penser à la formation et mise a jour annuelle des développeurs • S’équiper d’outils de test et de mesures…

  29. Ressource • Writing Secure Code – M Howard • Ouvrage de référence pour les développeurs • SDL et publication • PAG • Guideline pour la securité avec code à l’appuis • Centre de développements sur MSDN • Webcast de ces rencontres • Démo, webcast articles, réguliers http://www.microsoft.com/france/msdn/securite/default.mspx

More Related