2012 03-02-sdl-sgi-v03

Post on 21-Jun-2015

756 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Présentation sur la SDL microsoft faite au confoo 2012

TRANSCRIPT

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

CISA && ISO 27005 Risk Manager

2

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

‣OWASP France Leader & Founder - Evangéliste‣OWASP Global Education Comittee Member (sebastien.gioria@owasp.org)

‣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

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

Pourquoi ?

Les hackers sont astucieux

Les  hackers  sont  astucieux

Sunday, March 4, 12

Le cout est important

Sunday, March 4, 12

Soyons donc précis !

Sunday, March 4, 12

Agenda • La souris, le fromage et le chat

• Qu’est-ce que Microsoft SDL ?

• SDL Warrior

• Duke in the game

Sunday, March 4, 12

8

Sunday, March 4, 12

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

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

The OWASP Foundationhttp://www.owasp.org

Sunday, March 4, 12

The OWASP Foundationhttp://www.owasp.org

Sunday, March 4, 12

The OWASP Foundationhttp://www.owasp.org

Sunday, March 4, 12

Agenda • La souris, le fromage et le chat

• Qu’est-ce que Microsoft SDL ?

• SDL Warrior

• Duke in the game

Sunday, March 4, 12

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

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

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

Spécifications – Recommandations de sécurité

Sunday, March 4, 12

Spécifications – Recommandations de sécurité

Sunday, March 4, 12

Spécifications – Recommandations de sécurité

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

Sunday, March 4, 12

Spécifications – Recommandations de sécurité

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

Sunday, March 4, 12

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

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

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

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

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

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

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

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

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

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

Calcul final DREADDAMAGEREPRODUCIBILITYEXPLOITABILITYAFFECTED USERSDISCOVERABILITY

5

Sunday, March 4, 12

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

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

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

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

SDL Agile

25

Sunday, March 4, 12

Agenda • La souris, le fromage et le chat

• Qu’est-ce que Microsoft SDL ?

• SDL Warrior

• Duke in the game

Sunday, March 4, 12

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

Sunday, March 4, 12

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

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

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

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

Le problème

Sunday, March 4, 12

0x01

32

Sunday, March 4, 12

0x01

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

32

Sunday, March 4, 12

0x10b

• Se jeter à l’eau :

Sunday, March 4, 12

0x10b

• Se jeter à l’eau :

Corrigez tous les problèmes que vous pouvez trouver

Sunday, March 4, 12

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

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

34

Sunday, March 4, 12

34

Sunday, March 4, 12

34

Sunday, March 4, 12

34

Sunday, March 4, 12

34

Sunday, March 4, 12

34

Sunday, March 4, 12

34

Sunday, March 4, 12

34

Sunday, March 4, 12

34

Sunday, March 4, 12

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

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

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

Politique de sécurité

Sunday, March 4, 12

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

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

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

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

Phase 3 - Cookies

Sunday, March 4, 12

Phase 3 - Validations

Sunday, March 4, 12

Phase 3 – SQL

Sunday, March 4, 12

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

OWASP Enterprise Security API

Sunday, March 4, 12

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

Phase 4 – Revue de code (Code Pro Analytix)

Sunday, March 4, 12

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

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

Sunday, March 4, 12

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

Sunday, March 4, 12

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

Sunday, March 4, 12

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

Sunday, March 4, 12

Phase 5 – Release / Production

Sunday, March 4, 12

@SPoint

sebastien.gioria@owasp.org

50

Sunday, March 4, 12

@SPoint

sebastien.gioria@owasp.org

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

top related