Objectifs de formation
A l'issue de cette formation, vous serez capable de :
- Ecrire un code participant à la sécurité d'une application Web
- Expliquer les vulnérabilités affectant les applications Web
- Créer des tests visant à éprouver la sécurité des applications Web, notamment en JavaScript
- Développer des applications sécurisées en utilisant JavaScript et ses frameworks
- Formuler des exigences de sécurité aux autres corps de métiers.
Prérequis
Avoir des connaissances en développement Web et en langage JavaScript.
Public concerné
Pentesters et développeurs.
Programme
Jour 1
Introduction
- Panorama de la sécurité Web
- Les normes et lois
- Les référentiels
- Les principaux groupes de réflexion et de travail sur la sécurité des applications Web
- L'évolution des langages Web, des technologies et des usages du Web
- L'apport du Full Stack, de DevOps et DevSecOps
Protocole HTTP avec JavaScript
- Rappels des fondamentaux sur les protocoles HTTP et HTTP/2
- La pile applicative
- Les méthodes
- Les codes erreurs
- Les principaux champs
- Le fonctionnement d'AJAX
- L'architecture des applications Web (monolithe, n-tiers, SOA / ROA...)
- Le cas des API
- Contrôler la permissivité des interfaces Web
Les outils connexes
- Faire des tests et des validations
- Les devtools des navigateurs
- La capture via proxy
- La capture via tcpdump ou Wireshark
- Les tests avec Postman
- Les "vulnerability scanners" (Burp Suite, Acunetix, les outils spécialisés CMS, les sites Web d'analyse)
Exemples de travaux pratiques (à titre indicatif)
- Capture d'une requête GET et d'une requête POST vers Google
- Simulation d'une recherche Google avec Postman
- Analyse de code statique et dynamique avec OWASP ZAP, SonarQube, RIPS ou Acunetix
L'OWASP
- Vulnérabilités de sécurité courantes dans les applications Web JavaScript (XSS, CSRF, injections SQL...)
- Présentation de l'OWASP et de ses projets
- Les Security Cheat Sheets
- Le Top 10
- Le Top 25 du SANS
- Les Google Dorks
- Les guides de l'OWASP (Test Guide, Dev Guide...)
- L'ASVS (Application Security Verification Standard)
- Les grandes familles d'attaques
- Broken Access Control
- Cryptographic Failures
- Injection
- Insecure Design
- Security Misconfiguration
- Vulnerable and Outdated Components
- Identification and Authentication Failures
- Software and Data Integrity Failures
- Security Logging and Monitoring Failures
- Server-Side Request Forgery
Jour 2
Sécurité du client
- Protéger les clients des attaques Cross-Site Scripting (XSS)
- Les protections apportées par Angular JS, NodeJS et React contre les XSS
- Protéger les clients des attaques Cross-Site Request Forgery (CSRF)
- Les protections apportées par Angular JS, NodeJS et React contre les CSRF
- Le cas jQuery
- La gestion de l'origine
- Filtrer la saisie utilisateur
- Limiter l'expérience utilisateur
- Surveiller le parcours de l'utilisateur
- L'obfuscation et le chiffrement du code
- La signature du code
- La gestion de la sécurité des bibliothèques tierces
- Utilisation sécurisée des fonctionnalités JavaScript sensibles (local storage, sessionStorage...)
- Le "pruning"
Exemples de travaux pratiques (à titre indicatif)
- Démonstration des attaques XSS et CSRF
- Sécurisation d'une interface HTML avec JavaScript
- Création d'un contrôle et d'un suivi utilisateur
Gestion des sessions et des accès
- Les bonnes pratiques pour l'authentification et l'autorisation des utilisateurs
- La sécurité des communications (HTTPS, CORS...)
- Les méthodes d'authentification Web
- L'apport du JavaScript sur l'authentification
- Exploitation de la méthode HTTP basic
- "Forms Authentication Module"
- "Integrated Windows Authentication"
- La méthode Application_Authenticate Request
- Le contrôle des rôles et permissions
- L'utilisation de l'URL Authorization Module
- Les "security attributes"
- La protection contre les attaques de type Clickjacking, DOM XSS...
Exemples de travaux pratiques (à titre indicatif)
- Création d'une fonction d'authentification type challenging
- Création d'un dispositif de suivi d'autorisation et de suivi d'activité utilisateur
Le contenu de ce programme peut faire l'objet d'adaptation selon les niveaux, prérequis et besoins des apprenants.
Modalités, méthodes et moyens pédagogiques
Formation délivrée en présentiel ou distanciel* (blended-learning, e-learning, classe virtuelle, présentiel à distance).
Le formateur alterne entre méthode** démonstrative, interrogative et active (via des travaux pratiques et/ou des mises en situation).
Variables suivant les formations, les moyens pédagogiques mis en oeuvre sont :
- Ordinateurs Mac ou PC (sauf pour certains cours de l'offre Management), connexion internet fibre, tableau blanc ou paperboard, vidéoprojecteur ou écran tactile interactif (pour le distanciel)
- Environnements de formation installés sur les postes de travail ou en ligne
- Supports de cours et exercices
En cas de formation intra sur site externe à M2i, le client s'assure et s'engage également à avoir toutes les ressources matérielles pédagogiques nécessaires (équipements informatiques...) au bon déroulement de l'action de formation visée conformément aux prérequis indiqués dans le programme de formation communiqué.
* nous consulter pour la faisabilité en distanciel
** ratio variable selon le cours suivi
Modalités d’évaluation des acquis
- En cours de formation, par des études de cas ou des travaux pratiques
- Et, en fin de formation, par un questionnaire d'auto-évaluation
Accessibilité de la formation
Le groupe M2i s'engage pour faciliter l'accessibilité de ses formations. Les détails de l'accueil des personnes en situation de handicap sont consultables sur la page Accueil et Handicap.
Modalités et délais d’accès à la formation
Les formations M2i sont disponibles selon les modalités proposées sur la page programme. Les inscriptions sont possibles jusqu'à 48 heures ouvrées avant le début de la formation. Dans le cas d'une formation financée par le CPF, ce délai est porté à 11 jours ouvrés.