Prenez contact avec nous

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

Nombre de participants


Prix par participant

Nos clients témoignent (3)

Cours à venir

Catégories Similaires