Accueil / C# – Sécurité applicative avec .NET
C# – Sécurité applicative avec .NET
Durée : 3 jours
Tarif Inter : 1700 €
Tarif sur mesure : Nous consulter
Référence : 4CSN
Programme
Public & Pré-requis
Organisation
Présentation
Cette formation sur la sécurité des applications C# et Web vous apprendra les méthodes de prévention des problèmes de sécurité courants dans les applications C#. Vous irez au-delà des problèmes de programmation de base, en explorant les pièges du code sécurisé du langage C# et du framework .NET.
Objectifs
- Comprendre les problèmes de sécurité des applications web
- Analyser les dix éléments principaux de l’OWASP
- Placer la sécurité des applications web dans le contexte du C#
- Gérer les problèmes de sécurité dans votre code C#
- Identifier les vulnérabilités et leurs conséquences
- Apprendre les meilleures pratiques de sécurité en C#
Programme
-
Les bases de la cybersécurité
- Qu’est-ce que la sécurité ?
- Menaces et risques
- Types de menaces de cybersécurité
- Conséquences des logiciels non sécurisés
- Les contraintes et le marché
- Le côté obscur
-
Le Top 10 de l’OWASP (Partie I)
- Top 10 de l’OWASP – 2017
- Injection
- Principes d’injection
- Attaques par injection
- Injection SQL
- Injection de code
- Les meilleures pratiques en matière d’injection
- Authentification frauduleuse
- Les bases de l’authentification
- Faiblesses d’une authentification
- L’usurpation d’identité sur le Web
- Étude de cas
- Gestion des mots de passe
- Exposition aux données sensibles
- Exposition des informations
- Exposition par extraction de données et agrégation
- Étude de cas
-
Le Top 10 de l’OWASP (Partie II)
- Entités externes XML (XXE)
- DTD et les entités
- Expansion des entités
- Attaque d’une entité externe (XXE)
- Contrôle d’accès interrompu
- Les bases du contrôle d’accès
- Absence de restriction de l’accès aux URL
- Le problème du Député Confus
- Téléchargement de fichiers
- Téléchargement de fichiers sans restriction
- Bonnes pratiques
- Exercice – Téléchargement de fichiers sans restriction
- Mauvaise configuration de la sécurité
- Principes de configuration
- Gestion de la configuration
- Scripting intersites (XSS)
- Bases de la rédaction de scripts intersites
- Types de scripts intersites
- Meilleures pratiques en matière de protection des XSS
- Principes de protection – Evasion
- API de protection XSS
- Requête de validation en ASP.NET
- Autres techniques de protection des XSS
- Exercice – Correction de XSS non persistantes (reflected)
- Exercice – Correction de XSS persistantes (stored)
- Couches de protection supplémentaires
- Désérialisation non sécurisée
- Les défis de la sérialisation et de la désérialisation
- Désérialiser les flux non fiables
- Désérialiser : les meilleures pratiques
- Programmation axée sur la propriété (POP)
- Utilisation de composants présentant des vulnérabilités connues
- Utilisation d’éléments vulnérables
- Import de fonctionnalités non fiables
- Import de JavaScript
- Exercice – Import de JavaScript
- Étude de cas – La violation des données de British Airways
- Entités externes XML (XXE)
-
Insuffisance du logging et de la surveillance
- Principes de logging et de surveillance
-
La sécurité des applications web au-delà du Top 10
- Sécurité côté client
- Tabnabbing
- Frame sandboxing
-
Faiblesses communes en matière de sécurité des logiciels
- Validation des entrées
- Problèmes de traitement des nombres entiers
- Autres problèmes numériques
- Réflexion dangereuse
- Un code natif peu sûr
- Caractéristiques de sécurité
- Sécurité de la plate-forme .NET
- Erreurs
- Principes de traitement des erreurs et des exceptions
- Traitement des erreurs
- Traitement des exceptions
- Cycles d’initialisation des classes
- Labo – Cycles d’initialisation
- Ressource non diffusée
- Qualité du code
- Les pièges de la programmation orientée objet
- Validation des entrées
-
Conclusion
- Principes de codage sûrs
- Principes d’une programmation robuste par Matt Bishop
- Principes de conception sécurisée de Saltzer et Schröder
- Et maintenant ?
- Autres sources et lectures
- Ressources .NET et C#
- Principes de codage sûrs