Plan du cours

Jour 1

  • Sécurité IT et codage sécurisé
    • Nature de la sécurité
    • Termes liés à la sécurité IT
    • Définition du risque
    • Différents aspects de la sécurité IT
    • Exigences des différents domaines d'application
    • Sécurité IT vs. codage sécurisé
    • Des vulnérabilités aux botnets et cybercriminalité
      • Nature des failles de sécurité
      • Raisons de la difficulté
      • D'une machine infectée aux attaques ciblées
    • Classification des failles de sécurité
      • Taxonomie de Landwehr
      • Les Sept Royaumes Pernicieux
      • OWASP Top Ten 2013
      • OWASP Comparaison du Top Ten 2003 – 2013
  • Introduction au Microsoft® Security Development Lifecycle (SDL)
    • Agenda
    • Applications sous attaque...
      • Évolution de la cybercriminalité
      • Les attaques se concentrent sur les applications
      • La plupart des vulnérabilités sont dans les petits logiciels ISV
    • Origines du Microsoft SDL...
      • Cadre chronologique de sécurité à Microsoft...
      • Quelles applications sont obligées de suivre le SDL?
    • Microsoft Security Development Lifecycle (SDL)
      • Microsoft Security Development Lifecycle (SDL)
      • Exigences pré-SDL : formation en sécurité
      • Phase Un : exigences
      • Phase Deux : conception
      • Phase Trois : mise en œuvre
      • Phase Quatre : vérification
      • Phase Cinq : sortie – plan de réponse
      • Phase Cinq : sortie – révision finale de sécurité
      • Phase Cinq : sortie – archivage
      • Exigence post-SDL : réponse
      • Orientations du processus SDL pour les applications LOB
      • Orientations SDL pour Agile méthodologies
      • Le développement logiciel sécurisé 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 – exemple
      • Analyse de la surface d'attaque
      • Réduction de la surface d'attaque – exemples
    • Intimité
      • Intimité
      • Définir les comportements et préoccupations des applications
    • Défense en profondeur
      • Principe central du SDL : Défense en Profondeur
      • Défense en profondeur – exemple
    • Principe de privilèges minimums
      • Privilèges minimums – exemple
    • Valeurs par défaut sécurisées
      • Valeurs par défaut sécurisées – exemples
  • Principes d'implémentation sécurisée
    • Agenda
    • Microsoft Security Development Lifecycle (SDL)
    • Bases des débordements de tampon
      • Intel 80x86 Processors – principaux registres
      • Disposition de l'adresse mémoire
      • Mécanisme d'appel de fonction en C/C++ sur x86
      • Variables locales et cadre de pile
      • Débordement de pile
        • Débordement de tampon sur la pile
        • Exercices – introduction
        • Exercice BOFIntro
        • Exercice BOFIntro – déterminer le cadre de la pile
        • Exercice BOFIntro – un simple exploit
    • Vérification des entrées
      • Concepts de vérification des entrées
      • Problèmes entiers
        • Représentation des entiers négatifs
        • Débordement d'entier
        • Dépassement arithmétique – devine la sortie!
        • Exercice IntOverflow
        • Quelle est la valeur de Math.Abs(int.MinValue)?
      • Mitigation des problèmes entiers
        • Mitigation des problèmes entiers
        • Éviter le dépassement arithmétique – addition
        • Éviter le dépassement arithmétique – multiplication
        • Détecter l'overflow avec le mot-clé checked en C#
        • Exercice – Utilisation du mot-clé checked en C#
        • Exceptions déclenchées par les dépassements dans C#
      • Cas pratique – Débordement d'entier en .NET
        • Vulnérabilité de débordement d'entier en situation réelle
        • Exploitation de la vulnérabilité de débordement d'entier
      • Vulnérabilité de navigation de chemin
        • Mitigation des navigations de chemin

Jour 2

  • Principes d'implémentation sécurisée
    • Injections
      • Méthodes typiques SQL de l'injection
      • Injection aveugle et basée sur le temps SQL
      • Méthodes de protection contre l'injection SQL
      • Injection de commande
    • Authentification compromise – gestion des mots de passe
      • Exercice – Faiblesse des mots de passe hachés
      • Gestion et stockage des mots de passe
      • Algorithmes de hachage spécifiques pour le stockage des mots de passe
    • Cross-Site Scripting (XSS)
      • Cross-Site Scripting (XSS)
      • Injection CSS
      • Mise en œuvre : injection par l'intermédiaire d'autres balises HTML
      • Prévention XSS
    • Contrôle de niveau de fonctionnalité manquant
      • Filtrage des téléchargements de fichiers
    • Cryptographie pratique
      • Fournir la confidentialité avec la cryptographie symétrique
      • Algorithmes de chiffrement symétriques
      • Cryptogrammes par blocs – modes d'opération
      • Hachage ou résumé du message
      • Algorithmes de hachage
      • Mot de passe authentification (MAC)
      • Fournir l'intégrité et l'authenticité avec une clé symétrique
      • Fournir la confidentialité par le chiffrement à clé publique
      • Règle empirique – possession de la clé privée
      • Erreurs typiques en 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 du plan de test (analyse des risques)
    • Définition et collecte d'informations
      • Bénéficiaires
      • Actifs
      • La surface d'attaque
      • Objectifs de sécurité pour les tests
    • Mise en modèle des menaces
      • Mise en modèle des menaces
      • Profil du pirate informatique
      • Mise en modèle des menaces basée sur les arbres d'attaques
      • Mise en modèle des menaces basée sur les mauvais usages/abuses de cas
      • Cas d'utilisation incorrects/cas d'abus – un exemple simple d'une boutique Web
      • Approche STRIDE par élément pour la modélisation des menaces – SDL MS
      • Identification des objectifs de sécurité
      • Diagrammes – exemples d'éléments DFD
      • Diagramme de flux de données – exemple
      • Numerotation des menaces – éléments STRIDE et DFD du SDL MS
      • Analyse des risques – classification des menaces
      • Modèle de notation de menace/risque DREAD
    • Techniques et outils de tests de sécurité
      • Approches générales de test
      • Techniques pour différentes étapes du SDLC
    • Vérification de code
      • Vérification de code pour la sécurité logicielle
      • Analyse des taches
      • Héuristiques
    • Analyse statique de code
      • Analyse statique du code
      • Analyse statique du code
      • Exercice – Utilisation d'outils d'analyse statique de code
    • Vérification de l'implémentation
      • Vérification manuelle en cours d'exécution
      • Tests de sécurité manuels vs. automatisés
      • Test de pénétration
      • Tests de stress
    • Fuzzing
      • Tests automatiques de sécurité - fuzzing
      • Défis du fuzzing
    • Balayeurs de vulnérabilités Web
      • Exercice – Utilisation d'un balayeur de vulnérabilité
    • Vérification et durcissement de l'environnement
      • Système d'évaluation des vulnérabilités communes – CVSS
      • Balayeurs de vulnérabilités
      • Base de données publiques
    • Cas pratique - Contournement de l'authentification par formulaires
      • Vulnérabilité du terminaison NULL
      • Vulnérabilité de contournement de l'authentification par formulaire dans le code
      • Exploitation du contournement de l'authentification par formulaire
  • Sources d'information
    • Sources sur le codage sécurisé – un kit de départ
    • Bases de vulnérabilités
    • Lignes directrices .NET pour le codage sécurisé sur MSDN
    • Feuilles de référence .NET pour le codage sécurisé
    • Livres recommandés – .NET et ASP.NET
 14 Heures

Nombre de participants


Prix ​​par Participant

Nos clients témoignent (5)

Cours à venir

Catégories Similaires