Préface de Jérôme HENNECART - Expert en Cyberdéfense pour Serval-Concept
Cet ouvrage sur la sécurité des applications web s'adresse à l'ensemble des personnes concernées par la sécurité de l'information : développeurs, managers en sécurité de l'information, pentesters, administrateurs système... L'approche choisie par l'auteur permet à un lecteur novice en matière de...
Cet ouvrage sur la sécurité des applications web s'adresse à l'ensemble des personnes concernées par la sécurité de l'information : développeurs, managers en sécurité de l'information, pentesters, administrateurs système... L'approche choisie par l'auteur permet à un lecteur novice en matière de sécurité de comprendre tous les tenants et aboutissants de la sécurité web mais aussi à un lecteur plus expérimenté d'utiliser les chapitres dont il a besoin pour conforter ou améliorer ses connaissances sur le sujet. Le livre n'est pas lié à un langage de développement particulier.
Afin de suivre une progression pédagogique cohérente tout au long du livre, le premier chapitre introduit les concepts de base du web en lien avec la sécurité d'une application : méthodes de travail, architectures, langages et technologies utilisés. Son objectif est de poser les bonnes fondations sur lesquelles développer les axes de sécurité qui seront mis en œuvre. Le deuxième chapitre dresse un état des lieux des normes, des outils, des guides, des bonnes pratiques et des techniques de sécurité existants afin de faciliter la compréhension de la suite du livre.
Le chapitre suivant présente les principaux risques et les principales vulnérabilités connus du web (injections, violation de session, Cross-Site Scripting...). L'auteur a choisi une approche à la fois théorique et pratique avec des exercices à réaliser sur une plateforme de travail dédiée.
Une fois ces trois chapitres lus, le lecteur est conduit vers les concepts du code sécurisé avec toutes les bonnes pratiques à mettre en action lors du développement d'applications ainsi qu'en matière de protection des données personnelles.
Les deux derniers chapitres sont consacrés à la création d'un cycle de développement sécurisé, présentant les différents intervenants et les actions concrètes à mettre en place par un manager dans une organisation possédant des applications web. L'auteur conclut ces deux chapitres par une mise en situation qu'il donne à titre d'exemple.
Des éléments complémentaires sont en téléchargement sur le site www.editions-eni.fr.
Les chapitres du livre :
Préface – Avant-propos – Introduction à la sécurité des applications web – Panorama de la sécurité web – Top 10 des risques et vulnérabilités liés au Web – Les concepts du développement sécurisé – Établir un cycle de développement sécurisé – Aller plus loin avec un modèle de maturité
Retrouvez le webinaire consacré au Top Ten OWASP.
Grâce à ce webinaire apprenez-en plus sur les vulnérabilités du TOP 10 OWASP (Open Web Application Security Project), le classement qui fait référence dans le domaine de la sécurité informatique.
Retrouvez le webinaire sur Burp Suite et la vulnérabilité sur mobile.
Grâce à ce webinaire apprenez-en plus sur la Suite Burp à travers des exemples pratiques sur la configuration, les options target, scope et spider, l'outil repeater, l'intruder…
5. Violation de gestion d’authentification et de session
5.1 Présentation et risques
5.2 Vol de session (session hijacking)
5.3 Faiblesses des mots de passe
5.4 Mot de passe non protégé en base de données
5.5 Faiblesses dans la conception des sessions
6. Cross-Site Scripting (XSS)
6.1 Présentation et risques
6.2 XSS stocké (stored)
6.3 XSS Réfléchi (reflected)
6.4 XSS DOM (Document Object Model)
7. Références directes non sécurisées à un objet
7.1 Présentation et risques
7.2 Entrées directes cachées et non contrôlées
7.3 Entrées indirectes cachées et non contrôlées
8. Mauvaise configuration de sécurité
8.1 Présentation et risques
8.2 Scénarios
9. Exposition de données sensibles
9.1 Présentation et risques
9.2 Scénarios
10. Manque de contrôle d’accès au niveau fonctionnel
10.1 Présentation et risques
10.2 Local/remote file inclusion
10.3 Host Header Attack
10.4 User-agent spoofing
10.5 Server Side Request Forgery (SSRF)
11. Cross Site Request Forgery (CSRF)
11.1 Présentation et risques
11.2 CSRF et requête POST
12. Exploitation de vulnérabilités connues
12.1 Présentation et risques
12.2 WPScan
12.3 Nikto
12.4 OpenVAS
12.5 Qualys SSL Labs
13. Redirections et renvois non validés
Les concepts du développement sécurisé
1. Les 10 commandements du code sécurisé
1.1 Authentification
1.2 Management des sessions
1.3 Contrôle d’accès
1.4 Validation des entrées
1.5 Encodage des sorties
1.6 Upload de fichiers
1.7 XSS
1.8 CSRF
1.9 Clickjacking
1.10 Enregistrement des événements
2. Outils indispensables de la sécurité web
2.1 Analyse de code
2.2 Fuzzing
2.3 Web Application Firewall (WAF)
2.4 Scan de vulnérabilités
2.5 Test de pénétration (Pentest)
3. Secure by design
3.1 Réduction des surfaces d’attaque
3.2 Défense en profondeur
3.3 Séparation des privilèges
3.4 Paramètres par défaut respectant la sécurité
4. Modélisation des menaces (threat modeling)
4.1 Qu’est-ce que la modélisation des menaces ?
4.2 Schéma de votre architecture avec DFD
4.3 Identification des menaces avec la méthode STRIDE
4.4 Documentation et atténuation des menaces
4.5 Validation de votre rapport
5. Respect de la vie privée
5.1 Types de données personnelles
5.2 Principes de la protection des données personnelles
5.3 Notifications
5.4 Consentements
Établir un cycle de développement sécurisé
1. Introduction
2. Sensibilisation des parties prenantes
2.1 Thèmes à enseigner
2.2 Évaluation des stagiaires
2.3 Exemple
3. Exigences
3.1 Définition du projet
3.2 Évaluation des exigences pour la sécurité
3.3 Évaluation des exigences pour les données personnelles
3.4 Plan d’action et analyse des coûts
3.5 Identification du responsable et du conseiller
3.6 Amélioration de la gestion des bugs
3.7 Exemple
4. Conception
4.1 Définition des exigences de conception
4.2 Réduction de la surface d’attaque
4.3 Modélisation des menaces (Threat Modeling)
4.4 Exemple
5. Code
5.1 Revue de code manuelle
5.2 Management des sessions
5.3 Contrôle d’accès
5.4 Validation des entrées
5.5 Encodage des sorties
5.6 Upload de fichiers
5.7 XSS
5.8 CSRF
5.9 Clickjacking
5.10 Enregistrement des événements
5.11 Blacklist des fonctions obsolètes
5.12 Analyse statique du code
5.13 Exemple
6. Test
6.1 Analyse dynamique
6.2 Test de fuzzing
6.3 Test de pénétration (Pentest)
6.4 Exemple
7. Déploiement
7.1 Création d'un plan de réponse aux incidents
7.2 Conduite d'une revue finale
7.3 Exemple
Aller plus loin avec un modèle de maturité
1. Process model vs maturity model
2. BSIMM vs OpenSAMM
2.1 BSIMM
2.2 De OpenSAMM
3. Exemple
3.1 Questionnaire d’évaluation
3.2 Création de scorecard
3.3 Mise en place d’une feuille de route
4. Conclusion
Conclusion
Index
Jérôme THÉMÉE
Jérôme THÉMÉE est enseignant et consultant dans le domaine de la sécurité de l'information, et plus particulièrement dans le domaine de la sécurité applicative. Passionné par la sécurité web et les techniques de hacking depuis plus 18 ans, il partage avec plaisir toutes ses connaissances avec le lecteur pour lui fournir un livre réellement opérationnel sur la sécurité des applications web. Co-fondateur du label ESDacademy (https://esdacademy.eu), son activité consiste principalement au développement de formations, diplômes, certifications en cybersécurité.