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
  • Aspects différents de la sécurité informatique
  • Exigences des différentes zones d'application
  • Sécurité informatique vs. codage sécurisé
  • Des vulnérabilités aux botnets et au cybercrime
    • Nature des failles de sécurité
    • Raisons de la difficulté
    • D'un ordinateur infecté aux attaques ciblées
  • Classification des failles de sécurité
    • Taxonomie de Landwehr
    • Les Sept Royaumes Pernicieux
    • OWASP Top Ten 2013
    • Comparaison OWASP Top Ten 2003 – 2013

Introduction au Microsoft® Security Development Lifecycle (SDL)

  • Programme
  • Les applications sous attaque...
    • Évolution du cybercrime
    • Les attaques se concentrent sur les applications
    • La plupart des vulnérabilités se trouvent dans des applications d'ISV plus petites
  • Origines du Microsoft SDL...
    • Chronologie de la sécurité chez Microsoft...
    • Quelles applications doivent suivre l'SDL ?
  • Microsoft Security Development Lifecycle (SDL)
    • Microsoft Security Development Lifecycle (SDL)
    • Exigences pré-SLD : Formation à la sécurité
    • Phase Un : Exigences
    • Phase Deux : Conception
    • Phase Trois : Mise en œuvre
    • Phase Quatre : Vérification
    • Phase Cinq : Publication – Plan de réponse
    • Phase Cinq : Publication – Revue finale de sécurité
    • Phase Cinq : Publication – Archivage
    • Exigence post-SLD : Réponse
    • Guide de processus SDL pour les applications LOB
    • Guide SDL pour les méthodologies agiles
    • Le développement sécurisé des logiciels nécessite une amélioration du 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
  • Confidentialité
    • Confidentialité
    • Compréhension des comportements et préoccupations de l'application
  • Défense en profondeur
    • Principe fondamental de SDL : Défense en profondeur
    • Défense en profondeur – exemple
  • Principe du privilège minimal
    • Privilège minimal – exemple
  • Défauts de sécurité par défaut
    • Défauts de sécurité par défaut – exemples

Principes de mise en œuvre sécurisée

  • Programme
  • Microsoft Security Development Lifecycle (SDL)
  • Bases des débordements de tampon
    • Processeurs Intel 80x86 – registres principaux
    • La disposition des adresses mémoire
    • Le mécanisme d'appel de fonction en C/C++ sur x86
    • Les variables locales et le cadre de pile
    • Débordement de pile
      • Débordement de tampon sur la pile
      • Exercices – introduction
      • Exercice BOFIntro
      • Exercice BOFIntro – déterminer la disposition de la pile
      • Exercice BOFIntro – une exploitation simple
  • Validation des entrées
    • Concepts de validation des entrées
    • Problèmes d'entiers
      • Représentation des entiers négatifs
      • Débordement d'entier
      • Débordement arithmétique – devinez le résultat !
      • Exercice IntOverflow
      • Quelle est la valeur de Math.Abs(int.MinValue) ?
    • Atténuation des problèmes d'entiers
      • Atténuation des problèmes d'entiers
      • Éviter le débordement arithmétique – addition
      • Éviter le débordement arithmétique – multiplication
      • Détection du débordement 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ébordement d'entier dans .NET
      • Une vulnérabilité réelle de débordement d'entier
      • Exploitation de la vulnérabilité de débordement d'entier
    • Vulnérabilité de traversée de chemin
      • Atténuation de la traversée de chemin

Jour 2

Principes de mise en œuvre sécurisée

  • Injection
    • Méthodes d'attaque par injection SQL typiques
    • Injection SQL aveugle et basée sur le temps
    • Méthodes de protection contre l'injection SQL
    • Injection de commande
  • Authentification défectueuse - 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 du XSS
  • Manque de contrôle d'accès au niveau fonctionnel
    • Filtrage des téléchargements de fichiers
  • Cryptographie pratique
    • Fournir la confidentialité avec la cryptographie symétrique
    • Algorithmes de chiffrement symétriques
    • Chiffrements par blocs – modes d'opération
    • Hachage ou message digest
    • Algorithmes de hachage
    • Code d'authentification de message (MAC)
    • Fournir l'intégrité et l'authenticité avec une clé symétrique
    • Fournir 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 l'SDLC
  • Étapes de la planification des tests (analyse des risques)
  • Définition et recueil 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 les arbres d'attaque
    • Modélisation des menaces basée sur les cas de mauvaise utilisation/abus
    • Cas de mauvaise utilisation/abus – un exemple simple d'un magasin Web
    • Modélisation des menaces par élément STRIDE – MS SDL
    • Identification des objectifs de sécurité
    • Diagrammation – exemples d'éléments DFD
    • Diagramme de flux de données – exemple
    • Énumération des menaces – STRIDE et éléments DFD de l'SDL MS
    • Analyse des risques – classification des menaces
    • Modèle d'évaluation des menaces/risques DREAD
  • Techniques et outils de test sécurisé
    • Approches générales de test
    • Techniques pour différentes étapes de l'SDLC
  • Revue du code
    • Revue du code pour la sécurité des logiciels
    • Analyse de pollution
    • Heuristiques
  • Analyse statique du code
    • Analyse statique du code
    • Exercice – Utilisation d'outils d'analyse statique du code
  • Test de la mise en œuvre
    • Vérification manuelle à l'exécution
    • Tests manuels vs. tests automatisés de sécurité
    • Test d'intrusion
    • Tests sous contrainte
  • Brouillage
    • Test de sécurité automatisé - brouillage
    • Défis du brouillage
  • Outils de détection des vulnérabilités Web
    • Exercice – Utilisation d'un outil de détection des vulnérabilités
  • Vérification et sécurisation de l'environnement
    • Système d'évaluation des vulnérabilités courantes – CVSS
    • Outils de détection des vulnérabilités
    • Bases de données publiques
  • Étude de cas – Contournement de l'authentification par formulaire
    • Vulnérabilité de fin de chaîne nulle
    • 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é – un kit de démarrage
  • Bases de données des vulnérabilités
  • Directives de codage sécurisé .NET sur MSDN
  • Feuilles de triche pour le codage sécurisé .NET
  • 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