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é des TI et codage sécurisé
- Nature de la sécurité
- Termes liés à la sécurité des TI
- Définition du risque
- Différents aspects de la sécurité des TI
- Exigences des différents domaines d'application
- Sécurité des TI 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 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 Cycle de développement sécurisé (SDL) de Microsoft®
- Programme
-
Applications sous attaque...
- Évolution de la cybercriminalité
- Les attaques se concentrent sur les applications
- La majorité des vulnérabilités se trouvent dans les petites applications des éditeurs indépendants de logiciels (ISV)
-
Origines du SDL de Microsoft...
- Chronologie de la sécurité chez Microsoft...
- Quelles applications sont tenues de suivre le SDL ?
-
Cycle de développement sécurisé (SDL) de Microsoft
- Cycle de développement sécurisé (SDL) de Microsoft
- Exigences pré-SDL : Formation à la sécurité
- Phase un : Exigences
- Phase deux : Conception
- Phase trois : Implémentation
- Phase quatre : Vérification
- Phase cinq : Publication – Plan de réponse
- Phase cinq : Publication – Examen final de la sécurité
- Phase cinq : Publication – Archivage
- Exigence post-SDL : Réponse
- Conseils de processus SDL pour les applications métier (LOB)
- Conseils SDL pour les méthodologies agiles
- 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 – 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 liés aux applications
-
Défense en profondeur
- Principe fondamental de la SDL : Défense en profondeur
- Défense en profondeur – exemple
-
Principe du privilège minimum
- Privilège minimum – exemple
-
Valeurs par défaut sécurisées
- Valeurs par défaut sécurisées – exemples
Principes de mise en œuvre sécurisée
- Programme
- Cycle de développement sécurisé (SDL) de Microsoft
-
Fondamentaux des dépassements de tampon
- Processeurs Intel 80x86 – registres principaux
- Disposition de l'adresse mémoire
- Mécanisme d'appel de fonctions en C/C++ sur x86
- Variables locales et pile d'appels
-
Dépassement de pile
- Dépassement de tampon sur la pile
- Présentation des exercices
- Exercice BOFIntro
- Exercice BOFIntro – détermination de la disposition de la pile
- Exercice BOFIntro – un exploit simple
-
Validation des entrées
- Concepts de validation des entrées
-
Problèmes liés aux 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 liés aux entiers
- Atténuation des problèmes liés aux entiers
- Éviter les dépassements arithmétiques – addition
- Éviter les dépassements arithmétiques – multiplication
- Détection des dépassements avec le mot clé checked en C#
- Exercice – Utilisation du mot clé checked en C#
- Exceptions déclenchées par les dépassements 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 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 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 défaillante – 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 au stockage des mots de passe
-
Scripting intersite (XSS)
- Scripting intersite (XSS)
- Injection CSS
- Exploitation : injection via d'autres balises HTML
- Prévention de l'XSS
-
Contrôle d'accès au niveau des fonctions manquant
- Filtrage des téléchargements de fichiers
-
Cryptographie pratique
- Assurance de confidentialité avec la cryptographie symétrique
- Algorithmes de chiffrement symétrique
- Chiffrement par blocs – modes de fonctionnement
- Hachage ou résumé de message
- Algorithmes de hachage
- Code d'authentification de message (MAC)
- Assurance de l'intégrité et de l'authenticité avec une clé symétrique
- Assurance de confidentialité avec le chiffrement à clé publique
- Règle de base – détention 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 cycle de vie du développement logiciel (SDLC)
- Étapes de la planification des tests (analyse des risques)
-
Définition de la portée 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 les arbres d'attaque
- Modélisation des menaces basée sur les cas d'utilisation abusive/abus
- Cas d'utilisation abusive/abus – exemple simple d'une boutique en ligne
- Approche STRIDE par élément pour la modélisation des menaces – MS SDL
- Identification des objectifs de sécurité
- Schématisation – exemples d'éléments de DFD (Diagramme de flux de données)
- 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 test de sécurité
- Approches générales de test
- Techniques pour les différentes étapes du SDLC
-
Revue de code
- Revue de code pour la sécurité des logiciels
- Analyse de l'origine des données (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 cours d'exécution
- Tests de sécurité manuels vs automatisés
- Tests de pénétration
- Tests de charge (Stress tests)
-
Fuzzing
- Tests de sécurité automatisés – fuzzing
- Défis du fuzzing
-
Analyseurs de vulnérabilité Web
- Exercice – Utilisation d'un analyseur de vulnérabilité
-
Vérification et durcissement de l'environnement
- Système commun de notation des vulnérabilités – CVSS
- Analyseurs de vulnérabilité
- Bases de données publiques
-
Étude de cas – Contournement de l'authentification par formulaires
- Vulnérabilité de terminaison par octet NULL
- La vulnérabilité de contournement de l'authentification par formulaires dans le code
- Exploitation du contournement de l'authentification par formulaires
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 de triches pour le 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