Cursus
Formation JAVA Sécuriser une application
Objectifs
Déterminer les concepts de sécurité logicielle et les différentes types d'attaques.
Employer les API Java en lien avec la sécurité.
Apprécier la validation des données entrantes pour protéger contre les attaques courantes.
Pratiquer la sécurisation des données stockées dans les bases de données.
Protéger les fichiers de configuration et les fichiers de log du système.
Implémenter l'architecture Oauth 2.0 pour l'authentification au niveau du navigateur.
Mettre en œuvre des techniques de chiffrement pour sécuriser les échanges de données entre les parties.
Pré-requis
Participants
Programme de formation
CONCEPTS DE SÉCURITÉ LOGICIELLE
-
Outils de détection de faille de sécurité
-
Identifier et comprendre les vulnérabilités de vos applications
-
Attaques "brute-force"
-
Attaques par "déni de services"
- DOS : Denial Of Service
-
Attaques par analyse de trames IP
-
Attaques par "Injection SQL"
-
Attaques "XSS"
- Cross Site Scripting
-
Attaques "CSRF"
- Cross Site Request Forgery
-
Autres types d'attaques
-
Pourquoi sécuriser une application ?
-
Travaux pratiques
- Tests de ces différents types de problèmes sur une application mal développée et utilisation des outils de détection de faille de sécurité
VALIDATION DES DONNÉES ENTRANTES
-
Protection contre les entrées d'utilisateurs nuisibles
-
Utilisation d'expressions régulières
-
Détecter et contrer les "injections SQL"
-
Détecter et contrer les attaques "XSS"
-
Détecter et contrer les attaques "CSRF"
-
Détecter et contrer les attaques "brute-force"
-
Sécuriser les données en Cookie
-
Protection contre les menaces de déni de service
-
Ne pas présenter à l'utilisateur les détails des erreurs techniques
-
Travaux pratiques
- Modification du code de l'application initialement proposée pour interdire ces différents types d’attaques
SÉCURISER LES DONNÉES STOCKÉES EN BASE
-
Authentification et Autorisation du SGBDr
- Système de Gestion de Base de Données relationnelle
-
Rôles serveur et rôles de base de données
-
Propriété et séparation utilisateur-schéma
-
Chiffrement de données dans la base de données
-
Travaux pratiques
- Stocker de manière sécurisée les mots de passe en base de données
SÉCURISER LE SYSTÈME DE FICHIER
-
Crypter les données sensibles dans les fichiers de configuration
-
Détecter les tentatives de remplacement des fichiers sources de l'application
-
Signer les fichiers
-
Protéger les informations des fichiers de log
OAUTH 2.0 ET L'AUTHENTIFICATION AU NIVEAU DU NAVIGATEUR
-
Présentation de l'architecture Oauth 2.0
-
Utilisation de l'API Oauth 2.0
-
Travaux pratiques
- Mise en oeuvre de Oauth
SÉCURISER LES ÉCHANGES DE DONNÉES
-
Modèle de chiffrement
-
Conception orientée flux
-
Configuration du chiffrement
-
Choix d'un algorithme
-
Mettre en oeuvre le chiffrage symétrique
-
Mettre en oeuvre le chiffrage asymétrique
-
Travaux pratiques
- Réaliser une communication sécurisée à l'aide d’un certificat