Identifier et décrire les enjeux de la sécurité
Identifier et décrire les failles de sécurité et les différents types d’attaques des applications Web
Sécuriser les accès à une base de données
Valider les saisies utilisateurs des applications Web
Identifier et mettre en oeuvres les mécanismes d’authentification et de gestion des autorisations
Protéger le code des applications
Définir et exécuter des plans de tests
Sécuriser et protéger l’intégrité des données échangées sur les réseaux
- Développement
- Java
Formation Sécuriser les applications Web .NET et Java
Objectifs
Prérequis
Cursus Java :
– Avoir suivi les formations « Les fondamentaux de la programmation Java » ET Développement d’applications Web Java EE », ou posséder les connaissances et compétences équivalentes.
Cursus .NET :
– Avoir suivi les formations « Les fondamentaux du développement .NET avec le langage C# sous Visual Studio » et « Développer des applications Web ASP.NET Core MVC en C# sous Visual Studio », ou posséder les connaissances et compétences équivalentes..
Public
Concepteurs / Développeurs, Chefs de projets, Architectes Techniques.
A distance / Classe virtuelle
Notre formateur
Présentiel
Les Modules
de formation
L’importance de la sécurité
Contre qui et quoi se défendre ?
Les failles de sécurité classiques
Comment une attaque survient ?
Les challenges de la sécurité
– Identification : les différentes méthodes
– Autorisation et permissions d’accès
– Confidentialité : les mécanismes de cryptage
Les patterns de programmation
La gestion des mots de passe
– Fonctionnalités de cryptage disponibles dans les plateformes de développement
Les frameworks
– La prise en charge des contre-mesures dans les librairies et frameworks applicatifs
Travaux pratiques :
– Présentation de librairies et frameworks et de leurs fonctionnalités natives pour la sécurisation des applications dans les différentes plateformes de développement
Scénarii d’authentification vers une base de données
Les chaînes de connexion et pools de connexions
Crypter les fichiers de configuration
Les attaques par SQL Injection
– Différentes techniques pour s’en prémunir
Travaux pratiques :
– Mise en œuvre d’une application se connectant aux données et mise en œuvre des conditions d’injection SQL puis correction de la faille de sécurité
Le projet OWASP (Open Web Application Security Project)
– Présentation du projet
– Analyse des préconisations et bonnes pratiques du référentiel OWASP
Les différentes attaques et vulnérabilités des applications et sites Web
– CSRF, XSS, SQL Injection, Remote Code Injection
Présentation des attaques et des contre-mesures associées
– La théorie des techniques de contre-mesure
– L’apport des frameworks de développement Web pour la sécurité
Travaux pratiques :
– Importation d’un projet d’application Web
– Identification des failles dans l’application
– Définition de la stratégie de sécurisation
– Observation des requêtes GET et POST, mise en place d’un sniffer de trames réseaux
Identifier les sources de données
Attaques par les cookies, HTTP et JavaScript Injection
Les contrôles de validation de données
Gestion des erreurs
Travaux pratiques :
– Attaque par injection de JavaScript
– Attaque par soumission de formulaire non sécurisé côté serveur
– Attaque d’un site Web et provocation d’un déni de service
Les différents modes d’authentification
– Basic, Digest, Client-Cert, …
Scénarii d’authentification dans une application Intranet/Internet
Authentification des applications clientes JavaScript
– Principes et contraintes pour les applications distantes
– Les mécanismes d’authentification : OAuth2, JSON Web Token, …
Autorisations : les rôles de sécurité
– Définition et déclaration
– Principes de mappage avec l’existant
Stratégie de sécurité des différents types d’applications
Paramétrage d’un conteneur Web/d’applications pour la sécurité
Paramétrage d’un référentiel d’authentification
Utilisation d’un connecteur HTTPS
Travaux pratiques :
– Sécuriser un site Web
– Déclaration d’une stratégie de restriction d’accès aux URLs dans une application Web
– Configuration d’un serveur pour l’authentification
– Configurer l’accès HTTPS d’un serveur
Introduction à la cryptographie
Cryptage, hachage et signature
Cryptage symétrique et asymétrique
Vérifier l’intégrité des données avec le hachage
Communication sécurisée avec SSL
Les API de cryptage et de protection de données
Travaux pratiques :
– Mise en œuvre d’un cryptage de données sensibles (mot de passe, …)
– Mise en œuvre d’une politique de vérification de l’intégrité des données basées sur le hachage
Présentation
Sécurité d’accès au code dans une application
Bases fondamentales de la sécurité d’accès au code
Vérifications de sécurité
Décompilation, protection et obfuscation de code
Le cas des plateformes Java et .NET
– Stratégie d’accès au code au niveau du Runtime
Travaux pratiques :
– Création d’une application et mise en place des politiques de sécurité
– Présentation de la décompilation de byte-code
– Présentation d’une solution de brouillage de code
Scénarii de tests
Créer un plan de test de sécurité
Trouver les interfaces à tester
Tester l’authentification, les autorisations
Tester les applications We