Merci d'avoir envoyé votre demande ! Un membre de notre équipe vous contactera sous peu.
Merci d'avoir envoyé votre réservation ! Un membre de notre équipe vous contactera sous peu.
Plan du cours
Jour 1
Sécurité informatique et codage sécurisé
- Nature de la sécurité.
- Termes liés à la sécurité informatique.
- Définition du risque.
- Différents aspects de la sécurité informatique.
- Exigences des différents domaines d'application.
- Sécurité informatique vs. codage sécurisé.
-
Des vulnérabilités aux botnets et à la cybercriminalité.
- Nature des failles de sécurité.
- Raisons des difficultés.
- D'un ordinateur infecté aux ciblées ciblées.
-
Classification des failles de sécurité.
- Taxonomie de Landwehr.
- Les Sept Royaumes Périlleux (The Seven Pernicious Kingdoms).
- OWASP Top Ten 2013.
- Comparaison OWASP Top Ten 2003 - 2013.
Introduction au Cycle de Développement Sécurisé (SDL) de Microsoft®.
- Ordre du jour.
-
Applications sous attaque...
- Évolution de la cybercriminalité.
- Les attaques se concentrent sur les applications.
- La plupart des vulnérabilités se trouvent dans les applications des ISV (Independent Software Vendors) plus petites.
-
Origines du SDL de Microsoft...
- Chronologie de la sécurité chez Microsoft...
- Quelles applications doivent respecter le SDL ?
-
Cycle de Développement Sécurisé de la Sécurité Microsoft (SDL)
- Cycle de Développement Sécurisé de la Sécurité Microsoft (SDL)
- Prérequis avant le SDL : Formation à la sécurité.
- Phase Un : Exigences.
- Phase Deux : Conception.
- Phase Trois : Implémentation.
- Phase Quatre : Vérification.
- Phase Cinq : Lancement – Plan de réponse.
- Phase Cinq : Lancement – Revue de sécurité finale.
- Phase Cinq : Lancement – Archivage.
- Postrequis du SDL : Réponse.
- Conseils sur le processus SDL pour les applications métier (LOB).
- Conseils SDL pour les méthodologies agiles.
- Le développement de logiciels sécurisés nécessite une amélioration des processus.
Principes de conception sécurisée
-
Surface d'attaque.
- Réduction de la surface d'attaque.
- Surface d'attaque – un exemple.
- Analyse de la surface d'attaque.
- Réduction de la surface d'attaque – exemples.
-
Vie privée.
- Vie privée.
- Compréhension des comportements et des préoccupations de l'application.
-
Défense en profondeur.
- Principe fondamental du SDL : Défense en profondeur.
- Défense en profondeur – exemple.
-
Principe du moindre privilège.
- Moindre privilège – exemple.
-
Paramètres de sécurité par défaut.
- Paramètres de sécurité par défaut – exemples.
Principes de mise en œuvre sécurisée
- Ordre du jour.
- Cycle de Développement Sécurisé de la Sécurité Microsoft (SDL).
-
Bases des débordements de tampon (buffer overflow).
- Processeurs Intel 80x86 – registres principaux.
- Mise en page de l'adresse mémoire.
- Mécanisme d'appel de fonction dans C/C++ sur x86.
- Variables locales et pile d'appels (stack frame).
-
Dépassement de pile (stack overflow).
- Dépassement de tampon sur la pile.
- Exercices – introduction.
- Exercice BOFIntro.
- Exercice BOFIntro – déterminer la disposition de la pile.
- Exercice BOFIntro – un exploit simple.
-
Validation des entrées.
- Concepts de validation des entrées.
-
Problèmes entiers.
- Représentation des entiers négatifs.
- Dépassement d'entier.
- Dépassement arithmétique – devinez la sortie !
- Exercice IntOverflow.
- Quelle est la valeur de Math.Abs(int.MinValue) ?
-
Atténuation des problèmes entiers.
- Atténuation des problèmes entiers.
- Éviter le dépassement arithmétique – addition.
- Éviter le dépassement arithmétique – multiplication.
- Détection des débordements avec le mot clé checked en C#.
- Exercice – Utilisation du mot clé checked en C#.
- Exceptions déclenchées par les débordements en C#.
-
Étude de cas – Dépassement d'entier dans .NET.
- Une vulnérabilité réelle de dépassement d'entier.
- Exploitation de la vulnérabilité de dépassement d'entier.
-
Vulnérabilité de traversal de chemin.
- Atténuation de la traversal de chemin.
Jour 2
Principes de mise en œuvre sécurisée
-
Injection.
- Méthodes d'attaque courantes d'injection SQL.
- Injection SQL aveugle et basée sur le temps.
- Méthodes de protection contre l'injection SQL.
- Injection de commandes.
-
Authentification cassée - gestion des mots de passe.
- Exercice – Faiblesse des mots de passe hachés.
- Gestion et stockage des mots de passe.
- Algorithmes de hachage spécialisés pour le stockage des mots de passe.
-
Cross-Site Scripting (XSS).
- Cross-Site Scripting (XSS).
- Injection CSS.
- Exploitation : injection par d'autres balises HTML.
- Prévention XSS.
-
Contrôle d'accès fonctionnel manquant.
- Filtrage des téléchargements de fichiers.
-
Cryptographie pratique.
- Assurer la confidentialité avec la cryptographie symétrique.
- Algorithmes de chiffrement symétrique.
- Chiffrements par blocs – modes de fonctionnement.
- Hachage ou condensé de message.
- Algorithmes de hachage.
- Code d'authentification de message (MAC).
- Assurer l'intégrité et l'authenticité avec une clé symétrique.
- Assurer la confidentialité avec le chiffrement à clé publique.
- Règle générale – possession de la clé privée.
- Erreurs courantes dans la gestion des mots de passe.
- Exercice – Mots de passe codés en dur.
- Conclusion.
Principes de vérification sécurisée
- Tests fonctionnels vs. tests de sécurité.
- Vulnérabilités de sécurité.
- Priorisation.
- Tests de sécurité dans le SDLC.
- Étapes de la planification des tests (analyse des risques).
-
Délimitation du périmètre et collecte d'informations.
- Parties prenantes.
- Actifs.
- La surface d'attaque.
- Objectifs de sécurité pour les tests.
-
Modélisation des menaces.
- Modélisation des menaces.
- Profils d'attaquants.
- Modélisation des menaces basée sur des arbres d'attaque.
- Modélisation des menaces basée sur des scénarios d'abus/détournement.
- Scénarios d'abus/détournement – un exemple simple de boutique en ligne.
- Approche STRIDE par élément pour la modélisation des menaces – MS SDL.
- Identification des objectifs de sécurité.
- Diagrammatisation – exemples d'éléments DFD.
- Diagramme de flux de données – exemple.
- Énumération des menaces – STRIDE de MS SDL et éléments DFD.
- Analyse des risques – classification des menaces.
- Le modèle de classement des menaces/risques DREAD.
-
Techniques et outils de tests de sécurité.
- Approches générales de test.
- Techniques pour les différentes étapes du SDLC.
-
Relecture de code.
- Relecture de code pour la sécurité des logiciels.
- Analyse de la contamination (taint analysis).
- Heuristiques.
-
Analyse statique de code.
- Analyse statique de code.
- Exercice – Utilisation d'outils d'analyse statique de code.
-
Test de l'implémentation.
- Vérification manuelle en temps d'exécution.
- Tests de sécurité manuels vs. automatisés.
- Tests de pénétration.
- Tests de charge.
-
Fuzzing.
- Tests de sécurité automatisés – fuzzing.
- Défis du fuzzing.
-
Scanner de vulnérabilités Web.
- Exercice – Utilisation d'un scanner de vulnérabilités.
-
Vérification et durcissement de l'environnement.
- Système commun de cotation des vulnérabilités – CVSS.
- Scanners de vulnérabilités.
- Bases de données publiques.
-
Étude de cas – Contournement de l'authentification par formulaire.
- Vulnérabilité de terminaison par octet nul.
- La vulnérabilité de contournement de l'authentification par formulaire dans le code.
- Exploitation du contournement de l'authentification par formulaire.
Sources de connaissances
- Sources de codage sécurisé – une trousse de démarrage.
- Bases de données de vulnérabilités.
- Lignes directrices de codage sécurisé .NET sur MSDN.
- Fiches pratiques de codage sécurisé .NET.
- Livres recommandés – .NET et ASP.NET.
14 Heures
Nos clients témoignent (3)
Le partage d'expérience, c'est le savoir-faire et la valeur de l'enseignant.
Carey Fan - Logitech
Formation - C/C++ Secure Coding
Traduction automatique
les connaissances du formateur étaient très élevées - il savait de quoi il parlait et avait les réponses à nos questions
Adam - Fireup.PRO
Formation - Advanced Java Security
Traduction automatique
Le sujet est d'actualité et j'avais besoin de me mettre à jour
Damilano Marco - SIAP s.r.l.
Formation - Secure Developer Java (Inc OWASP)
Traduction automatique