Sécurité d’une application .Net
- Définition de la sécurité du code.
- Types de menaces lors du codage .Net.
- Patterns proposés par Microsoft.
- Outils de sécurité du framework .Net.
Cryptage, certificats et signature
- Modèles et moteurs de cryptographie.
- Hachage, empreinte et signature.
- Cryptage symétrique/asymétrique.
- API de cryptage Windows.
- Mécanismes des signatures et des certificats.
Travaux pratiques
Crypter/décrypter un message par hachage.
Sécurité de l’exécution du code .Net
- Sécuriser l’accès au code via les rôles (RBS).
- Sécuriser le code lors de l’élévation de privilèges.
- Sécuriser les accès critiques et transparents au code (CAS du .net 4).
- Environnements de stockage isolés.
Travaux pratiques
Mettre en œuvre une élévation de privilèges et les mécanismes de sécurité liés à cette opération.
Sécurité du code C#
- Problématique des exceptions.
- Dangers et gestion des partages d’états en multithreading.
- Sécuriser le code d’interopérabilité.
- L’accès à la falsification de l'exécution des programmes via System.Reflection.
Travaux pratiques
Sécuriser des exemples de code C# par rapport aux problématiques présentées.
Sécurité des assemblies
- Protection contre la falsification du code source.
- Cryptage des informations de configuration.
- Protection du contenu des assemblies.
- Obfuscation du code et outils de l’écosystème.
- Déploiement vers le GAC.
Travaux pratiques
Mettre en œuvre la signature des DLL. Utiliser les techniques d'obfuscation du code.