2012 03-02-sdl-sgi-v03
Post on 21-Jun-2015
756 Views
Preview:
DESCRIPTION
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 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, March 4, 12
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, March 4, 12
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, March 4, 12
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, 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