loader image

Sécurité des frameworks JavaScript

Code stage

SEC-JAVASCRIPT

Durée

14 heures | 2 jours

Z

Certification

non

Objectifs pédagogiques

  • 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 les frameworks JavaScript
  • Formuler des exigences de sécurité aux autres corps de métiers

Niveau requis

Avoir des connaissances en développement d'application 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
  • 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 tools des navigateurs
  • La capture via proxy
  • La capture via tcpdump ou Wireshark
  • Les tests avec Postman
  • Les « vulnerability scanners » (Burp Suite, Accunetix, les outils spécialisés CMS, les sites Web d’analyse)
  • L’OWASP

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
  • 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

  • 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 »

Le contenu de ce programme peut faire l’objet d’adaptation selon les niveaux, prérequis et besoins des apprenants.