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, March 4, 12
3. 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
4. Pourquoi ?
Les
hackers
sont
astucieux
Sunday, March 4, 12
9. 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
10. Security Development LifeCycle(SDL)
§ 2004 : « Stop Security Kiddies »
§ Méthode de développement sécurisée de tous les
produits Microsoft !
Vainqueurs a la CVE 2010
Produit 1er 2ème 3ème
Système
Linux
Kernel
Windows
Server
Apple
IOS
(35)
d’exploita9on (129) 2008
(93)
MS-‐SQL
Server
SGBD Oracle
(36) Mysql
(3)
(1)
Navigateur Chrome
(164) Safari
(130) Firefox
(115)
Sunday, March 4, 12
14. Agenda
• La souris, le fromage et le chat
• Qu’est-ce que Microsoft SDL ?
• SDL Warrior
• Duke in the game
Sunday, March 4, 12
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, March 4, 12
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, March 4, 12
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, March 4, 12
22. 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
23. 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
24. 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
25. 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
26. 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
27. 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
28. 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
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, March 4, 12
30. STRIDE ?
Catégorie Descrip@on
Pas
un
bogue
de
sécurité
A^aque
par
laquelle
un
a^aquant
ou
un
serveur
non
Usurpa9on
(Spoofing) 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
Menaces
associées
aux
u9lisateurs
qui
nient
avoir
Répudia9on
(Repudia9on) effectué
une
ac9on
sans
que
les
autres
par9es
aient
le
moyen
de
prouver
le
contraire
Divulga9on
d’informa9ons
Menaces
qui
impliquent
l’exposi9on
des
informa9ons
à
(Informa9ons
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
u9lisateur
autorisé
Service) d’accéder
aux
services
Éléva9on
de
privilège
Menace
qui
permet
à
un
u9lisateur
de
s’octroyer
une
(Eleva9on
of
Privilege) autorisa9on
supplémentaire
Réduc9on
de
la
surface
Il
est
important
d’iden9fier
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
Reduc9on.
) vulnérabilités
au
sens
technique
Sunday, March 4, 12
31. DREAD ?
Catégorie Description
Si la menace se produit, quel est le niveau de dommage :
Dommage Potentiel
0 – Rien
(Damage)
10 – Total compromission
Quelle est la complexité pour reproduire la menace
Reproductible
0 – quasi-impossible
(Reproducibility)
10 – pas d’authentification, a travers un navigateur Web
De quoi a-t-on besoin pour l’exploitation
Exploitation (Exploitability) 0 – connaissance en programmation, des outils, …
10 – juste un navigateur Web
Combien d’utilisateurs seront affectés
Utilisateurs touchés (Affected 0 – Aucun
Users) 5 – Quelques uns
10 – Tous
La faille est-elle simple a découvrir
0 – quasi-impossible
Découverte (Discoverability) 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, March 4, 12
33. Implémentation
1. 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
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, March 4, 12
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, March 4, 12
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, March 4, 12
38. Agenda
• La souris, le fromage et le chat
• Qu’est-ce que Microsoft SDL ?
• SDL Warrior
• Duke in the game
Sunday, March 4, 12
39. 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
41. 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
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 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
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 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
44. 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
47. 0x01
Régler 80% des problèmes avec 20% d’effort
32
Sunday, March 4, 12
48. 0x10b
• Se jeter à l’eau :
Sunday, March 4, 12
49. 0x10b
• Se jeter à l’eau :
Corrigez tous les problèmes que
vous pouvez trouver
Sunday, March 4, 12
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, March 4, 12
51. 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, March 4, 12
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, March 4, 12
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, March 4, 12
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, March 4, 12
64. 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
65. 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
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, March 4, 12
67. 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, March 4, 12
69. Phase 2 - Modélisation des attaques
• Utilisation des méthodologies :
• STRIDE
• ISO 27005 Garder a l’esprit
l’impact métier !
• SDL Threat Modeling Tool
• …..
• Garder à l’esprit :
• 0x01 : la règle du 80/20
Sunday, March 4, 12
70. Phase 2 - Modélisation des attaques
• Utilisation des méthodologies :
• STRIDE
• ISO 27005 Garder a l’esprit
l’impact métier !
• 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 !
Sunday, March 4, 12
71. Phase 2 - Modélisation des attaques
• Utilisation des méthodologies :
• STRIDE
• ISO 27005 Garder a l’esprit
l’impact métier !
• 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 !
Sunday, March 4, 12
72. 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
78. Phase 4 – Revue de code (Code Pro
Analytix)
Sunday, March 4, 12
79. 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
80. Phase 4 - Mettre en place des tableaux de
décision
Sunday, March 4, 12
81. Phase 4 - Mettre en place des tableaux de
décision
Sunday, March 4, 12
82. Phase 4 - Mettre en place des tableaux de
décision
Sunday, March 4, 12
83. Phase 4 - Mettre en place des tableaux de
décision
Sunday, March 4, 12
84. Phase 5 – Release / Production
Sunday, March 4, 12
85. @SPoint
sebastien.gioria@owasp.org
50
Sunday, March 4, 12
86. @SPoint
sebastien.gioria@owasp.org
Il n'y a qu'une façon d'échouer, c'est d'abandonner avant
d'avoir réussi [Olivier Lockert]
50
Sunday, March 4, 12