SlideShare una empresa de Scribd logo
1 de 85
Descargar para leer sin conexión
Microsoft Security Development
                       LifeCycle
                 dans un monde Java

      Sébastien Gioria (OWASP French Chapter Leader & OWASP
      Global Education Comittee Member)
      sebastien.gioria@owasp.org




                                                                        Application Security Forum
                                                                              Western Switzerland

                                                              27 octobre 2011 - HEIGVD Yverdon-les-Bains
                                                              http://appsec-forum.ch




Sunday, October 30, 11
http://www.google.fr/#q=sebastien gioria
                          ‣Responsable de la branche Audit S.I et Sécurité au
                          sein du cabinet Groupe Y
                          ‣OWASP France Leader & Founder -
                          Evangéliste
                          ‣OWASP Global Education Comittee Member
                          (sebastien.gioria@owasp.org)

                          ‣Responsable du Groupe Sécurité des
                          Applications Web au CLUSIF
 Twitter :@SPoint

                               CISA && ISO 27005 Risk Manager
                ‣    +13 ans d’expérience en Sécurité des Systèmes d’Information
                ‣    Différents postes de manager SSI dans la banque, l’assurance et
                     les télécoms
                ‣    Expertise Technique
                    - PenTesting,
                    - Secure-SDLC
                    - Gestion du risque, Architectures fonctionnelles, Audits
                    - Consulting et Formation en Réseaux et Sécurité


                                                         2
                                                                                       2
Sunday, October 30, 11
Agenda

                           • La souris, le fromage et le chat
                           • Qu’est-ce que Microsoft SDL ?
                           • SDL Warrior
                           • Duke in the game




                                                          3

Sunday, October 30, 11
Agenda

  •    La souris, le fromage et le chat
  •    Qu’est-ce que Microsoft SDL ?
  •    SDL Warrior
  •    Duke in the game




Sunday, October 30, 11
Pourquoi ?




                         Les	
  hackers	
  sont	
  astucieux


Sunday, October 30, 11
Le cout est important




Sunday, October 30, 11
Soyons donc précis !




Sunday, October 30, 11
Agenda

  •    La souris, le fromage et le chat
  •    Qu’est-ce que Microsoft SDL ?
  •    SDL Warrior
  •    Duke in the game




Sunday, October 30, 11
Security Development
  LifeCycle(SDL)
  § 2004	
  :	
  «	
  Stop	
  Security	
  Kiddies	
  »
  § Méthode	
  de	
  développement	
  sécurisée	
  de	
  tous	
  les	
  
     produits	
  MicrosoA	
  !	
  




Sunday, October 30, 11
Security Development
  LifeCycle(SDL)
  § 2004	
  :	
  «	
  Stop	
  Security	
  Kiddies	
  »
  § Méthode	
  de	
  développement	
  sécurisée	
  de	
  tous	
  les	
  
     produits	
  MicrosoA	
  !	
  
                          Vainqueurs a la CVE 2010
              Produit         1er                   2ème                    3ème
              Système	
       Linux	
  Kernel	
     Windows	
  Server	
     Apple	
  IOS	
  (35)
              d’exploitaEon   (129)                 2008	
  (93)
              SGBD            Oracle	
  (36)        Mysql	
  (3)            MS-­‐SQL	
  Server	
  
                                                                            (1)
              Navigateur      Chrome	
  (164)       Safari	
  (130)         Firefox	
  (115)




Sunday, October 30, 11
Sunday, October 30, 11
Sunday, October 30, 11
Sunday, October 30, 11
Agenda

  •    La souris, le fromage et le chat
  •    Qu’est-ce que Microsoft SDL ?
  •    SDL Warrior
  •    Duke in the game




Sunday, October 30, 11
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


Sunday, October 30, 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.


Sunday, October 30, 11
Spécifications - Exigences de respect de la vie
  privée



  1. Désigner le conseiller en respect de la vie privée



  2. Désigner le responsable dans l’équipe pour la
     vie privée

  3. Définir et documenter l’échelle, les valeurs et
     seuil attribués aux bogues de respect de la vie
     privée


Sunday, October 30, 11
Spécifications – Recommandations de sécurité




Sunday, October 30, 11
Spécifications – Recommandations de sécurité




Sunday, October 30, 11
Spécifications – Recommandations de sécurité



  1.    Me_re	
  en	
  place	
  le	
  plan	
  de	
  sécurité




Sunday, October 30, 11
Spécifications – Recommandations de sécurité



  1.    Me_re	
  en	
  place	
  le	
  plan	
  de	
  sécurité




Sunday, October 30, 11
Spécifications – Recommandations de sécurité



  1.    Me_re	
  en	
  place	
  le	
  plan	
  de	
  sécurité


  2.    Vérifier	
  que	
  l’ouEl	
  de	
  bogue	
  peut	
  prendre	
  en	
  compte	
  les	
  éléments	
  de	
  la	
  
        modélisaEon	
  des	
  a_aques	
  .	
  Il	
  doit	
  comporter	
  2	
  foncEonnalités	
  :	
  




Sunday, October 30, 11
Spécifications – Recommandations de sécurité



  1.    Me_re	
  en	
  place	
  le	
  plan	
  de	
  sécurité


  2.    Vérifier	
  que	
  l’ouEl	
  de	
  bogue	
  peut	
  prendre	
  en	
  compte	
  les	
  éléments	
  de	
  la	
  
        modélisaEon	
  des	
  a_aques	
  .	
  Il	
  doit	
  comporter	
  2	
  foncEonnalités	
  :	
  




Sunday, October 30, 11
Spécifications – Recommandations de sécurité



  1.    Me_re	
  en	
  place	
  le	
  plan	
  de	
  sécurité


  2.    Vérifier	
  que	
  l’ouEl	
  de	
  bogue	
  peut	
  prendre	
  en	
  compte	
  les	
  éléments	
  de	
  la	
  
        modélisaEon	
  des	
  a_aques	
  .	
  Il	
  doit	
  comporter	
  2	
  foncEonnalités	
  :	
  

        –     Il	
  doit	
  être	
  compaEble	
  STRIDE




Sunday, October 30, 11
Spécifications – Recommandations de sécurité



  1.    Me_re	
  en	
  place	
  le	
  plan	
  de	
  sécurité


  2.    Vérifier	
  que	
  l’ouEl	
  de	
  bogue	
  peut	
  prendre	
  en	
  compte	
  les	
  éléments	
  de	
  la	
  
        modélisaEon	
  des	
  a_aques	
  .	
  Il	
  doit	
  comporter	
  2	
  foncEonnalités	
  :	
  

        –     Il	
  doit	
  être	
  compaEble	
  STRIDE




Sunday, October 30, 11
Spécifications – Recommandations de sécurité



  1.    Me_re	
  en	
  place	
  le	
  plan	
  de	
  sécurité


  2.    Vérifier	
  que	
  l’ouEl	
  de	
  bogue	
  peut	
  prendre	
  en	
  compte	
  les	
  éléments	
  de	
  la	
  
        modélisaEon	
  des	
  a_aques	
  .	
  Il	
  doit	
  comporter	
  2	
  foncEonnalités	
  :	
  

        –     Il	
  doit	
  être	
  compaEble	
  STRIDE


        –     Perme_re	
  d’idenEfier	
  la	
  cause	
  du	
  Bug




Sunday, October 30, 11
Spécifications – Recommandations de sécurité



  1.    Me_re	
  en	
  place	
  le	
  plan	
  de	
  sécurité


  2.    Vérifier	
  que	
  l’ouEl	
  de	
  bogue	
  peut	
  prendre	
  en	
  compte	
  les	
  éléments	
  de	
  la	
  
        modélisaEon	
  des	
  a_aques	
  .	
  Il	
  doit	
  comporter	
  2	
  foncEonnalités	
  :	
  

        –     Il	
  doit	
  être	
  compaEble	
  STRIDE


        –     Perme_re	
  d’idenEfier	
  la	
  cause	
  du	
  Bug




Sunday, October 30, 11
Spécifications – Evaluer le projet et les couts éventuels


    1. Evaluer	
  les	
  porEons	
  du	
  projet	
  nécessitant	
  :	
  
           – modélisaEons	
  des	
  menaces	
  
           – revues	
  de	
  concepEon	
  de	
  sécurité	
  
           – tests	
  de	
  pénétraEon	
  

    2. 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	
  informaEons	
  
             confidenEelles	
  
           – P2	
  :	
  Risque	
  modéré	
  =>	
  un	
  transfert	
  unique	
  de	
  données	
  
             anonymes,	
  iniEé	
  par	
  l’uElisateur
           – P3	
  :	
  Risque	
  faible	
  =>	
  	
  Rien	
  n’affecte	
  le	
  respect	
  de	
  la	
  vie	
  



Sunday, October 30, 11
Conception

  1. Effectuer une revue de conception

  2. Effectuer des Analyses de risque
        – Modélisation des menaces (STRIDE/DREAD)
        – Code externes
        – Analyse des projets classés P1 (vie privée)




Sunday, October 30, 11
STRIDE ?
    Catégorie                                    Descrip@on
    Pas	
  un	
  bogue	
  de	
  sécurité	
  
    UsurpaEon	
  (Spoofing)                       A_aque	
  par	
  laquelle	
  un	
  a_aquant	
  ou	
  un	
  serveur	
  non	
  
                                                 autorisé	
  se	
  fait	
  passer	
  pour	
  un	
  uElisateur	
  ou	
  un	
  serveur	
  
                                                 valide,	
  ou	
  un	
  code	
  malveillant	
  se	
  présente	
  comme	
  valide	
  
    FalsificaEon	
  (Tampering)                   ModificaEon	
  malveillante	
  des	
  données	
  
    RépudiaEon	
  (RepudiaEon)                   Menaces	
  associées	
  aux	
  uElisateurs	
  qui	
  nient	
  avoir	
  
                                                 effectué	
  une	
  acEon	
  sans	
  que	
  les	
  autres	
  parEes	
  aient	
  le	
  
                                                 moyen	
  de	
  prouver	
  le	
  contraire	
  
    DivulgaEon	
  d’informaEons	
                Menaces	
  qui	
  impliquent	
  l’exposiEon	
  des	
  informaEons	
  à	
  
    (InformaEons	
  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	
  uElisateur	
  autorisé	
  
    Service)                                     d’accéder	
  aux	
  services	
  
    ÉlévaEon	
  de	
  privilège	
                Menace	
  qui	
  permet	
  à	
  un	
  uElisateur	
  de	
  s’octroyer	
  une	
  
    (ElevaEon	
  of	
  Privilege)                autorisaEon	
  supplémentaire	
  
    RéducEon	
  de	
  la	
  surface	
            Il	
  est	
  important	
  d’idenEfier	
  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	
  
    ReducEon.	
  )                               vulnérabilités	
  au	
  sens	
  technique	
  
Sunday, October 30, 11
DREAD ?
    Catégorie                                Descrip@on

    Dommage	
  Poten/el	
  (Damage)          Si	
  la	
  menace	
  se	
  produit,	
  quel	
  est	
  le	
  niveau	
  de	
  dommage	
  :
                                             0	
  –	
  Rien
                                             10	
  –	
  Total	
  compromission

    Reproduc/ble	
  (Reproducibility)        Quelle	
  est	
  la	
  complexité	
  pour	
  reproduire	
  la	
  menace
                                             0	
  –	
  quasi-­‐impossible
                                             10	
  –	
  pas	
  d’authen/fica/on,	
  a	
  travers	
  un	
  navigateur	
  Web
    Exploita/on	
  (Exploitability)          De	
  quoi	
  a-­‐t-­‐on	
  besoin	
  pour	
  l’exploita/on	
  
                                             0	
  –	
  connaissance	
  en	
  programma/on,	
  des	
  ou/ls,	
  …
                                             10	
  –	
  juste	
  un	
  navigateur	
  Web

    U/lisateurs	
  touchés	
  (Affected	
     Combien	
  d’u/lisateurs	
  seront	
  affectés	
  
    Users)
                                             0	
  –	
  Aucun
                                             5	
  –	
  Quelques	
  uns
                                             10	
  –	
  Tous

    Découverte	
  (Discoverability)          La	
  faille	
  est-­‐elle	
  simple	
  a	
  découvrir	
  
                                             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




Sunday, October 30, 11
Calcul final DREAD

                   DAMAGE
                   REPRODUCIBILITY
                   EXPLOITABILITY
                   AFFECTED USERS
                                     5
                   DISCOVERABILITY




Sunday, October 30, 11
Implémentation

  1. Créer	
  la	
  documenta1on	
  et	
  les	
  ou1ls	
  perme4ant	
  
     d’adresser	
  les	
  problèmes	
  de	
  sécurité	
  et	
  de	
  vie	
  
     privée

  2. Suivre	
  les	
  bonnes	
  pra1ques	
  de	
  développement

  3. Intégrer	
  les	
  listes	
  de	
  contrôle	
  de	
  sécurité	
  

  4. Effectuer	
  une	
  revue	
  automa1sée	
  de	
  code

Sunday, October 30, 11
Vérification
  1. Utilisation du Fuzzing
     • Fichier
     • Réseau
     • Web
  2. 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 blanche
  4. Revoir la surface d’attaque et la minimiser si possible


Sunday, October 30, 11
Diffusion
  1. Effectuer une revue des manipulations de données
     privées


  2. Préparer les équipes au 2ème mercredi du mois

                         Loi de Murphy
  3. 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.

Sunday, October 30, 11
Réponse aux incidents

  1. Définition des processus de réponses
        – Equipe dédiées à la vie privée
        – Equipes autres


  2. Mise en place des communications
        – PGP


  3. Interaction avec le cycle de vie

Sunday, October 30, 11
Agenda

  •    La souris, le fromage et le chat
  •    Qu’est-ce que Microsoft SDL ?
  •    SDL Warrior
  •    Duke in the game




Sunday, October 30, 11
Avant-propos…
      • Ceci est une proposition à
        certains endroits de la SDL
        pour éviter :
            • d’être aux aguets tous les 2èmes
              mardi du mois.
            • des bulletins du CERT longs…
            • que Larry(*) nous sorte toujours
              la même chanson….




     *:Oracle unbreakable? => dernier Patch Update 10/10 à la CVSS (encore une fois)…


Sunday, October 30, 11
Sunday, October 30, 11
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

Sunday, October 30, 11
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
      Conformité
           Adhérer	
  aux	
  lois	
  et	
  réglementaEons	
  
      Image	
  de	
  marque
           Ne	
  pas	
  se	
  retrouver	
  à	
  la	
  une	
  du	
  journal	
  «	
  Le	
  Monde	
  »	
  suite	
  
            à	
  un	
  incident

Sunday, October 30, 11
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
      Conformité
           Adhérer	
  aux	
  lois	
  et	
  réglementaEons	
  
      Image	
  de	
  marque
           Ne	
  pas	
  se	
  retrouver	
  à	
  la	
  une	
  du	
  journal	
  «	
  Le	
  Monde	
  »	
  suite	
  
            à	
  un	
  incident

Sunday, October 30, 11
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
      Conformité
           Adhérer	
  aux	
  lois	
  et	
  réglementaEons	
  
      Image	
  de	
  marque
           Ne	
  pas	
  se	
  retrouver	
  à	
  la	
  une	
  du	
  journal	
  «	
  Le	
  Monde	
  »	
  suite	
  
            à	
  un	
  incident

Sunday, October 30, 11
Le problème




Sunday, October 30, 11
0x01




Sunday, October 30, 11
0x01




       Régler 80% des problèmes avec 20% d’effort


Sunday, October 30, 11
0x10b
    • Se jeter à l’eau :




Sunday, October 30, 11
0x10b
    • Se jeter à l’eau :
                 Corrigez tous les problèmes
                 que vous pouvez trouver




Sunday, October 30, 11
0x10b
    • Se jeter à l’eau :
                 Corrigez tous les problèmes
                 que vous pouvez trouver

                         Si vous n’êtes pas prêts à
                         corriger, ne cherchez pas !




Sunday, October 30, 11
0x10b
    • Se jeter à l’eau :
                 Corrigez tous les problèmes
                 que vous pouvez trouver

                         Si vous n’êtes pas prêts à
                         corriger, ne cherchez pas !




Sunday, October 30, 11
Sunday, October 30, 11
Sunday, October 30, 11
Sunday, October 30, 11
Sunday, October 30, 11
Sunday, October 30, 11
Sunday, October 30, 11
Sunday, October 30, 11
Sunday, October 30, 11
Sunday, October 30, 11
Phase 0 - Formation
  • OWASP Top10 2010 : Les 10 risques les plus critiques
    des applications
  • CWE/SANS list : Top 25 Most Dangerous Programming
    Errors.
  • CERT Java Secure Coding
        • https://www.securecoding.cert.org/confluence/display/java/
          The+CERT+Oracle+Secure+Coding+Standard+for+Java




Sunday, October 30, 11
Phase 0 - Formation
  • OWASP Top10 2010 : Les 10 risques les plus critiques
    des applications
  • CWE/SANS list : Top 25 Most Dangerous Programming
    Errors.
  • CERT Java Secure Coding
        • https://www.securecoding.cert.org/confluence/display/java/
          The+CERT+Oracle+Secure+Coding+Standard+for+Java




Sunday, October 30, 11
Phase 0 - Formation
  • OWASP Top10 2010 : Les 10 risques les plus critiques
    des applications
  • CWE/SANS list : Top 25 Most Dangerous Programming
    Errors.
  • CERT Java Secure Coding
        • https://www.securecoding.cert.org/confluence/display/java/
          The+CERT+Oracle+Secure+Coding+Standard+for+Java




Sunday, October 30, 11
Phase 0 - Formation
  • OWASP Top10 2010 : Les 10 risques les plus critiques
    des applications
  • CWE/SANS list : Top 25 Most Dangerous Programming
    Errors.
  • CERT Java Secure Coding
        • https://www.securecoding.cert.org/confluence/display/java/
          The+CERT+Oracle+Secure+Coding+Standard+for+Java




Sunday, October 30, 11
Phase	
  1	
  -­‐	
  Spécifica/ons
  § Mise	
  en	
  place	
  du	
  bugtracker
        – Catégories	
  d’effet	
  des	
  bugs	
  :	
  
              • Elements	
  STRIDE	
  (ou	
  autre	
  des	
  modélisaEons)
        – Catégories	
  de	
  cause	
  des	
  bugs	
  :	
  
              • XSS,	
  CSRF,	
  SQL-­‐i,	
  DOS,	
  Crypto….




Sunday, October 30, 11
Phase 2 – Design
  OWASP – 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é d'une 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 !

Sunday, October 30, 11
Phase 2 – Design
  OWASP – 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é d'une 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 !

Sunday, October 30, 11
Poli/que	
  de	
  sécurité	
  logicielle




Sunday, October 30, 11
Phase 2 - 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




Sunday, October 30, 11
Phase 2 - 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 !


Sunday, October 30, 11
Phase 2 - 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 !


Sunday, October 30, 11
Phase	
  3	
  -­‐	
  Développement
  § Suivre	
  les	
  best-­‐pracEces	
  :
        – OWASP	
  Secure	
  Coding	
  Prac@ces
              • hJps://www.owasp.org/index.php/Secure_Coding_Principles
        – CERT/Oracle	
  Secure	
  Coding	
  for	
  Java
              • https://www.securecoding.cert.org/confluence/display/java/The+CERT
                +Oracle+Secure+Coding+Standard+for+Java
        – Secure	
  Coding	
  Guidelines	
  for	
  Java	
  (Oracle)
              • hJp://www.oracle.com/technetwork/java/seccodeguide-­‐139067.html


  § UEliser	
  les	
  bons	
  ouEls/bibliothèques	
  (h_ps://www.owasp.org)
        – OWASP	
  CSRF	
  Guard
        – OWASP	
  Java	
  Sani@zer
        – OWASP	
  S@nger

Sunday, October 30, 11
Phase	
  3	
  -­‐	
  Cookies	
  	
  




Sunday, October 30, 11
Phase	
  3	
  -­‐	
  Valida/ons




Sunday, October 30, 11
Phase	
  3	
  –	
  SQL	
  




Sunday, October 30, 11
Phase	
  3	
  –	
  Pour	
  aller	
  plus	
  loin
                     OWASP Enterprise Security API




Sunday, October 30, 11
Phase 4 - Revue de code
    § Design :
           • OWASP Cheat Sheets : https://www.owasp.org/index.php/
             Category:Cheatsheets
           • OWASP Application Verification Standard : https://
             www.owasp.org/index.php/
             Category:OWASP_Application_Security_Verification_Standard_Projec
             t

    § Semi-Automatisé :

           • OWASP LAPSE+ : https://www.owasp.org/index.php/
             OWASP_LAPSE_Project


           • CodePro Analytix : http://code.google.com/javadevtools/
             download-codepro.html




Sunday, October 30, 11
Phase	
  4	
  –	
  Revue	
  de	
  code	
  	
  (Code	
  Pro	
  AnalyEx)




Sunday, October 30, 11
Phase 4 - Tests de
  pénétration
  1. S’adresser	
  à	
  des	
  cabinets/consultants	
  dont	
  le	
  méEer	
  est	
  la	
  gesEon	
  des	
  
     risques	
  informaEques.

  2. Demander	
  des	
  rapports	
  orientés	
  méEers
     Ø ne	
  pas	
  se	
  contenter	
  de	
  rapports	
  techniques

  3. Demander	
  des	
  classificaEons	
  compaEbles	
  avec	
  votre	
  ouEl	
  de	
  bogue.
     Ø Ne	
  pas	
  u@liser	
  des	
  référen@els	
  non	
  standards

  4. Demande	
  un	
  transfert	
  de	
  compétences	
  sur	
  les	
  failles	
  pour	
  éduquer	
  les	
  
     acteurs
     Ø Et	
  donc	
  savoir	
  comment	
  corriger



Sunday, October 30, 11
Phase 4 - Mettre en place des tableaux de décision




Sunday, October 30, 11
Phase 4 - Mettre en place des tableaux de décision




Sunday, October 30, 11
Phase 4 - Mettre en place des tableaux de décision




Sunday, October 30, 11
Phase 4 - Mettre en place des tableaux de décision




Sunday, October 30, 11
Phase	
  5	
  –	
  Release	
  /	
  Produc/on




Sunday, October 30, 11
• Introduction à la Sécurité Web avec Ruby on Rails
                         • Les 10 Risques sur les mobiles
                         • Microsoft SDL




Sunday, October 30, 11
• Introduction à la Sécurité Web avec Ruby on Rails
                         • Les 10 Risques sur les mobiles
                         • Microsoft SDL


  Il n'y a qu'une façon d'échouer, c'est d'abandonner avant
                d'avoir réussi [Olivier Lockert]

Sunday, October 30, 11

Más contenido relacionado

Más de Cyber Security Alliance

Robots are among us, but who takes responsibility?
Robots are among us, but who takes responsibility?Robots are among us, but who takes responsibility?
Robots are among us, but who takes responsibility?Cyber Security Alliance
 
iOS malware: what's the risk and how to reduce it
iOS malware: what's the risk and how to reduce itiOS malware: what's the risk and how to reduce it
iOS malware: what's the risk and how to reduce itCyber Security Alliance
 
Why huntung IoC fails at protecting against targeted attacks
Why huntung IoC fails at protecting against targeted attacksWhy huntung IoC fails at protecting against targeted attacks
Why huntung IoC fails at protecting against targeted attacksCyber Security Alliance
 
Corporations - the new victims of targeted ransomware
Corporations - the new victims of targeted ransomwareCorporations - the new victims of targeted ransomware
Corporations - the new victims of targeted ransomwareCyber Security Alliance
 
Introducing Man in the Contacts attack to trick encrypted messaging apps
Introducing Man in the Contacts attack to trick encrypted messaging appsIntroducing Man in the Contacts attack to trick encrypted messaging apps
Introducing Man in the Contacts attack to trick encrypted messaging appsCyber Security Alliance
 
Understanding the fundamentals of attacks
Understanding the fundamentals of attacksUnderstanding the fundamentals of attacks
Understanding the fundamentals of attacksCyber Security Alliance
 
Reverse engineering Swisscom's Centro Grande Modem
Reverse engineering Swisscom's Centro Grande ModemReverse engineering Swisscom's Centro Grande Modem
Reverse engineering Swisscom's Centro Grande ModemCyber Security Alliance
 
Easy public-private-keys-strong-authentication-using-u2 f
Easy public-private-keys-strong-authentication-using-u2 fEasy public-private-keys-strong-authentication-using-u2 f
Easy public-private-keys-strong-authentication-using-u2 fCyber Security Alliance
 
Create a-strong-two-factors-authentication-device-for-less-than-chf-100
Create a-strong-two-factors-authentication-device-for-less-than-chf-100Create a-strong-two-factors-authentication-device-for-less-than-chf-100
Create a-strong-two-factors-authentication-device-for-less-than-chf-100Cyber Security Alliance
 
Offline bruteforce attack on wi fi protected setup
Offline bruteforce attack on wi fi protected setupOffline bruteforce attack on wi fi protected setup
Offline bruteforce attack on wi fi protected setupCyber Security Alliance
 
App secforum2014 andrivet-cplusplus11-metaprogramming_applied_to_software_obf...
App secforum2014 andrivet-cplusplus11-metaprogramming_applied_to_software_obf...App secforum2014 andrivet-cplusplus11-metaprogramming_applied_to_software_obf...
App secforum2014 andrivet-cplusplus11-metaprogramming_applied_to_software_obf...Cyber Security Alliance
 
Warning Ahead: SecurityStorms are Brewing in Your JavaScript
Warning Ahead: SecurityStorms are Brewing in Your JavaScriptWarning Ahead: SecurityStorms are Brewing in Your JavaScript
Warning Ahead: SecurityStorms are Brewing in Your JavaScriptCyber Security Alliance
 
Killing any security product … using a Mimikatz undocumented feature
Killing any security product … using a Mimikatz undocumented featureKilling any security product … using a Mimikatz undocumented feature
Killing any security product … using a Mimikatz undocumented featureCyber Security Alliance
 

Más de Cyber Security Alliance (20)

Bug Bounty @ Swisscom
Bug Bounty @ SwisscomBug Bounty @ Swisscom
Bug Bounty @ Swisscom
 
Robots are among us, but who takes responsibility?
Robots are among us, but who takes responsibility?Robots are among us, but who takes responsibility?
Robots are among us, but who takes responsibility?
 
iOS malware: what's the risk and how to reduce it
iOS malware: what's the risk and how to reduce itiOS malware: what's the risk and how to reduce it
iOS malware: what's the risk and how to reduce it
 
Why huntung IoC fails at protecting against targeted attacks
Why huntung IoC fails at protecting against targeted attacksWhy huntung IoC fails at protecting against targeted attacks
Why huntung IoC fails at protecting against targeted attacks
 
Corporations - the new victims of targeted ransomware
Corporations - the new victims of targeted ransomwareCorporations - the new victims of targeted ransomware
Corporations - the new victims of targeted ransomware
 
Blockchain for Beginners
Blockchain for Beginners Blockchain for Beginners
Blockchain for Beginners
 
Le pentest pour les nuls #cybsec16
Le pentest pour les nuls #cybsec16Le pentest pour les nuls #cybsec16
Le pentest pour les nuls #cybsec16
 
Introducing Man in the Contacts attack to trick encrypted messaging apps
Introducing Man in the Contacts attack to trick encrypted messaging appsIntroducing Man in the Contacts attack to trick encrypted messaging apps
Introducing Man in the Contacts attack to trick encrypted messaging apps
 
Understanding the fundamentals of attacks
Understanding the fundamentals of attacksUnderstanding the fundamentals of attacks
Understanding the fundamentals of attacks
 
Rump : iOS patch diffing
Rump : iOS patch diffingRump : iOS patch diffing
Rump : iOS patch diffing
 
An easy way into your sap systems v3.0
An easy way into your sap systems v3.0An easy way into your sap systems v3.0
An easy way into your sap systems v3.0
 
Reverse engineering Swisscom's Centro Grande Modem
Reverse engineering Swisscom's Centro Grande ModemReverse engineering Swisscom's Centro Grande Modem
Reverse engineering Swisscom's Centro Grande Modem
 
Easy public-private-keys-strong-authentication-using-u2 f
Easy public-private-keys-strong-authentication-using-u2 fEasy public-private-keys-strong-authentication-using-u2 f
Easy public-private-keys-strong-authentication-using-u2 f
 
Create a-strong-two-factors-authentication-device-for-less-than-chf-100
Create a-strong-two-factors-authentication-device-for-less-than-chf-100Create a-strong-two-factors-authentication-device-for-less-than-chf-100
Create a-strong-two-factors-authentication-device-for-less-than-chf-100
 
Offline bruteforce attack on wi fi protected setup
Offline bruteforce attack on wi fi protected setupOffline bruteforce attack on wi fi protected setup
Offline bruteforce attack on wi fi protected setup
 
App secforum2014 andrivet-cplusplus11-metaprogramming_applied_to_software_obf...
App secforum2014 andrivet-cplusplus11-metaprogramming_applied_to_software_obf...App secforum2014 andrivet-cplusplus11-metaprogramming_applied_to_software_obf...
App secforum2014 andrivet-cplusplus11-metaprogramming_applied_to_software_obf...
 
Warning Ahead: SecurityStorms are Brewing in Your JavaScript
Warning Ahead: SecurityStorms are Brewing in Your JavaScriptWarning Ahead: SecurityStorms are Brewing in Your JavaScript
Warning Ahead: SecurityStorms are Brewing in Your JavaScript
 
Killing any security product … using a Mimikatz undocumented feature
Killing any security product … using a Mimikatz undocumented featureKilling any security product … using a Mimikatz undocumented feature
Killing any security product … using a Mimikatz undocumented feature
 
Rump attaque usb_caralinda_fabrice
Rump attaque usb_caralinda_fabriceRump attaque usb_caralinda_fabrice
Rump attaque usb_caralinda_fabrice
 
Operation emmental appsec
Operation emmental appsecOperation emmental appsec
Operation emmental appsec
 

ASFWS 2011 - Microsoft SDL dans un monde Java

  • 1. Microsoft Security Development LifeCycle dans un monde Java Sébastien Gioria (OWASP French Chapter Leader & OWASP Global Education Comittee Member) sebastien.gioria@owasp.org Application Security Forum Western Switzerland 27 octobre 2011 - HEIGVD Yverdon-les-Bains http://appsec-forum.ch Sunday, October 30, 11
  • 2. http://www.google.fr/#q=sebastien gioria ‣Responsable de la branche Audit S.I et Sécurité au sein du cabinet Groupe Y ‣OWASP France Leader & Founder - Evangéliste ‣OWASP Global Education Comittee Member (sebastien.gioria@owasp.org) ‣Responsable du Groupe Sécurité des Applications Web au CLUSIF Twitter :@SPoint CISA && ISO 27005 Risk Manager ‣ +13 ans d’expérience en Sécurité des Systèmes d’Information ‣ Différents postes de manager SSI dans la banque, l’assurance et les télécoms ‣ Expertise Technique - PenTesting, - Secure-SDLC - Gestion du risque, Architectures fonctionnelles, Audits - Consulting et Formation en Réseaux et Sécurité 2 2 Sunday, October 30, 11
  • 3. Agenda • La souris, le fromage et le chat • Qu’est-ce que Microsoft SDL ? • SDL Warrior • Duke in the game 3 Sunday, October 30, 11
  • 4. Agenda • La souris, le fromage et le chat • Qu’est-ce que Microsoft SDL ? • SDL Warrior • Duke in the game Sunday, October 30, 11
  • 5. Pourquoi ? Les  hackers  sont  astucieux Sunday, October 30, 11
  • 6. Le cout est important Sunday, October 30, 11
  • 7. Soyons donc précis ! Sunday, October 30, 11
  • 8. Agenda • La souris, le fromage et le chat • Qu’est-ce que Microsoft SDL ? • SDL Warrior • Duke in the game Sunday, October 30, 11
  • 9. Security Development LifeCycle(SDL) § 2004  :  «  Stop  Security  Kiddies  » § Méthode  de  développement  sécurisée  de  tous  les   produits  MicrosoA  !   Sunday, October 30, 11
  • 10. Security Development LifeCycle(SDL) § 2004  :  «  Stop  Security  Kiddies  » § Méthode  de  développement  sécurisée  de  tous  les   produits  MicrosoA  !   Vainqueurs a la CVE 2010 Produit 1er 2ème 3ème Système   Linux  Kernel   Windows  Server   Apple  IOS  (35) d’exploitaEon (129) 2008  (93) SGBD Oracle  (36) Mysql  (3) MS-­‐SQL  Server   (1) Navigateur Chrome  (164) Safari  (130) Firefox  (115) Sunday, October 30, 11
  • 14. Agenda • La souris, le fromage et le chat • Qu’est-ce que Microsoft SDL ? • SDL Warrior • Duke in the game Sunday, October 30, 11
  • 15. 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 Sunday, October 30, 11
  • 16. 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. Sunday, October 30, 11
  • 17. Spécifications - Exigences de respect de la vie privée 1. Désigner le conseiller en respect de la vie privée 2. Désigner le responsable dans l’équipe pour la vie privée 3. Définir et documenter l’échelle, les valeurs et seuil attribués aux bogues de respect de la vie privée Sunday, October 30, 11
  • 18. Spécifications – Recommandations de sécurité Sunday, October 30, 11
  • 19. Spécifications – Recommandations de sécurité Sunday, October 30, 11
  • 20. Spécifications – Recommandations de sécurité 1. Me_re  en  place  le  plan  de  sécurité Sunday, October 30, 11
  • 21. Spécifications – Recommandations de sécurité 1. Me_re  en  place  le  plan  de  sécurité Sunday, October 30, 11
  • 22. Spécifications – Recommandations de sécurité 1. Me_re  en  place  le  plan  de  sécurité 2. Vérifier  que  l’ouEl  de  bogue  peut  prendre  en  compte  les  éléments  de  la   modélisaEon  des  a_aques  .  Il  doit  comporter  2  foncEonnalités  :   Sunday, October 30, 11
  • 23. Spécifications – Recommandations de sécurité 1. Me_re  en  place  le  plan  de  sécurité 2. Vérifier  que  l’ouEl  de  bogue  peut  prendre  en  compte  les  éléments  de  la   modélisaEon  des  a_aques  .  Il  doit  comporter  2  foncEonnalités  :   Sunday, October 30, 11
  • 24. Spécifications – Recommandations de sécurité 1. Me_re  en  place  le  plan  de  sécurité 2. Vérifier  que  l’ouEl  de  bogue  peut  prendre  en  compte  les  éléments  de  la   modélisaEon  des  a_aques  .  Il  doit  comporter  2  foncEonnalités  :   – Il  doit  être  compaEble  STRIDE Sunday, October 30, 11
  • 25. Spécifications – Recommandations de sécurité 1. Me_re  en  place  le  plan  de  sécurité 2. Vérifier  que  l’ouEl  de  bogue  peut  prendre  en  compte  les  éléments  de  la   modélisaEon  des  a_aques  .  Il  doit  comporter  2  foncEonnalités  :   – Il  doit  être  compaEble  STRIDE Sunday, October 30, 11
  • 26. Spécifications – Recommandations de sécurité 1. Me_re  en  place  le  plan  de  sécurité 2. Vérifier  que  l’ouEl  de  bogue  peut  prendre  en  compte  les  éléments  de  la   modélisaEon  des  a_aques  .  Il  doit  comporter  2  foncEonnalités  :   – Il  doit  être  compaEble  STRIDE – Perme_re  d’idenEfier  la  cause  du  Bug Sunday, October 30, 11
  • 27. Spécifications – Recommandations de sécurité 1. Me_re  en  place  le  plan  de  sécurité 2. Vérifier  que  l’ouEl  de  bogue  peut  prendre  en  compte  les  éléments  de  la   modélisaEon  des  a_aques  .  Il  doit  comporter  2  foncEonnalités  :   – Il  doit  être  compaEble  STRIDE – Perme_re  d’idenEfier  la  cause  du  Bug Sunday, October 30, 11
  • 28. Spécifications – Evaluer le projet et les couts éventuels 1. Evaluer  les  porEons  du  projet  nécessitant  :   – modélisaEons  des  menaces   – revues  de  concepEon  de  sécurité   – tests  de  pénétraEon   2. 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  informaEons   confidenEelles   – P2  :  Risque  modéré  =>  un  transfert  unique  de  données   anonymes,  iniEé  par  l’uElisateur – P3  :  Risque  faible  =>    Rien  n’affecte  le  respect  de  la  vie   Sunday, October 30, 11
  • 29. Conception 1. Effectuer une revue de conception 2. Effectuer des Analyses de risque – Modélisation des menaces (STRIDE/DREAD) – Code externes – Analyse des projets classés P1 (vie privée) Sunday, October 30, 11
  • 30. STRIDE ? Catégorie Descrip@on Pas  un  bogue  de  sécurité   UsurpaEon  (Spoofing) A_aque  par  laquelle  un  a_aquant  ou  un  serveur  non   autorisé  se  fait  passer  pour  un  uElisateur  ou  un  serveur   valide,  ou  un  code  malveillant  se  présente  comme  valide   FalsificaEon  (Tampering) ModificaEon  malveillante  des  données   RépudiaEon  (RepudiaEon) Menaces  associées  aux  uElisateurs  qui  nient  avoir   effectué  une  acEon  sans  que  les  autres  parEes  aient  le   moyen  de  prouver  le  contraire   DivulgaEon  d’informaEons   Menaces  qui  impliquent  l’exposiEon  des  informaEons  à   (InformaEons  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  uElisateur  autorisé   Service) d’accéder  aux  services   ÉlévaEon  de  privilège   Menace  qui  permet  à  un  uElisateur  de  s’octroyer  une   (ElevaEon  of  Privilege) autorisaEon  supplémentaire   RéducEon  de  la  surface   Il  est  important  d’idenEfier  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   ReducEon.  ) vulnérabilités  au  sens  technique   Sunday, October 30, 11
  • 31. DREAD ? Catégorie Descrip@on Dommage  Poten/el  (Damage) Si  la  menace  se  produit,  quel  est  le  niveau  de  dommage  : 0  –  Rien 10  –  Total  compromission Reproduc/ble  (Reproducibility) Quelle  est  la  complexité  pour  reproduire  la  menace 0  –  quasi-­‐impossible 10  –  pas  d’authen/fica/on,  a  travers  un  navigateur  Web Exploita/on  (Exploitability) De  quoi  a-­‐t-­‐on  besoin  pour  l’exploita/on   0  –  connaissance  en  programma/on,  des  ou/ls,  … 10  –  juste  un  navigateur  Web U/lisateurs  touchés  (Affected   Combien  d’u/lisateurs  seront  affectés   Users) 0  –  Aucun 5  –  Quelques  uns 10  –  Tous Découverte  (Discoverability) La  faille  est-­‐elle  simple  a  découvrir   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 Sunday, October 30, 11
  • 32. Calcul final DREAD DAMAGE REPRODUCIBILITY EXPLOITABILITY AFFECTED USERS 5 DISCOVERABILITY Sunday, October 30, 11
  • 33. Implémentation 1. Créer  la  documenta1on  et  les  ou1ls  perme4ant   d’adresser  les  problèmes  de  sécurité  et  de  vie   privée 2. Suivre  les  bonnes  pra1ques  de  développement 3. Intégrer  les  listes  de  contrôle  de  sécurité   4. Effectuer  une  revue  automa1sée  de  code Sunday, October 30, 11
  • 34. Vérification 1. Utilisation du Fuzzing • Fichier • Réseau • Web 2. 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 blanche 4. Revoir la surface d’attaque et la minimiser si possible Sunday, October 30, 11
  • 35. Diffusion 1. Effectuer une revue des manipulations de données privées 2. Préparer les équipes au 2ème mercredi du mois Loi de Murphy 3. 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. Sunday, October 30, 11
  • 36. Réponse aux incidents 1. Définition des processus de réponses – Equipe dédiées à la vie privée – Equipes autres 2. Mise en place des communications – PGP 3. Interaction avec le cycle de vie Sunday, October 30, 11
  • 37. Agenda • La souris, le fromage et le chat • Qu’est-ce que Microsoft SDL ? • SDL Warrior • Duke in the game Sunday, October 30, 11
  • 38. Avant-propos… • Ceci est une proposition à certains endroits de la SDL pour éviter : • d’être aux aguets tous les 2èmes mardi du mois. • des bulletins du CERT longs… • que Larry(*) nous sorte toujours la même chanson…. *:Oracle unbreakable? => dernier Patch Update 10/10 à la CVSS (encore une fois)… Sunday, October 30, 11
  • 40. 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 Sunday, October 30, 11
  • 41. 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 Conformité Adhérer  aux  lois  et  réglementaEons   Image  de  marque Ne  pas  se  retrouver  à  la  une  du  journal  «  Le  Monde  »  suite   à  un  incident Sunday, October 30, 11
  • 42. 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 Conformité Adhérer  aux  lois  et  réglementaEons   Image  de  marque Ne  pas  se  retrouver  à  la  une  du  journal  «  Le  Monde  »  suite   à  un  incident Sunday, October 30, 11
  • 43. 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 Conformité Adhérer  aux  lois  et  réglementaEons   Image  de  marque Ne  pas  se  retrouver  à  la  une  du  journal  «  Le  Monde  »  suite   à  un  incident Sunday, October 30, 11
  • 46. 0x01 Régler 80% des problèmes avec 20% d’effort Sunday, October 30, 11
  • 47. 0x10b • Se jeter à l’eau : Sunday, October 30, 11
  • 48. 0x10b • Se jeter à l’eau : Corrigez tous les problèmes que vous pouvez trouver Sunday, October 30, 11
  • 49. 0x10b • Se jeter à l’eau : Corrigez tous les problèmes que vous pouvez trouver Si vous n’êtes pas prêts à corriger, ne cherchez pas ! Sunday, October 30, 11
  • 50. 0x10b • Se jeter à l’eau : Corrigez tous les problèmes que vous pouvez trouver Si vous n’êtes pas prêts à corriger, ne cherchez pas ! Sunday, October 30, 11
  • 60. Phase 0 - Formation • OWASP Top10 2010 : Les 10 risques les plus critiques des applications • CWE/SANS list : Top 25 Most Dangerous Programming Errors. • CERT Java Secure Coding • https://www.securecoding.cert.org/confluence/display/java/ The+CERT+Oracle+Secure+Coding+Standard+for+Java Sunday, October 30, 11
  • 61. Phase 0 - Formation • OWASP Top10 2010 : Les 10 risques les plus critiques des applications • CWE/SANS list : Top 25 Most Dangerous Programming Errors. • CERT Java Secure Coding • https://www.securecoding.cert.org/confluence/display/java/ The+CERT+Oracle+Secure+Coding+Standard+for+Java Sunday, October 30, 11
  • 62. Phase 0 - Formation • OWASP Top10 2010 : Les 10 risques les plus critiques des applications • CWE/SANS list : Top 25 Most Dangerous Programming Errors. • CERT Java Secure Coding • https://www.securecoding.cert.org/confluence/display/java/ The+CERT+Oracle+Secure+Coding+Standard+for+Java Sunday, October 30, 11
  • 63. Phase 0 - Formation • OWASP Top10 2010 : Les 10 risques les plus critiques des applications • CWE/SANS list : Top 25 Most Dangerous Programming Errors. • CERT Java Secure Coding • https://www.securecoding.cert.org/confluence/display/java/ The+CERT+Oracle+Secure+Coding+Standard+for+Java Sunday, October 30, 11
  • 64. Phase  1  -­‐  Spécifica/ons § Mise  en  place  du  bugtracker – Catégories  d’effet  des  bugs  :   • Elements  STRIDE  (ou  autre  des  modélisaEons) – Catégories  de  cause  des  bugs  :   • XSS,  CSRF,  SQL-­‐i,  DOS,  Crypto…. Sunday, October 30, 11
  • 65. Phase 2 – Design OWASP – 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é d'une 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 ! Sunday, October 30, 11
  • 66. Phase 2 – Design OWASP – 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é d'une 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 ! Sunday, October 30, 11
  • 67. Poli/que  de  sécurité  logicielle Sunday, October 30, 11
  • 68. Phase 2 - 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 Sunday, October 30, 11
  • 69. Phase 2 - 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 ! Sunday, October 30, 11
  • 70. Phase 2 - 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 ! Sunday, October 30, 11
  • 71. Phase  3  -­‐  Développement § Suivre  les  best-­‐pracEces  : – OWASP  Secure  Coding  Prac@ces • hJps://www.owasp.org/index.php/Secure_Coding_Principles – CERT/Oracle  Secure  Coding  for  Java • https://www.securecoding.cert.org/confluence/display/java/The+CERT +Oracle+Secure+Coding+Standard+for+Java – Secure  Coding  Guidelines  for  Java  (Oracle) • hJp://www.oracle.com/technetwork/java/seccodeguide-­‐139067.html § UEliser  les  bons  ouEls/bibliothèques  (h_ps://www.owasp.org) – OWASP  CSRF  Guard – OWASP  Java  Sani@zer – OWASP  S@nger Sunday, October 30, 11
  • 72. Phase  3  -­‐  Cookies     Sunday, October 30, 11
  • 73. Phase  3  -­‐  Valida/ons Sunday, October 30, 11
  • 74. Phase  3  –  SQL   Sunday, October 30, 11
  • 75. Phase  3  –  Pour  aller  plus  loin OWASP Enterprise Security API Sunday, October 30, 11
  • 76. Phase 4 - Revue de code § Design : • OWASP Cheat Sheets : https://www.owasp.org/index.php/ Category:Cheatsheets • OWASP Application Verification Standard : https:// www.owasp.org/index.php/ Category:OWASP_Application_Security_Verification_Standard_Projec t § Semi-Automatisé : • OWASP LAPSE+ : https://www.owasp.org/index.php/ OWASP_LAPSE_Project • CodePro Analytix : http://code.google.com/javadevtools/ download-codepro.html Sunday, October 30, 11
  • 77. Phase  4  –  Revue  de  code    (Code  Pro  AnalyEx) Sunday, October 30, 11
  • 78. Phase 4 - Tests de pénétration 1. S’adresser  à  des  cabinets/consultants  dont  le  méEer  est  la  gesEon  des   risques  informaEques. 2. Demander  des  rapports  orientés  méEers Ø ne  pas  se  contenter  de  rapports  techniques 3. Demander  des  classificaEons  compaEbles  avec  votre  ouEl  de  bogue. Ø Ne  pas  u@liser  des  référen@els  non  standards 4. Demande  un  transfert  de  compétences  sur  les  failles  pour  éduquer  les   acteurs Ø Et  donc  savoir  comment  corriger Sunday, October 30, 11
  • 79. Phase 4 - Mettre en place des tableaux de décision Sunday, October 30, 11
  • 80. Phase 4 - Mettre en place des tableaux de décision Sunday, October 30, 11
  • 81. Phase 4 - Mettre en place des tableaux de décision Sunday, October 30, 11
  • 82. Phase 4 - Mettre en place des tableaux de décision Sunday, October 30, 11
  • 83. Phase  5  –  Release  /  Produc/on Sunday, October 30, 11
  • 84. • Introduction à la Sécurité Web avec Ruby on Rails • Les 10 Risques sur les mobiles • Microsoft SDL Sunday, October 30, 11
  • 85. • Introduction à la Sécurité Web avec Ruby on Rails • Les 10 Risques sur les mobiles • Microsoft SDL Il n'y a qu'une façon d'échouer, c'est d'abandonner avant d'avoir réussi [Olivier Lockert] Sunday, October 30, 11