Microsoft Security    Development LifeCycle :     par ou commencer ?Sébastien Gioria (OWASP French Chapter Leader & OWASP ...
Qui suis-je ?                         Consultant Sécurité Sénior au                               sein du cabinet d’audit ...
site:mycompany.        com	  	         hacked	                                            OUI      NON                    ...
Agenda•  La souris, le fromage et le chat•  Qu’est-ce que Microsoft SDL ?•  SDL Warrior•  Par ou commencer•  Et après…    ...
Pourquoi ?         Les hackers sont astucieux                    5
Le cout est important                  6
Soyons donc précis !                 7
Security Development LifeCycle(SDL)•  2004 : « Stop Security Kiddies »•  Méthode de développement sécurisée de tous les pr...
9
Formation•  Obligatoire pour toute l’équipe projet : Architecte, Développeur,     Testeur, Chef de projet•    Contenu mini...
Spécifications - Exigences de sécurité1.  Identifier l’équipe ou la personne qui sera responsable du   suivi et de la gest...
Spécifications - Exigences de respectde la vie privée1.  Désigner le conseiller en respect de la vie privée2.  Désigner le...
Spécifications – Recommandationsde sécurité1.  Mettre en place le plan de sécurité2.  Vérifier que l’outil de bogue peut p...
Spécifications – Evaluer le projet etles couts éventuels1.  Evaluer les portions du projet nécessitant :   •  modélisation...
Conception1.  Effectuer une revue de conception2.  Effectuer des Analyses de risque   •  Modélisation des menaces (STRIDE/...
STRIDE ?Catégorie	                                    Descrip,on	  Pas	  un	  bogue	  de	  sécurité	  	  Usurpa0on	  (Spoo...
DREAD ?Catégorie	                  Descrip,on	  Dommage	  Poten0el	        Si	  la	  menace	  se	  produit,	  quel	  est	 ...
Calcul final DREAD     DAMAGE     REPRODUCIBILITY     EXPLOITABILITY     AFFECTED USERS                       5     DISCOV...
Implémentation1.  Creer la documentation et les outils permettant   d’adresser les problèmes de sécurité et de vie privée2...
Vérification1.  Utilisation du Fuzzing   •  Fichier   •  Réseau   •  Web2.  Revue de code   •  Définir les priorités de re...
Diffusion1.  Effectuer une revue des manipulations de données   privées2.  Préparer les équipes au 2ème mercredi du mois  ...
Réponse aux incidents1.  Définition des processus de réponses   •  Equipe dédiées à la vie privée   •  Equipes autres2.  M...
23
Avant-propos…•  Personne n’a la solution !    •  Sinon on ne serait pas aux aguets tous les 2èmes       mardi du mois.    ...
0x01Régler 80% des problèmes avec 20% d’effort                    25
0x10b•  Se jeter à l’eau :       Je corrige tous les problèmes de       sécurité que je trouve !           Si vous n’êtes ...
Le problème•  Confidentialité   •  Protéger les données, les systèmes, les processus      d’un accès non autorisé•  Intégr...
Le problème•  Traçabilité       •  Assurer le cheminement de toute donnée, processus       et la reconstruction des transa...
Le problème              29
30
Formation•  OWASP Top10 2010 : Les 10 risques les plus critiques   des applications•  Classification des Menaces (WASC)   ...
Définition des exigencesOWASP – ASVS ?•    Quelles sont les fonctionnalités à mettre en oeuvre dans les     contrôles de s...
Modélisation des attaques•  Utilisation des méthodologies   :   •  STRIDE   •  ISO 27005                Garder a l’esprit ...
Mettre en place des tableaux de décision                           34
Utilisation des bons outils•    Formation      •  Cf précédemment•    Visual Studio Team System (VSTS) 2008      •  SDL Pr...
Exemple CWE25                36
Authenticator                                                                    User                                     ...
Revue de code•  Code Managé :   •  CAT.NET   •  FxCop•  Microsoft Source Code Analyzer for SQL Injection.•  OWASP Code Cra...
39
Tests de pénétration1.  S’adresser à des cabinets/consultants dont le métier est   la gestion des risques informatiques.2....
ET	  APRES	  ?	           41
Et si vous commenciez ?• Il y a trois pas à franchir  1.  Commencer :     •    Formation => cout == 0     •    CheckList =...
A bientôtIl ny a quune façon déchouer, cest dabandonner avant              davoir réussi [Olivier Lockert]                ...
Upcoming SlideShare
Loading in...5
×

2011 02-08-ms tech-days-sdl-sgi-v02

875

Published on

Présentation de SDL et d'une approche pragmatique pour l'implémentée

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
875
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
27
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

2011 02-08-ms tech-days-sdl-sgi-v02

  1. 1. Microsoft Security Development LifeCycle : par ou commencer ?Sébastien Gioria (OWASP French Chapter Leader & OWASP GlobalEducation Comittee Member)sebastien.gioria@owasp.org 8 Février 2011- Paris - Palais des congrès 1
  2. 2. Qui suis-je ? Consultant Sécurité Sénior au sein du cabinet d’audit Président du CLUSIR Poitou-Charentes OWASP France Leader - Evangéliste - OWASP Global Education Comittee Member (sebastien.gioria@owasp.org) CISA && ISO 27005 Risk Manager q  Expérience en Sécurité des Systèmes d’Information > 0x0D années q  Différents postes de manager SSI dans la banque, l’assurance et les télécomsTwitter :@SPoint q  Expertise Technique ü  Gestion du risque, Architectures fonctionnelles, Audits ü  S-SDLC : Secure-Software Development LifeCycle. ü  PenTesting, Digital Forensics ü  Consulting et Formation en Réseaux et Sécurité q Domaines  de  prédilec0on  :     ü  Web,    WebServices, Insécurité du Web.   2
  3. 3. site:mycompany. com     hacked   OUI NON OK, site:xssed.com   mycompany.com   OUI mais alors ? NON  Laissez  moi  vous   Votre  applica,on  sera  piratée   reme5re  sur  la   bonne  voie   3
  4. 4. Agenda•  La souris, le fromage et le chat•  Qu’est-ce que Microsoft SDL ?•  SDL Warrior•  Par ou commencer•  Et après… 4
  5. 5. Pourquoi ? Les hackers sont astucieux 5
  6. 6. Le cout est important 6
  7. 7. Soyons donc précis ! 7
  8. 8. Security Development LifeCycle(SDL)•  2004 : « Stop Security Kiddies »•  Méthode de développement sécurisée de tous les produits Microsoft ! Vainqueurs a la CVE 2010 Produit   1er   2ème   3ème   Système   Linux  Kernel   Windows  Server   Apple  IOS  (35)   d’exploita0on   (129)   2008  (93)   SGBD   Oracle  (36)   Mysql  (3)   MS-­‐SQL  Server   (1)   Navigateur   Chrome  (164)   Safari  (130)   Firefox  (115)   8
  9. 9. 9
  10. 10. Formation•  Obligatoire pour toute l’équipe projet : Architecte, Développeur, Testeur, Chef de projet•  Contenu minimum •  Conception sécurisée •  Modélisation des menaces •  Ecriture de code sécurisé •  Tests de sécurité •  Respect de la vie privée•  Contenu avancé •  Architecture et conception de la sécurité. •  Conception de l’interface utilisateur •  Problèmes de sécurité en détail •  Processus de réponse de sécurité •  Mise en œuvre d’atténuations personnalisées de menaces 10
  11. 11. Spécifications - Exigences de sécurité1.  Identifier l’équipe ou la personne qui sera responsable du suivi et de la gestion de la sécurité2.  Vérifier que les outils de suivi et de rapport des bogues assurent effectivement le suivi des problèmes de sécurité3.  Définir et documenter l’échelle des bogues et les valeurs et seuil ainsi attribués aux bogues de sécurité. L’échelle des bogues et le seuil associé ne doivent jamais être assouplis, même si la date de fin du projet approche. 11
  12. 12. Spécifications - Exigences de respectde la vie privée1.  Désigner le conseiller en respect de la vie privée2.  Désigner le responsable dans l’équipe pour la vie privée3.  Définir et documenter l’échelle, les valeurs et seuil attribués aux bogues de respect de la vie privée 12
  13. 13. Spécifications – Recommandationsde sécurité1.  Mettre en place le plan de sécurité2.  Vérifier que l’outil de bogue peut prendre en compte les éléments de la modélisation des attaques . Il doit comporter 2 fonctionnalités : •  Il doit être compatible STRIDE •  Permettre d’identifier la cause du Bug 13
  14. 14. Spécifications – Evaluer le projet etles couts éventuels1.  Evaluer les portions du projet nécessitant : •  modélisations des menaces •  revues de conception de sécurité •  tests de pénétration2. Vérifier le taux d’impact sur la vie privée •  P1 : Risque élevé sur le respect de la vie privé => Le produit enregistre ou transfère des informations confidentielles •  P2 : Risque modéré => un transfert unique de données anonymes, initié par l’utilisateur •  P3 : Risque faible => Rien n’affecte le respect de la vie privée 14
  15. 15. Conception1.  Effectuer une revue de conception2.  Effectuer des Analyses de risque •  Modélisation des menaces (STRIDE/DREAD) •  Code externes •  Analyse des projets classés P1 (vie privée) 15
  16. 16. STRIDE ?Catégorie   Descrip,on  Pas  un  bogue  de  sécurité    Usurpa0on  (Spoofing)   A^aque  par  laquelle  un  a^aquant  ou  un  serveur  non   autorisé  se  fait  passer  pour  un  u0lisateur  ou  un  serveur   valide,  ou  un  code  malveillant  se  présente  comme  valide    Falsifica0on  (Tampering)   Modifica0on  malveillante  des  données    Répudia0on  (Repudia0on)   Menaces  associées  aux  u0lisateurs  qui  nient  avoir   effectué  une  ac0on  sans  que  les  autres  par0es  aient  le   moyen  de  prouver  le  contraire    Divulga0on  d’informa0ons   Menaces  qui  impliquent  l’exposi0on  des  informa0ons  à  (Informa0ons  Disclosure)   des  individus  qui  ne  sont  pas  censés  y  accéder.    Déni  de  service  (Denial  of   A^aques  (DoS)  qui  empêchent  un  u0lisateur  autorisé  Service)   d’accéder  aux  services    Éléva0on  de  privilège   Menace  qui  permet  à  un  u0lisateur  de  s’octroyer  une  (Eleva0on  of  Privilege)   autorisa0on  supplémentaire    Réduc0on  de  la  surface   Il  est  important  d’iden0fier  la  surface  d’a^aque,  même  si  d’a^aque.    (A^ack  Surface   les  interfaces  qui  y  sont  exposées  ne  sont  pas  des  Reduc0on.  )   vulnérabilités  au  sens  technique     16
  17. 17. DREAD ?Catégorie   Descrip,on  Dommage  Poten0el   Si  la  menace  se  produit,  quel  est  le  niveau  de  dommage  :  (Damage)   0  –  Rien   10  –  Total  compromission  Reproduc0ble   Quelle  est  la  complexité  pour  reproduire  la  menace  (Reproducibility)   0  –  quasi-­‐impossible   10  –  pas  d’authen0fica0on,  a  travers  un  navigateur  Web  Exploita0on   De  quoi  a-­‐t-­‐on  besoin  pour  l’exploita0on    (Exploitability)   0  –  connaissance  en  programma0on,  des  ou0ls,  …   10  –  juste  un  navigateur  Web  U0lisateurs  touchés   Combien  d’u0lisateurs  seront  affectés    (Affected  Users)   0  –  Aucun   5  –  Quelques  uns   10  –  Tous  Découverte   La  faille  est-­‐elle  simple  a  découvrir    (Discoverability)   0  –  quasi-­‐impossible   5  –  via  un  sniffing  réseau  ou  autre  type   9  –  les  détails  sont  dans  le  domaine  public   10  –  Il  suffit  de  regarder  la  barre  du  navigateur  Web   17
  18. 18. Calcul final DREAD DAMAGE REPRODUCIBILITY EXPLOITABILITY AFFECTED USERS 5 DISCOVERABILITY 18
  19. 19. Implémentation1.  Creer la documentation et les outils permettant d’adresser les problèmes de sécurité et de vie privée2.  Suivre les bonnes pratiques de développement3.  Intégrer les listes de contrôle de sécurité4.  Effectuer une revue automatisée de code 19
  20. 20. Vérification1.  Utilisation du Fuzzing •  Fichier •  Réseau •  Web2.  Revue de code •  Définir les priorités de revue de code : •  Code critique : noyau, utilisation d’éléments sensible •  Code important : code élevant les privilèges •  Code mineur : rarement utilisé.3.  Effectuer les tests de pénétration •  Boite noire •  Boite blanche4.  Revoir la surface d’attaque et la minimiser si possible 20
  21. 21. Diffusion1.  Effectuer une revue des manipulations de données privées2.  Préparer les équipes au 2ème mercredi du mois Loi de Murphy3.  Effectuer la revue finale de sécurité Dernière version des documents projets et risques à destination de l’équipe sécurité.4.  Publier la version et archiver une copie. 21
  22. 22. Réponse aux incidents1.  Définition des processus de réponses •  Equipe dédiées à la vie privée •  Equipes autres2.  Mise en place des communications •  PGP3.  Interaction avec le cycle de vie 22
  23. 23. 23
  24. 24. Avant-propos…•  Personne n’a la solution ! •  Sinon on ne serait pas aux aguets tous les 2èmes mardi du mois. •  Sinon les bulletins du CERTA seraient vides… •  Et surtout Oracle ne mentirait pas sur son surnom*…•  La plupart des méthodologies sont en version beta mais s’améliorent…•  Ceci est un exemple de ce que l’on peut faire*:unbreakable => dernier Patch Update 10/10 à la CVSS (encore une fois)… 24
  25. 25. 0x01Régler 80% des problèmes avec 20% d’effort 25
  26. 26. 0x10b•  Se jeter à l’eau : Je corrige tous les problèmes de sécurité que je trouve ! Si vous n’êtes pas prêts à corriger, ne cherchez pas ! 26
  27. 27. Le problème•  Confidentialité •  Protéger les données, les systèmes, les processus d’un accès non autorisé•  Intégrité •  Assurer que les données, systèmes et processus sont valides et n’ont pas été modifiés de manière non intentionnelle.•  Disponibilité •  Assurer que les données, systèmes et processus sont accessible au moment voulu 27
  28. 28. Le problème•  Traçabilité •  Assurer le cheminement de toute donnée, processus et la reconstruction des transactions•  « Privacy » •  Assurer que les données personnelles sont sous le contrôle de leur propriétaire Conformité    Adhérer  aux  lois  et  réglementa0ons     Image  de  marque    Ne  pas  se  retrouver  à  la  une  du  journal  «  Le  Monde  »  suite   à  un  incident     28
  29. 29. Le problème 29
  30. 30. 30
  31. 31. Formation•  OWASP Top10 2010 : Les 10 risques les plus critiques des applications•  Classification des Menaces (WASC) Ø http://projects.webappsec.org/Threat-Classification•  CWE/SANS list : Top 25 Most Dangerous Programming Errors.•  http://microsoft.com/sdl/ 31
  32. 32. Définition des exigencesOWASP – ASVS ?•  Quelles sont les fonctionnalités à mettre en oeuvre dans les contrôles de sécurité nécessaires à mon application Spécifications/Politique de sécurité des développements•  Quelle est la couverture et le niveau de rigueur à mettre en oeuvre lors de la vérification de sécurité dune application.•  Comment comparer les différentes vérifications de sécurité effectuées Aide à la revue de code•  Quel niveau de confiance puis-je avoir dans une application Chapitre sécurité des contrats de développement ou des appels d’offres ! 32
  33. 33. Modélisation des attaques•  Utilisation des méthodologies : •  STRIDE •  ISO 27005 Garder a l’esprit •  SDL Threat Modeling Tool l’impact métier ! •  …..•  Garder à l’esprit : •  0x01 : la règle du 80/20 •  0x10b Si vous n’êtes pas prêts à corriger, ne cherchez pas ! 33
  34. 34. Mettre en place des tableaux de décision 34
  35. 35. Utilisation des bons outils•  Formation •  Cf précédemment•  Visual Studio Team System (VSTS) 2008 •  SDL Process Template•  Checklists •  Quick Security Reference - SQL Injection : •  Quick Security Reference - Cross Site Scripting : •  Quick Security Reference - Exposure of Sensitive Information •  SANS/CWE25•  Librairies : •  ESAPI •  Web Protection Library •  Anti-XSS •  Security Runtime Engine•  http://www.microsoft.com/security/sdl/adopt/tools.aspx 35
  36. 36. Exemple CWE25 36
  37. 37. Authenticator User AccessController AccessReferenceMap Validator Encoder HTTPUtilities37 Encryptor EncryptedProperties Randomizer Enterprise Security API Exception Handling OWASP Enterprise Security API Custom Enterprise Web Application Logger IntrusionDetector Existing Enterprise Security Services/Libraries SecurityConfiguration 37
  38. 38. Revue de code•  Code Managé : •  CAT.NET •  FxCop•  Microsoft Source Code Analyzer for SQL Injection.•  OWASP Code Crawler•  CodePro AnalytiX (Java) 38
  39. 39. 39
  40. 40. Tests de pénétration1.  S’adresser à des cabinets/consultants dont le métier est la gestion des risques informatiques.2.  Demander des rapports orientés métiers Ø ne pas se contenter de rapports techniques3.  Demander des classifications compatibles avec votre outil de bogue. Ø Ne pas utiliser des référentiels non standards4.  Demande un transfert de compétences sur les failles pour éduquer les acteurs Ø Et donc savoir comment corriger 40
  41. 41. ET  APRES  ?   41
  42. 42. Et si vous commenciez ?• Il y a trois pas à franchir 1.  Commencer : •  Formation => cout == 0 •  CheckList => cout == 0 •  Outil de bogue => 2.  Je commence à utiliser ces fameuses checklists et remplir l’outil de bogue 3.  Je corrige tous les problèmes de sécurité que je trouve ! 42
  43. 43. A bientôtIl ny a quune façon déchouer, cest dabandonner avant davoir réussi [Olivier Lockert] 43
  1. ¿Le ha llamado la atención una diapositiva en particular?

    Recortar diapositivas es una manera útil de recopilar información importante para consultarla más tarde.

×