Intégrer la sécurité dans le processus de développement des applications et services en ligne PSDP (Proactive Secure Development Process)
Khaled BEN DRISS (khaled.bendriss@oxia-groupe.com)
Pôle Technologique El Gazala – Tunisie 28 avril 2009
Ingénieur de l'Ecole Centrale de Lyon (ECL’1991) Docteur de l'Université Paris 6 ( P&MC ‘ 1994) Ancien Maître Assistant à l'Ecole Polytechnique de Tunisie Directeur Technique OXIA Khaled BEN DRISS
Consultant Senior : Architecte de Système d'Information www.oxiasoft.com Proactive Secure Development Process
1
Tunisie – Parc Elghazela- 28/04/2008
khaled.bendriss@oxia-group.com
Le groupe OXIA en bref Un leader des Systèmes d’Information et du Nearshore au Maghreb : • • • • •
Date de création : 1998 Forme juridique : Société Anonyme Effectif : 180 personnes (janvier 2009) 60% de l’activité réalisée en dehors de la Tunisie Filiale en Algérie Certification ISO 9001 version 2000 (AFAQ QUAL/2005/25140 )
Software Engineering
Business Solutions
IT Outsourcing
Management Consulting
Proactive Secure Development Process
Tunisie – Parc Elghazela- 28/04/2008
Khaled BEN DRISS
•
khaled.bendriss@oxia-group.com
Khaled BEN DRISS
Objectifs de la présentation
Proactive Secure Development Process
3
Tunisie – Parc Elghazela- 28/04/2008
khaled.bendriss@oxia-group.com
Proactive Secure Development Process Plan de la présentation Pourquoi introduire la sécurité dans le cycle de vie du logiciel ? Présentation du processus PSDP Les principales activités dans le processus PSDP Vue d’ensemble : Les pratiques de sécurité
Khaled BEN DRISS
conclusion
Proactive Secure Development Process
4
Tunisie – Parc Elghazela- 28/04/2008
khaled.bendriss@oxia-group.com
Khaled BEN DRISS
Question?
Proactive Secure Development Process
5
Tunisie – Parc Elghazela- 28/04/2008
khaled.bendriss@oxia-group.com
Le constat
75% des attaques concernent la couche application (Gartner)
XSS et SQL Injection sont classées #1 et #2 des vulnérabilités dans le top ten OWASP 2007
Les applications Web sont des cibles de valeurs élevées pour les hackers:
La plupart des sites sont vulnérables:
90% des sites sont vulnérables aux attaques d'application (Watchfire)
78% d'applications Web affectées de vulnérabilités facilement exploitables (Symantec)
Vol d’informations sensibles (données clients, Cartes de crédit, vol et usurpation d’identités) , altération de site, insertion de logiciel malveillants, etc.
80% des organisations auront un incident de sécurité d'application d'ici 2010 (Gartner)
Proactive Secure Development Process
6
Exigences de conformité:
Payment Card Industry (PCI) Standards, Sarbanes Oxley, ISO.
Khaled BEN DRISS
Les Applications Web sont la cible #1 des hackers:
Tunisie – Parc Elghazela- 28/04/2008
khaled.bendriss@oxia-group.com
Développer une application web : les objectifs divergents
Fonctionnalité Convivialité
Efficacité
Développement rapide
Objectifs de la sécurité dans les applications Prévention
Traçabilité
Surveillance
Confidentialité
Simplicité
Sécurité multi-niveaux
Faible coût
Authentification
Intégrité
Proactive Secure Development Process
Tunisie – Parc Elghazela- 28/04/2008
Khaled BEN DRISS Architecture d’entreprise – OXIA - 2008 copyright OXIA
Objectifs des projets de développement d’applications
khaled.bendriss@oxia-group.com
Khaled BEN DRISS
Les trois piliers de la sécurité
Proactive Secure Development Process
8
Tunisie – Parc Elghazela- 28/04/2008
khaled.bendriss@oxia-group.com
Les trois piliers de la sécurité : Les personnes
Incluent les acteurs : utilisateurs, les développeurs, les analystes, les gestionnaires, les administrateurs de systèmes.
Appliquent, analysent ou implémentent les mesures de sécurité.
Peuvent contourner ou insérer des failles de sécurité.
L'éducation est la clé
la première et la plus importante étape du processus de construction de systèmes fiables .
il faut comprendre son adversaire
Beaucoup de développeurs comprennent comment fonctionnent les éléments de sécurité, mais ne comprennent pas comment construire des systèmes sécurisés.
Doivent être sensibilisées à leurs responsabilités, à l’importance de la sécurité. Proactive Secure Development Process
Définir des check-list et des standards et les expliquer
Khaled BEN DRISS
Les personnes (acteurs)
9
Tunisie – Parc Elghazela- 28/04/2008
khaled.bendriss@oxia-group.com
Les trois piliers de la sécurité: La technologie
La technologie
Proactive Secure Development Process
Ne suffit pas à elle seule :
La majorité des attaques se produisent au niveau de l’application elle même
10
Tunisie – Parc Elghazela- 28/04/2008
Khaled BEN DRISS
Offre un ensemble d’outils pouvant être mis en place pour compléter, vérifier ou automatiser certaines mesures de sécurité exigées par la Politique de sécurité ou la cible de sécurité de la ressource informationnelle.
khaled.bendriss@oxia-group.com
Les trois piliers de la sécurité: Le processus
La sécurité est principalement un ensemble de processus. • Politique de sécurité; • Analyse de risque et modélisation des menaces; • gestion des identités et des privilèges d’accès; • Conduite des audits; • Définition des plans de contingence;
• Mais, un nombre très limité investit dans une stratégie de sécurité pour le développement ds applications, la conception, et les services de revues de code Proactive Secure Development Process
11
Tunisie – Parc Elghazela- 28/04/2008
Khaled BEN DRISS
Pratiquement toutes les Entreprises utilisent des infrastructures de sécurité (Firewalls, IDS, etc) :
khaled.bendriss@oxia-group.com
Qu'est ce qu'un Processus? Définit Qui fait Quoi, Quand le faire, et Comment atteindre un objectif. Besoin Nouveau
système nouveau ou mise à jour
Khaled BEN DRISS
Ou un changement
Processus d'ingénierie logicielle
Proactive Secure Development Process
12
Tunisie – Parc Elghazela- 28/04/2008
khaled.bendriss@oxia-group.com
Qu'est ce qu'un Processus? Définit Qui fait Quoi, Quand le faire, et Comment atteindre un objectif. Besoin Nouveau
Processus d'ingénierie logicielle
Ou un changement
système nouveau ou mise à jour
Processus de développement traditionnel (UP, XP, 2TUP …):
Analyse
Conception
Proactive Secure Development Process
Implémentation
13
Vérification
Déploiement
Tunisie – Parc Elghazela- 28/04/2008
Maintenance
Khaled BEN DRISS
la sécurité est traitée comme un besoin annexe!
khaled.bendriss@oxia-group.com
Proactive Secure Development Process Plan de la présentation Pourquoi introduire la sécurité dans le cycle de vie du logiciel ? Présentation du processus PSDP Les principales activités dans le processus PSDP Vue d’ensemble : Les pratiques de sécurité
Khaled BEN DRISS
conclusion
Proactive Secure Development Process
14
Tunisie – Parc Elghazela- 28/04/2008
khaled.bendriss@oxia-group.com
PSDP – Proactive Secure Development Process? Analyse
Conception
Implémentation
Déploiement
Maintenance
• Utilisé avec le cycle de vie développement de logiciel pour inclure la sécurité dans toutes les étapes et les activités de développement
Khaled BEN DRISS
Proactive Secure Development Process (PSDP)
Vérification
Proactive Secure Development Process
15
Tunisie – Parc Elghazela- 28/04/2008
khaled.bendriss@oxia-group.com
Proactive Secure Development Process Plan de la présentation Pourquoi introduire la sécurité dans le cycle de vie du logiciel ? Présentation du processus PSDP Les principales activités dans le processus PSDP Vue d’ensemble : Les pratiques de sécurité
Khaled BEN DRISS
conclusion
Proactive Secure Development Process
16
Tunisie – Parc Elghazela- 28/04/2008
khaled.bendriss@oxia-group.com
Gestion des exigences : Considérer la sécurité dés le début Conception
Implémentation
Constituer l’équipe sécurité du projet (ESP ) qui : Réalise des revues des planning
L’équipe de Développent identifie les besoins en sécurité
Recommandes la stratégie de test
Déploiement
Maintenance
Trouver les Anti-Exigences
Pensez à ce que le logiciel ne devrait pas faire. Cas de détournement : c’est l'inverse d'un cas d'utilisation ( Misuse Case)
Demande les ressources aux management
Anti-Acteur c’est l'inverse de l’acteur : un acteur que le système ne doit pas support, un acteur qui initie l'utilisation abusive du logiciel.
Évalue les jalons fixés pour vérifier la sécurité Proactive Secure Development Process
Vérification
17
Tunisie – Parc Elghazela- 28/04/2008
Khaled BEN DRISS
Analyse
khaled.bendriss@oxia-group.com
Lors de la conception Analyse
Conception
Implémentation
Vérification
Activités : Identifier les composants critiques pour la sécurité (“base de confiance”)
Déploiement
Maintenance
A ce stage toutes les décisions de conception et d’architecture ont été prise :
Identifier les techniques de conception (découpage en couche, moindre privilège, …)
Architecture logicielle
Définir et documenter l’architecture sécurité composants logiciels
Créer un modèle des menaces (voir suite)
Langage(s) de Programmation
Identifier les outils spécifiques de test Définir des critères supplémentaires en fonction de la spécificité du produit (cross-site scripting tests, …) Vérifier l’exhaustivité des réponses par rapport à la checkList sécurité de l’entreprise… Proactive Secure Development Process
18
Tunisie – Parc Elghazela- 28/04/2008
Khaled BEN DRISS
Interfaces
khaled.bendriss@oxia-group.com
Créer un modèle des menaces : Analyse des risques Analyse
Conception
Implémentation
Vérification
Déploiement
Maintenance
Analyser les risques et anticiper : “Correction des défauts de conception, pas les bugs de codage“ Développer un modèle d’architecture. Identifier les menaces et les vulnérabilités possibles. Développer des scénarios d'attaque. Classifier les risques en se basant sur la probabilité et l'impact. Élaborer une stratégie d'atténuation et de contre mesures. Documenter les resultants Proactive Secure Development Process
19
Tunisie – Parc Elghazela- 28/04/2008
menaces
Ressource
CSC 666: Secure Software Engineering Khaled BEN DRISS
Vulnérabilité
khaled.bendriss@oxia-group.com
Importance de l’architecture Conception
Intégrer la sécurité au cœur même de l’architecture globale
Éviter à tout pris de baser la sécurité sur le secret: Proscrire la notion de «securityby-obscurity».
Implémentation
Vérification
Déploiement
Maintenance
Définir l’ensemble des politiques de sécurité sur lequel devra reposer la sécurité.
Ne pas développer des mécanismes de sécurité inutiles.
Proactive Secure Development Process
20
Khaled BEN DRISS
Analyse
Tunisie – Parc Elghazela- 28/04/2008
khaled.bendriss@oxia-group.com
Implémentation Analyse
Conception
Implémentation
Vérification
Déploiement
Maintenance
C’est l’activité de codage : produire un logiciel “fiable” Suivre la documentation de la conception Standards de Codage Modules de sécurité Centralisé Sécuriser les builds et la configuration
Khaled BEN DRISS
utiliser les bonnes pratiques de programmation, adaptées aux risques et failles de sécurité connus • Injection SQL • Buffer overflow • Formatage des chaines de caractères • Cross-Site Scripting (XSS) •… Proactive Secure Development Process
21
Tunisie – Parc Elghazela- 28/04/2008
khaled.bendriss@oxia-group.com
Vérification Analyse
Conception
Implémentation
Ce n’est pas une substitution des activités de sécurité lors du développement
Vérification
Déploiement
Revues de code
Maintenance
Découvrir les problèmes le plutôt dans le cycle de développement
Tentative de pénétration et autres tests de sécurité
Revues de la conception et de l’architecture,
Pour les anciens modules et codes sources (réutilisés dans le projet)
Revue du modèle de menaces à la lumière des nouveaux risques
L'idée est d'injecter des données aléatoires dans les entrées d'un programme. Appliquer la technique de fuzzing
Proactive Secure Development Process
22
Khaled BEN DRISS
En parallèle des tests d’intégration, effectuer des tests de sécurité
Offre une nouvelle opportunité pour focaliser sur la sécurité
Si le programme échoue (par exemple en crashant ou en générant une erreur), alors il y a des défauts à corriger. Tunisie – Parc Elghazela- 28/04/2008
khaled.bendriss@oxia-group.com
Tests de sécurité : combiner plusieurs approches et méthodes Conception
Deux familles de de test
Implémentation
Vérification
Test Automatisé
Fonctionnel: vérifier les mécanismes de sécurité.
Attaque: vérifier la résistance aux attaques découverts au cours de l'analyse des risques.
Déploiement
Test manuel
Boite blanche (analyse statique du code)
Boite noire (scanners pour application web)
Vulnérabilités Logique
intelligence Humaine (connaitre son adversaire)
Vulnérabilités techniques
Test de non régression
Proactive Secure Development Process
23
Maintenance
Tunisie – Parc Elghazela- 28/04/2008
CSC 666: Secure Software Engineering Khaled BEN DRISS
Analyse
khaled.bendriss@oxia-group.com
SDL – Release Phase Analyse
Conception
Implémentation
Vérification
Déploiement
Maintenance
Exigences relatives à la surveillance et monitoring
Procédures de gestion sécurisée
Khaled BEN DRISS
Procédures de Mise à jour de la sécurité
24 Proactive Secure Development Process
24
Tunisie – Parc Elghazela- 28/04/2008
khaled.bendriss@oxia-group.com
SDL – Response Phase Analyse
Conception
Implémentation
Types de maintenance
Vérification
Déploiement
Maintenance
Les causes :
Nécessité d'introduire de nouvelles fonctionnalités
Feedback des utilisateurs
Besoin de mise à niveau pour suivre la technologie
incident de sécurité et rapports de vulnérabilité Khaled BEN DRISS
Découverte de vulnérabilité 25 Proactive Secure Development Process
25
Tunisie – Parc Elghazela- 28/04/2008
khaled.bendriss@oxia-group.com
Proactive Secure Development Process Plan de la présentation Pourquoi introduire la sécurité dans le cycle de vie du logiciel ? Présentation du processus PSDP Les principales activités dans le processus PSDP Vue d’ensemble : Les pratiques de sécurité
Khaled BEN DRISS
conclusion
Proactive Secure Development Process
26
Tunisie – Parc Elghazela- 28/04/2008
khaled.bendriss@oxia-group.com
Vue d’ensemble : Les pratiques de sécurité Cas de détournement Analyse de risque
Conception
Implémentation
Vérification
Tests de Sécurité
Déploiement
Tests de Pénétration
Opérations de Sécurité
Maintenance
Khaled BEN DRISS
Analyse
Revus de Code + Analyses Statique
Proactive Secure Development Process
27
Tunisie – Parc Elghazela- 28/04/2008
khaled.bendriss@oxia-group.com
Proactive Secure Development Process Plan de la présentation Pourquoi introduire la sécurité dans le cycle de vie du logiciel ? Présentation du processus PSDP Les principales activités dans le processus PSDP Vue d’ensemble : Les pratiques de sécurité
Khaled BEN DRISS
conclusion
Proactive Secure Development Process
28
Tunisie – Parc Elghazela- 28/04/2008
khaled.bendriss@oxia-group.com
Processus +Education +Responsabilisation = PSDP Secure by Design • Une architecture logicielle fiable et sécurisée, conception et implémentation permettant de protéger les informations traitées et résister aux attaques.
Secure by Default • Être pessimiste, en supposant que des failles de sécurité seront toujours présentent. L’état par défaut devrait promouvoir la sécurité
3 SD +E
• fonctionner avec le minimum nécessaire de privilèges • Installez uniquement les services et les fonctionnalités qui sont nécessaires
Secure in Deployment • Fournir des outils et des guides pour aider les utilisateurs et les administrateurs à utiliser le logiciel en toute sécurité, et à déployer les mises à jour en temps opportun. Khaled BEN DRISS
Education • Former, informer et communiquer en permanence : la sécurité c’est l’affaire de tous Inspiré de Microsoft Proactive Secure Development Process
29
Tunisie – Parc Elghazela- 28/04/2008
khaled.bendriss@oxia-group.com
Khaled BEN DRISS
Biblio + www
Proactive Secure Development Process
Tunisie – Parc Elghazela- 28/04/2008
khaled.bendriss@oxia-group.com
Khaled BEN DRISS Directeur Technique Tel : +216 71 28 27 00 Mob.: +216 25 23 45 30
11 rue Claude Bernard 1002 Le Belvédère Tunis, Tunisia Tél : +216 71 28 27 00 Fax : +216 71 28 27 05
khaled.bendriss@oxia-group.com www.oxia-group.com