2012 03-02-sdl-sgi-v03

86
The OWASP Foundation http://www.owasp.org Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. Microsoft Security Development LifeCycle Sébastien Gioria OWASP France Leader OWASP Global Education Committee Confoo.ca 2 Mars 2012 - Montréal - Canada Sunday, March 4, 12

Upload: sebastien-gioria

Post on 21-Jun-2015

756 views

Category:

Documents


0 download

DESCRIPTION

Présentation sur la SDL microsoft faite au confoo 2012

TRANSCRIPT

Page 1: 2012 03-02-sdl-sgi-v03

The OWASP Foundationhttp://www.owasp.org

Copyright © The OWASP FoundationPermission is granted to copy, distribute and/or modify this document under the terms of the OWASP License.

Microsoft Security Development LifeCycle

Sébastien GioriaOWASP France Leader

OWASP Global Education Committee

Confoo.ca 2 Mars 2012 - Montréal - Canada

Sunday, March 4, 12

Page 2: 2012 03-02-sdl-sgi-v03

CISA && ISO 27005 Risk Manager

2

http://www.google.fr/#q=sebastien gioria

‣OWASP France Leader & Founder - Evangéliste‣OWASP Global Education Comittee Member ([email protected])

‣Responsable de la branche Audit S.I et Sécurité au sein du cabinet Groupe Y

Twitter :@SPoint

‣ +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é

‣Responsable du Groupe Sécurité des Applications Web au CLUSIF

2

Sunday, March 4, 12

Page 3: 2012 03-02-sdl-sgi-v03

Agenda• La souris, le fromage et le

chat

• Qu’est-ce que Microsoft SDL ?

• SDL Warrior

• Duke in the game

3

Sunday, March 4, 12

Page 4: 2012 03-02-sdl-sgi-v03

Pourquoi ?

Les hackers sont astucieux

Les  hackers  sont  astucieux

Sunday, March 4, 12

Page 5: 2012 03-02-sdl-sgi-v03

Le cout est important

Sunday, March 4, 12

Page 6: 2012 03-02-sdl-sgi-v03

Soyons donc précis !

Sunday, March 4, 12

Page 7: 2012 03-02-sdl-sgi-v03

Agenda • La souris, le fromage et le chat

• Qu’est-ce que Microsoft SDL ?

• SDL Warrior

• Duke in the game

Sunday, March 4, 12

Page 8: 2012 03-02-sdl-sgi-v03

8

Sunday, March 4, 12

Page 9: 2012 03-02-sdl-sgi-v03

Security Development LifeCycle(SDL)

§ 2004 : « Stop Security Kiddies »

§ Méthode de développement sécurisée de tous les produits Microsoft !

Sunday, March 4, 12

Page 10: 2012 03-02-sdl-sgi-v03

Security Development LifeCycle(SDL)

§ 2004 : « Stop Security Kiddies »

§ Méthode de développement sécurisée de tous les produits Microsoft !

Produit 1er 2ème 3ème

Système  d’exploita9on

Linux  Kernel  (129)

Windows  Server  2008  (93)

Apple  IOS  (35)

SGBD Oracle  (36) Mysql  (3) MS-­‐SQL  Server  (1)

Navigateur Chrome  (164) Safari  (130) Firefox  (115)

Vainqueurs a la CVE 2010

Sunday, March 4, 12

Page 11: 2012 03-02-sdl-sgi-v03

The OWASP Foundationhttp://www.owasp.org

Sunday, March 4, 12

Page 12: 2012 03-02-sdl-sgi-v03

The OWASP Foundationhttp://www.owasp.org

Sunday, March 4, 12

Page 13: 2012 03-02-sdl-sgi-v03

The OWASP Foundationhttp://www.owasp.org

Sunday, March 4, 12

Page 14: 2012 03-02-sdl-sgi-v03

Agenda • La souris, le fromage et le chat

• Qu’est-ce que Microsoft SDL ?

• SDL Warrior

• Duke in the game

Sunday, March 4, 12

Page 15: 2012 03-02-sdl-sgi-v03

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, March 4, 12

Page 16: 2012 03-02-sdl-sgi-v03

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, March 4, 12

Page 17: 2012 03-02-sdl-sgi-v03

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, March 4, 12

Page 18: 2012 03-02-sdl-sgi-v03

Spécifications – Recommandations de sécurité

Sunday, March 4, 12

Page 19: 2012 03-02-sdl-sgi-v03

Spécifications – Recommandations de sécurité

Sunday, March 4, 12

Page 20: 2012 03-02-sdl-sgi-v03

Spécifications – Recommandations de sécurité

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

Sunday, March 4, 12

Page 21: 2012 03-02-sdl-sgi-v03

Spécifications – Recommandations de sécurité

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

Sunday, March 4, 12

Page 22: 2012 03-02-sdl-sgi-v03

Spécifications – Recommandations de 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 :

Sunday, March 4, 12

Page 23: 2012 03-02-sdl-sgi-v03

Spécifications – Recommandations de 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 :

Sunday, March 4, 12

Page 24: 2012 03-02-sdl-sgi-v03

Spécifications – Recommandations de 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

Sunday, March 4, 12

Page 25: 2012 03-02-sdl-sgi-v03

Spécifications – Recommandations de 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

Sunday, March 4, 12

Page 26: 2012 03-02-sdl-sgi-v03

Spécifications – Recommandations de 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

Sunday, March 4, 12

Page 27: 2012 03-02-sdl-sgi-v03

Spécifications – Recommandations de 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

Sunday, March 4, 12

Page 28: 2012 03-02-sdl-sgi-v03

Spécifications – Evaluer le projet et les couts éventuels

1. Evaluer les portions du projet nécessitant : – modélisations des menaces

– revues de conception de sécurité

– tests de pénétration

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 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

Sunday, March 4, 12

Page 29: 2012 03-02-sdl-sgi-v03

Conception1. 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, March 4, 12

Page 30: 2012 03-02-sdl-sgi-v03

STRIDE ? Catégorie Descrip@on

Pas  un  bogue  de  sécurité  

Usurpa9on  (Spoofing)A^aque  par  laquelle  un  a^aquant  ou  un  serveur  non  autorisé  se  fait  passer  pour  un  u9lisateur  ou  un  serveur  valide,  ou  un  code  malveillant  se  présente  comme  valide  

Falsifica9on  (Tampering) Modifica9on  malveillante  des  données  

Répudia9on  (Repudia9on)Menaces  associées  aux  u9lisateurs  qui  nient  avoir  effectué  une  ac9on  sans  que  les  autres  par9es  aient  le  moyen  de  prouver  le  contraire  

Divulga9on  d’informa9ons  (Informa9ons  Disclosure)

Menaces  qui  impliquent  l’exposi9on  des  informa9ons  à  des  individus  qui  ne  sont  pas  censés  y  accéder.  

Déni  de  service  (Denial  of  Service)

A^aques  (DoS)  qui  empêchent  un  u9lisateur  autorisé  d’accéder  aux  services  

Éléva9on  de  privilège  (Eleva9on  of  Privilege)

Menace  qui  permet  à  un  u9lisateur  de  s’octroyer  une  autorisa9on  supplémentaire  

Réduc9on  de  la  surface  d’a^aque.    (A^ack  Surface  Reduc9on.  )

Il  est  important  d’iden9fier  la  surface  d’a^aque,  même  si  les  interfaces  qui  y  sont  exposées  ne  sont  pas  des  vulnérabilités  au  sens  technique  

Sunday, March 4, 12

Page 31: 2012 03-02-sdl-sgi-v03

DREAD ? Catégorie Description

Dommage Potentiel (Damage)

Si la menace se produit, quel est le niveau de dommage :0 – Rien10 – Total compromission

Reproductible (Reproducibility)

Quelle est la complexité pour reproduire la menace0 – quasi-impossible10 – pas d’authentification, a travers un navigateur Web

Exploitation (Exploitability)De quoi a-t-on besoin pour l’exploitation 0 – connaissance en programmation, des outils, …10 – juste un navigateur Web

Utilisateurs touchés (Affected Users)

Combien d’utilisateurs seront affectés 0 – Aucun5 – Quelques uns10 – Tous

Découverte (Discoverability)

La faille est-elle simple a découvrir 0 – quasi-impossible5 – via un sniffing réseau ou autre type9 – les détails sont dans le domaine public10 – Il suffit de regarder la barre du navigateur Web

Sunday, March 4, 12

Page 32: 2012 03-02-sdl-sgi-v03

Calcul final DREADDAMAGEREPRODUCIBILITYEXPLOITABILITYAFFECTED USERSDISCOVERABILITY

5

Sunday, March 4, 12

Page 33: 2012 03-02-sdl-sgi-v03

Implémentation1. Créer  la  documenta@on  et  les  ou@ls  permeGant  

d’adresser  les  problèmes  de  sécurité  et  de  vie  privée

2. Suivre  les  bonnes  pra@ques  de  développement

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

4. Effectuer  une  revue  automa@sée  de  code

Sunday, March 4, 12

Page 34: 2012 03-02-sdl-sgi-v03

Vérification1. 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, March 4, 12

Page 35: 2012 03-02-sdl-sgi-v03

Diffusion1. Effectuer une revue des manipulations de données privées

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

3. Effectuer la revue finale de sécurité

4. Publier la version et archiver une copie.

Loi de Murphy

Dernière version des documents projets et risques à destination de l’équipe sécurité.

Sunday, March 4, 12

Page 36: 2012 03-02-sdl-sgi-v03

Réponse aux incidents1. 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, March 4, 12

Page 37: 2012 03-02-sdl-sgi-v03

SDL Agile

25

Sunday, March 4, 12

Page 38: 2012 03-02-sdl-sgi-v03

Agenda • La souris, le fromage et le chat

• Qu’est-ce que Microsoft SDL ?

• SDL Warrior

• Duke in the game

Sunday, March 4, 12

Page 39: 2012 03-02-sdl-sgi-v03

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, March 4, 12

Page 40: 2012 03-02-sdl-sgi-v03

Sunday, March 4, 12

Page 41: 2012 03-02-sdl-sgi-v03

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, March 4, 12

Page 42: 2012 03-02-sdl-sgi-v03

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églementa9ons  

• Image  de  marque•Ne  pas  se  retrouver  à  la  une  du  journal  «  Le  Monde  »  suite  à  un  incident

Sunday, March 4, 12

Page 43: 2012 03-02-sdl-sgi-v03

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églementa9ons  

• Image  de  marque•Ne  pas  se  retrouver  à  la  une  du  journal  «  Le  Monde  »  suite  à  un  incident

Sunday, March 4, 12

Page 44: 2012 03-02-sdl-sgi-v03

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églementa9ons  

• Image  de  marque•Ne  pas  se  retrouver  à  la  une  du  journal  «  Le  Monde  »  suite  à  un  incident

Sunday, March 4, 12

Page 45: 2012 03-02-sdl-sgi-v03

Le problème

Sunday, March 4, 12

Page 46: 2012 03-02-sdl-sgi-v03

0x01

32

Sunday, March 4, 12

Page 47: 2012 03-02-sdl-sgi-v03

0x01

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

32

Sunday, March 4, 12

Page 48: 2012 03-02-sdl-sgi-v03

0x10b

• Se jeter à l’eau :

Sunday, March 4, 12

Page 49: 2012 03-02-sdl-sgi-v03

0x10b

• Se jeter à l’eau :

Corrigez tous les problèmes que vous pouvez trouver

Sunday, March 4, 12

Page 50: 2012 03-02-sdl-sgi-v03

0x10b

• Se jeter à l’eau :

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

Corrigez tous les problèmes que vous pouvez trouver

Sunday, March 4, 12

Page 51: 2012 03-02-sdl-sgi-v03

0x10b

• Se jeter à l’eau :

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

Corrigez tous les problèmes que vous pouvez trouver

Sunday, March 4, 12

Page 52: 2012 03-02-sdl-sgi-v03

34

Sunday, March 4, 12

Page 53: 2012 03-02-sdl-sgi-v03

34

Sunday, March 4, 12

Page 54: 2012 03-02-sdl-sgi-v03

34

Sunday, March 4, 12

Page 55: 2012 03-02-sdl-sgi-v03

34

Sunday, March 4, 12

Page 56: 2012 03-02-sdl-sgi-v03

34

Sunday, March 4, 12

Page 57: 2012 03-02-sdl-sgi-v03

34

Sunday, March 4, 12

Page 58: 2012 03-02-sdl-sgi-v03

34

Sunday, March 4, 12

Page 59: 2012 03-02-sdl-sgi-v03

34

Sunday, March 4, 12

Page 60: 2012 03-02-sdl-sgi-v03

34

Sunday, March 4, 12

Page 65: 2012 03-02-sdl-sgi-v03

Phase 1 - Spécifications§ Mise en place du bugtracker

– Catégories d’effet des bugs :

• Elements STRIDE (ou autre des modélisations)

– Catégories de cause des bugs :

• XSS, CSRF, SQL-i, DOS, Crypto….

Sunday, March 4, 12

Page 66: 2012 03-02-sdl-sgi-v03

Phase 2 – Design - OWASP ASVS ?

• Quelles sont les fonctionnalités à mettre en oeuvre dans les contrôles de sécurité nécessaires à mon application

• 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

• Quel niveau de confiance puis-je avoir dans une application

Spécifications/Politique de sécurité des développements

Aide à la revue de code

Chapitre sécurité des contrats de développement ou des appels d’offres !

Sunday, March 4, 12

Page 67: 2012 03-02-sdl-sgi-v03

Phase 2 – Design - OWASP ASVS ?

• Quelles sont les fonctionnalités à mettre en oeuvre dans les contrôles de sécurité nécessaires à mon application

• 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

• Quel niveau de confiance puis-je avoir dans une application

Spécifications/Politique de sécurité des développements

Aide à la revue de code

Chapitre sécurité des contrats de développement ou des appels d’offres !

Sunday, March 4, 12

Page 68: 2012 03-02-sdl-sgi-v03

Politique de sécurité

Sunday, March 4, 12

Page 69: 2012 03-02-sdl-sgi-v03

Phase 2 - Modélisation des attaques• Utilisation des méthodologies :

• STRIDE

• ISO 27005

• SDL Threat Modeling Tool

• …..

• Garder à l’esprit : • 0x01 : la règle du 80/20

Garder a l’esprit l’impact métier !

Sunday, March 4, 12

Page 70: 2012 03-02-sdl-sgi-v03

Phase 2 - Modélisation des attaques• Utilisation des méthodologies :

• STRIDE

• ISO 27005

• SDL Threat Modeling Tool

• …..

• Garder à l’esprit : • 0x01 : la règle du 80/20

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

Garder a l’esprit l’impact métier !

Sunday, March 4, 12

Page 71: 2012 03-02-sdl-sgi-v03

Phase 2 - Modélisation des attaques• Utilisation des méthodologies :

• STRIDE

• ISO 27005

• SDL Threat Modeling Tool

• …..

• Garder à l’esprit : • 0x01 : la règle du 80/20

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

Garder a l’esprit l’impact métier !

Sunday, March 4, 12

Page 72: 2012 03-02-sdl-sgi-v03

Phase 3 - Développement

§ Suivre les best-practices :

– OWASP  Secure  Coding  Prac@ces

• hGps://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)

• hGp://www.oracle.com/technetwork/java/seccodeguide-­‐139067.html

§ Utiliser les bons outils/bibliothèques (https://www.owasp.org)

– OWASP  CSRF  Guard

– OWASP  Java  Sani@zer

– OWASP  S@nger

Sunday, March 4, 12

Page 73: 2012 03-02-sdl-sgi-v03

Phase 3 - Cookies

Sunday, March 4, 12

Page 74: 2012 03-02-sdl-sgi-v03

Phase 3 - Validations

Sunday, March 4, 12

Page 75: 2012 03-02-sdl-sgi-v03

Phase 3 – SQL

Sunday, March 4, 12

Page 76: 2012 03-02-sdl-sgi-v03

The OWASP Foundationhttp://www.owasp.orgPhase 3 – Pour aller

OWASP Enterprise Security API

Sunday, March 4, 12

Page 77: 2012 03-02-sdl-sgi-v03

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_Project

§ Semi-Automatisé :

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

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

• Build : • SONAR : http://www.sonarsource.org/

Sunday, March 4, 12

Page 78: 2012 03-02-sdl-sgi-v03

Phase 4 – Revue de code (Code Pro Analytix)

Sunday, March 4, 12

Page 79: 2012 03-02-sdl-sgi-v03

Phase 4 - Tests de pénétration

1. 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  techniques

3. Demander des classifications compatibles avec votre outil 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, March 4, 12

Page 80: 2012 03-02-sdl-sgi-v03

Phase 4 - Mettre en place des tableaux de décision

Sunday, March 4, 12

Page 81: 2012 03-02-sdl-sgi-v03

Phase 4 - Mettre en place des tableaux de décision

Sunday, March 4, 12

Page 82: 2012 03-02-sdl-sgi-v03

Phase 4 - Mettre en place des tableaux de décision

Sunday, March 4, 12

Page 83: 2012 03-02-sdl-sgi-v03

Phase 4 - Mettre en place des tableaux de décision

Sunday, March 4, 12

Page 84: 2012 03-02-sdl-sgi-v03

Phase 5 – Release / Production

Sunday, March 4, 12

Page 86: 2012 03-02-sdl-sgi-v03

@SPoint

[email protected]

50

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

Sunday, March 4, 12