Logo Sécurité Web

Formation Sécurité Web

Cette formation permettra aux apprenants, à travers l'étude de la théorie mais aussi d'exercices pratiques, de savoir comment détecter des failles de sécurité dans leurs applications Web, comment mettre en place des protections efficaces contre les attaques courantes, et comment adopter des pratiques de développement sécurisé.

Objectifs pédagogiques / Compétences visées

  • Connaître les failles de sécurité courantes
  • Se mettre à jour au sujet de failles plus obscures mais tout aussi redoutables
  • Apprendre comment mettre en place des protections efficaces
  • Connaître les bonnes pratiques de développement sécurisé
  • Se familiariser avec les outils de sécurité qui comptent
  • Savoir mettre en place une politique de divulgation responsable

Pré-requis

  • Expérience en développement Web
  • Une certaine expérience avec SQL

Public

  • Développeurs
  • Chefs de projets

Programme

Jour 1

Introduction

  • Mythes et réalités
  • Architecture d'une application Web typique : client, serveur, proxies
  • Le top 10 2021 des vulnérabilités selon OWASP
  • CWE et CVEs
  • Profils des attaquants : attaques externes et internes
  • Les étapes d'une attaque
  • Arsenal des attaquants

La place de la sécurité dans le cycle de développement

  • Malentendus récurrents
  • Biais envers la production
  • Gouvernance, politique de sécurité
  • L'affaire de tous et toutes
  • Législation

Activités internes liées à sécurité

  • (In)compatibilité avec les approches dites "Agile" ?
  • Le mouvement DevSecOps
  • Inventaire et shadow IT
  • Tests : unitaires, intégration, bout en bout
  • Revues de code
  • Analyse statique
  • Analyse dynamique
  • Outils de sécurité compatible avec le CI/CD

La sécurité vue de l'extérieur

  • Audits de sécurité
  • Politique de divulgation responsable
  • Programme de prime au bug (bug bounty)

Rappels de cryptographie

  • La crypto en deux mots
  • Chiffrement
  • Hachage
  • Signature numérique
  • Algorithmes modernes et caduques

Un tour d'horizon des protocoles et langages importants

  • Adresses IP et DNS
  • Subdomain takeover : mécanismes et risques
  • Rappels sur le protocole HTTP
  • HTTPS
  • TLS
  • HTML/CSS/JavaScript

Fuite d'informations sensibles

  • Identifiants numériques séquentiels
  • Messages d'erreurs verbeux
  • Capture de données sensibles dans les logs
  • Secrets stockés côté client
  • Dépôts publics de développeurs
  • Historique Git

Jour 2

Authentication & vulnerabilities

  • Méthodes d'authentification
  • Énumération d'utilisateurs
  • Single Sign On (SSO) : OAuth 2, OpenID Connect, SAML
  • Contournement du rate limiting
  • Questions de sécurité
  • Authentification à facteurs multiples

Mots de passe

  • Politique de robustesse
  • Mots de passe ayant fuité, haveibeenpwned
  • Gestionnaire de mots de passe
  • Salage et hachage
  • Stockage
  • Réinitilisation de mot de passe

Gestion de sessions

  • Cookies
  • Fixation de sessions
  • Vol/détournement de sessions
  • Cross-site request forgery
  • Clickjacking
  • Cross-site script inclusion
  • Contre-mesures
  • JSON Web Tokens (JWTs)

Autorisation / contrôle d'accès

  • Distinction entre authentification et autorisation
  • Rôles and permissions
  • Insecure direct object reference (IDOR)
  • Missing function-level access control

Contrôle des entrées utilisateur

  • Côté client, côté serveur, ou les deux ?
  • Cross-site scripting (XSS)
  • Les différentes formes de XSS
  • Défenses contre le XSS
  • Autres formes d'injection
  • Déni de service dû à l'utilisation d'expression régulières inefficaces (ReDoS)

URLs

  • Anatomie d'une URL
  • Des disparités inquiétantes entre parseurs
  • Open redirects
  • Server-side request forgery
  • Bonnes pratiques

Jour 3

Cross-Origin Resource Sharing (CORS)

  • Les concepts d'origine Web et de site
  • Same-origin policy
  • Les alternatives à CORS
  • Cross-Origin Resource Sharing (CORS)
  • Bonnes et mauvaises configurations de CORS et risques associés
  • Private Network Access

Bases de données

  • Principe du moindre privilège
  • Injection SQL
  • L'outil sqlmap
  • Injection NoSQL
  • Transactions et situations de compétitions

Décodage

  • Mass assignment
  • XML : attaques de type XXE et billion laughs
  • Attaques de désérialisation (Java, Python, PHP)

Fichiers

  • Chargement (upload)
  • Path traversal
  • Local-File Inclusion
  • Remote-File Inclusion

Risques liés aux dépendances

  • Frameworks et bibliothèques
  • Téléchargement sécurisé des dépendances
  • Politique de mise à jour
  • Software Component Analysis (SCA)
  • Cas d'étude : log4shell
  • Attaques de la supply chain et dependency confusion
  • Vérification d'intégrité des dépendances
  • Content-Management Systems (CMS)

Moyens pédagogiques et techniques

  • Formateur validé par nos équipes techniques et pédagogiques
  • Salle de formation informatisée
  • Support de cours numérique

Suivi et appréciation des résultats

  • Questions orales ou écrites (QCM)
  • Exercices pratiques
  • Formulaires d'évaluation
Dernière modification le 20/05/2022