Impossible de donner un avis, je viens à peine de le recevoir mais "Avis vérifié" demande à réagir rapidement... Pour ne pas pénaliser ENI je mets donc 5 étoiles en me basant sur d'autres lectures que j'ai eu, mais ce serait bien de demander un avis plus tard... Je ne suis pas une machine à dévorer 4 bouquins de 500 pages, qui plus est techniques, en une semaine.
AnonymeSécurité des applications web Stratégies offensives et défensives
1 avis
Cet ouvrage explore en profondeur la sécurité des applications web, offrant une expertise complète aux développeurs, professionnels de la cybersécurité ou passionnés du numérique qui désirent comprendre et maîtriser les techniques d’attaque et de défense. À travers des études de cas, des exemples, des conseils, des astuces et des exercices pratiques, ce livre offre une expérience d’apprentissage immersive et enrichissante et dresse un panorama complet des vulnérabilités web les plus courantes...
Consulter des extraits du livre en ligne
Aperçu du livre papier
- Niveau Expert
- Nombre de pages 588 pages
- Parution juin 2024
- Niveau Expert
- Parution juin 2024
Cet ouvrage explore en profondeur la sécurité des applications web, offrant une expertise complète aux développeurs, professionnels de la cybersécurité ou passionnés du numérique qui désirent comprendre et maîtriser les techniques d’attaque et de défense. À travers des études de cas, des exemples, des conseils, des astuces et des exercices pratiques, ce livre offre une expérience d’apprentissage immersive et enrichissante et dresse un panorama complet des vulnérabilités web les plus courantes.
L’auteur commence par analyser l’importance de la sécurité des applications web et de leur écosystème avant de détailler un ensemble de concepts, d’outils et de ressources pour caractériser les vulnérabilités et prioriser leur correction. Pour transmettre au lecteur des bases solides, le fonctionnement des applications web, des technologies et des protocoles associés est également détaillé.
Dans la suite du livre, les principales vulnérabilités web sont examinées en détail et illustrées par des exemples pour mieux appréhender leur fonctionnement. À la fin de chaque étude de vulnérabilité, une série d’exercices axés sur les aspects offensifs (découverte et exploitation) et défensifs (application des bonnes pratiques de développement) permet d’apprendre à la corriger.
La protection d’une application web va bien au-delà de la simple écriture de code ; la configuration des équipements joue un rôle crucial. Cet aspect est exploré dans des chapitres dédiés aux en-têtes HTTP de sécurité, à la cryptographie et au fonctionnement de TLS, essentiels notamment pour HTTPS.
L’ouvrage se conclut sur la mise en place de processus visant à améliorer la sécurité des applications au sein des chaînes d’intégration continue et par une revue des prestations possibles en matière de sécurité des applications web.
L’auteur commence par analyser l’importance de la sécurité des applications web et de leur écosystème avant de détailler un ensemble de concepts, d’outils et de ressources pour caractériser les vulnérabilités et prioriser leur correction. Pour transmettre au lecteur des bases solides, le fonctionnement des applications web, des technologies et des protocoles associés est également détaillé.
Dans la suite du livre, les principales vulnérabilités web sont examinées en détail et illustrées par des exemples pour mieux appréhender leur fonctionnement. À la fin de chaque étude de vulnérabilité, une série d’exercices axés sur les aspects offensifs (découverte et exploitation) et défensifs (application des bonnes pratiques de développement) permet d’apprendre à la corriger.
La protection d’une application web va bien au-delà de la simple écriture de code ; la configuration des équipements joue un rôle crucial. Cet aspect est exploré dans des chapitres dédiés aux en-têtes HTTP de sécurité, à la cryptographie et au fonctionnement de TLS, essentiels notamment pour HTTPS.
L’ouvrage se conclut sur la mise en place de processus visant à améliorer la sécurité des applications au sein des chaînes d’intégration continue et par une revue des prestations possibles en matière de sécurité des applications web.
Téléchargements
Avant-propos
- Introduction
Introduction à la sécurité applicative
- Introduction
- La nécessité de la sécurité applicative
- 1. Des applications web de plus en plus omniprésentes
- 2. Des applications de plus en plus complexes
- 3. Des attaques de plus en plus fréquentes
- Les acteurs autour de la sécurité web
- 1. L’ANSSI
- 2. La CNIL
- 3. Le Clusif
- 4. Le MITRE
- a. Framework ATT&CK
- b. La base de connaissance CVE
- c. La liste de catégories CWE
- 5. Le FIRST
- a. Le système d’évaluation CVSS
- b. L’EPSS
- 6. Le NIST
- 7. Le CISA
- 8. L’OWASP
- a. ASVS
- b. OWASP Cheat Sheet Series
- c. OWASP Top Ten
- d. OWASP Web Security Testing Guide (WSTG)
Définition du concept de vulnérabilité
- Qu'est-ce qu'une vulnérabilité ?
- 1. La triade disponibilité, intégrité etconfidentialité (DIC)
- 2. Traçabilité, authenticité etnon-répudiation
- Référentiels de vulnérabilités
- 1. CVE
- 2. Les dépendances logicielles
- a. GHSA (GitHub Security Advisory)
- b. Journaux de modifications et tickets
- c. Open Source Vulnerabilities (OSV)
- 1. CVSS (Common Vulnerability Scoring System)
- a. Version 3.1
- b. Version 4.0
- c. Une première priorisation
- d. Scores CVSS multiples
Fonctionnement d'une application web
- Introduction
- Le modèle client-serveur
- 1. Le navigateur web
- 2. Le serveur web
- Le principe d'hypertexte
- Le langage HTML
- 1. Les balises HTML
- 2. Les attributs HTML
- 3. Structure d’une page
- Le protocole HTTP
- 1. Anatomie d’une requête HTTP
- a. Les méthodes HTTP
- b. Les en-têtes de requête HTTP
- c. Exemple d’une requête HTTP
- 1. Anatomie d’une requête HTTP
- 2. Anatomie d’une réponse HTTP
- a. Les codes de réponse HTTP
- b. Les en-têtes de réponse HTTP
- 1. L’onglet Elements
- a. L’affichage du code source
- b. L’inspection
L'évolution du Web
- Introduction
- Les langages clients
- 1. Le CSS
- 2. Le JavaScript
- a. Les instructions
- b. Les commentaires
- c. Les variables
- d. Les structures de contrôle
- e. Les fonctions
- f. La programmation orientée objet (POO)
- g. Interaction avec le DOM
- h. Les requêtes XHR
- i. Intégration du JavaScript
- j. Du JavaScript dans la console de développement
- 1. Le PHP
- a. Les instructions
- b. Les commentaires
- c. Les variables
- d. Les structures de contrôle
- e. Les fonctions
- f. La programmation orientée objet (POO)
- g. Transmettre des informations au serveur
- 1. Qu’est-ce qu’un cookie ?
- a. Côté server
- b. Côté client
Mise en place du laboratoire
- Installation de la plateforme
- 1. Installation de VirtualBox
- 2. Installation de la machine virtuelle
- a. Installation du laboratoire d’exercices
- b. Installation de Visual Studio Code
- c. Sauvegarde de l’état de la machine
- 1. Tester la connectivité entre les machines
- 2. Installation du proxy Burp Suite
- 3. Utilisation de Burp Suite
- 4. Beeceptor
- 1. Comment aborder les exercices pratiques
- 2. Apporter des corrections au code source des exercices
Les principales vulnérabilités web
- Introduction
- Insecure Direct Object Reference
- 1. Présentation
- 2. Protection
- 3. Un peu de pratique
- a. Numeric Query Parameter
- b. Hidden field
- c. Complex identifiers (UUID)
- d. Side-Channel IDOR
- e. Path Traversal
- 1. Présentation
- a. Principe de fonctionnement
- b. Découverte et exploitation
- c. Classifications
- a. Requêtes préparées
- b. Principe du moindre privilège
- c. Validation des données
- a. Authentication bypass
- b. Union-based
- c. Error-based
- d. Stack queries
- e. Second order
- f. Boolean-based
- g. Time-based
- h. Arbitrary file read
- i. Remote code execution
- 1. Présentation
- a. Injection directe
- b. Injection à l’aveugle
- a. Éviter l’utilisation des commandes système
- b. Échapper et assainir les entréesnon fiables
- c. Principe du moindre privilège
- a. Shell argument injection
- b. Blind injection
- 1. Présentation
- a. La méthode eval()
- b. Inclusion de fichiers
- c. Les wrappers PHP
- a. Remote File Inclusion
- b. Local File Inclusion
- 1. Présentation
- a. Les possibilités d’une XSS
- b. XSS réfléchie
- c. XSS stockée
- d. XSS basée sur le DOM
- e. Les autres formes d’XSS
- a. Validation des données
- b. Encodage en sortie
- c. Assainissement HTML
- d. Défense en profondeur
- a. XSS réfléchie
- b. XSS stockée
- c. XSS basée sur le DOM
- 1. Présentation et protection
- a. Sécurisation des communications
- b. Énumération des identifiants
- c. Attaques automatisées
- d. Gestion et stockage des mots de passe
- e. Jeton de session dans l’URL
- f. Fixation de session
- g. Déconnexion des sessions
- h. Temporisation des sessions
- i. Robustesse des identifiants de session
- a. User enumeration
- b. Session fixation
- c. Weak session ID
- 1. Présentation
- 2. Protection
- 3. Un peu de pratique
- a. Horizontal access control
- b. Vertical access control
- 1. Présentation
- 2. Protection
- 3. Un peu de pratique
- 1. Présentation
- a. Same-Origin Policy
- b. Attribut SameSite
- c. Login CSRF
- d. Self-XSS
- e. Contournement de la politique de même origine(SOP)
- a. Synchronizer Token Pattern
- b. Double Submit Cookie Pattern
- c. L’attribut SameSite
- d. Éviter les requêtes GET
- e. Interactions utilisateur
- f. En-tête personnalisé
- a. POST request
- b. POST request with XSS
Autres vulnérabilités applicatives
- Introduction
- Vulnérabilités logiques
- 1. Présentation
- 2. Protection
- 3. Un peu de pratique
- a. Star Rating
- b. Total Amount
- 1. Présentation
- 2. Protection
- 3. Un peu de pratique
- a. Object manipulation
- b. Object injection
- 1. Présentation
- 2. Protection
- a. Attribut SameSite
- b. En-tête X-Frame-Options et CSP
- c. Framebusting
- 1. Présentation
- 2. Protection
- 3. Un peu de pratique
- 1. Présentation
- a. Détection d’une SSRF
- b. Accès local
- c. Accès réseau interne (pivot)
- d. Accès aux métadonnées desplateformes cloud
- e. Proxy
- f. Énumération de services
- 1. Présentation
- a. Espace de noms
- b. Document Type Definition (DTD)
- c. Entités internes et externes
- d. Lecture de fichiers arbitraires
- e. Déni de service
- f. Server-Side Request Forgery
- g. Exécution de code à distance
- h. Injection à l’aveugle (Blind XXE)
- i. XInclude
- a. Arbitrary file read
- b. Blind XXE
- 1. Présentation
- 2. Protection
- 3. Un peu de pratique
- 1. Présentation
- 2. Protection
- a. Fonctionnement
- b. Inconvénients
- 1. Présentation
- a. Comptes par défaut
- b. Fonctionnalités ou services non utilisés
- c. Mauvaise gestion des erreurs
- d. Vulnérabilités non corrigées
Les principaux en-têtes HTTP de sécurité
- Introduction
- Vérifier la présence d’un en-tête HTTP
- Mise en place d'un en-tête HTTP de sécurité
- 1. Serveur web Apache
- 2. Serveur web Nginx
- HTTP Strict Transport Security Header
- 1. HTTP contre HTTPS
- 2. Redirection des utilisateurs vers HTTPS
- 3. HTTP Strict Transport Security Header
- X-Frame-Options
- X-Content-Type-Options
- 1. Le type MIME
- 2. L’en-tête HTTP Content-Type
- 3. La détection de type MIME (MIME sniffing)
- 4. MIME Confusion Attack
- 5. X-Content-Type-Options
- Referrer-Policy
- X-XSS-Protection
- Content Security Policy
- Cross-Origin Resource Sharing
- 1. Fonctionnement
- a. Requêtes simples
- b. Preflight Request
- c. Requête avec authentification
- d. Autres en-têtes
- 1. Fonctionnement
- 2. Contournement
- a. En-tête Access-Control-Allow-Origin réfléchidepuis l’en-tête Origin
- b. Origin à null
Introduction à la cryptographie
- L'encodage
- 1. L’encodage URL
- 2. L’encodage base64
- Le hachage
- Le chiffrement
- 1. Chiffrement symétrique
- a. Chiffrement par flot
- b. Chiffrement par bloc
- 1. Chiffrement symétrique
- 2. Chiffrement asymétrique
- 3. Chiffrement hybride
Fonctionnement de TLS
- Historique de TLS
- Certificat TLS
- 1. Principe de fonctionnement
- 2. Le standard X.509
- a. Version 1
- b. Version 2
- c. Version 3
- d. Chaîne de certificats
- e. Liste de révocation (Certificate RevocationList - CRL)
- f. Certificat monodomaine, wildcard et multidomaine
- g. Certificats DV, OV, EV et autosignés
- h. Sécurité cryptographique
- 1. TLS 1.2
- 2. TLS 1.3
Introduction au DevSecOps
- Rappels sur le DevOps
- Cycle de vie du développement logiciel
- 1. Les étapes du développement logiciel
- a. Planification
- b. Analyse
- c. Conception
- d. Implémentation
- e. Tests & intégration
- f. Maintenance
- 1. Les étapes du développement logiciel
- 2. Les avantages du SDLC
- 3. Les modèles de SDLC
- 1. L’intégration continue
- 2. La livraison continue
- 3. Le déploiement continu
- 1. Le DevSecOps
- 2. Le cycle de vie du développement sécurisé
- a. Principe de shiftleft
- b. Modélisation des menaces (Threat modeling)
- c. Revue de conception sécurisée
- d. Outillage de la chaîne d’intégrationet de déploiement continu
- a. Les gestionnaires de dépendances
- b. Trivy, le SCA polyvalent
- c. Les librairies JavaScript côté front-end
- d. Le Software Bill of Materials (SBOM)
- a. Zed Attack Proxy
- b. Dastardly
- a. Revue de code manuelle
- b. Test d’intrusion
- c. Security Champion
- d. Formation et sensibilisation
Les prestations en entreprise
- L'audit d'architecture
- L'audit de sécurité de code source
- L'audit de configuration
- Le test d'intrusion
- Le programme de bug bounty
- La certification PASSI
Malween LE GOFFIC
Passionné par la sécurité informatique, en particulier celle des applications web, Malween LE GOFFIC a accumulé plus de 10 ans d'expérience dans ce domaine. Au cours de diverses missions professionnelles, il a exercé des rôles tant du côté offensif, notamment en réalisant des tests d'intrusion, que défensif, en effectuant des audits de code source, en développant et en intégrant des outils de sécurité, ainsi qu'en dispensant des formations à des étudiants et des professionnels du développement. C'est son désir de partager sa passion et son expérience ainsi que l'ensemble des connaissances acquises au fil des années qui l'a motivé à écrire ce livre.
En savoir plus