Méthodes conseillées pour assurer la sécurité pour C++
Cette rubrique contient des informations sur les outils et les applications pratiques de sécurité recommandés. L'utilisation de ces ressources et de ces outils n'immunise pas les applications contre les attaques, mais diminue le risque d'attaques.
Fonctionnalités de sécurité de Visual C++
Cette section traite des fonctionnalités de sécurité intégrées au compilateur et à l'éditeur de liens Visual C++.
- /GS (Vérification de la sécurité de la mémoire tampon)
-
Cette option du compilateur (activée par défaut) indique au compilateur d'injecter le code de détection du débordement dans les fonctions qui courent un risque d'être exploitées. Lorsqu'un débordement est détecté, l'exécution s'interrompt.
- /SAFESEH (L'image est dotée de gestionnaires d'exceptions sécurisés)
-
Cette option de l'éditeur de liens (qui n'est pas activée par défaut) indique à l'éditeur de liens d'inclure dans l'image de sortie une table qui contient l'adresse de chaque gestionnaire d'exceptions. Pendant l'exécution, le système d'exploitation utilise cette table pour veiller à ce que seuls les gestionnaires d'exceptions légitimes soient exécutés. Cela contribue à empêcher l'exécution de gestionnaires d'exceptions introduits par une attaque pirate à l'exécution.
- /analyze (Analyse du code d'entreprise)
-
Cette option du compilateur (qui n'est pas activée par défaut) active l'analyse du code, qui rapporte alors les problèmes de sécurité potentiels, tels que le dépassement de la mémoire tampon, la mémoire non initialisée, le déréférencement de pointeur null et les fuites de mémoire. Consultez Vue d'ensemble de l'analyse de code C/C++ pour plus d'informations.
Sécurité CRT améliorée
Pour Visual C++ 2005, la bibliothèque Runtime C (CRT) a été élargie afin de comprendre des versions sécurisées des fonctions posant des problèmes de sécurité. (La fonction strcpy de copie de chaîne non contrôlée, par exemple.) Les versions plus anciennes et moins sûres de ces fonctions sont maintenant désapprouvées et leur utilisation entraîne donc des avertissements à la compilation. Les programmeurs sont fortement incités à utiliser les versions sécurisées de ces fonctions CRT plutôt que de supprimer ces avertissements de compilation. Consultez Security Enhancements in the CRT pour plus d'informations.
Itérateurs vérifiés
Avec les itérateurs vérifiés, les utilisateurs des classes de conteneur de bibliothèque C++ standard sont prévenus des tentatives d'accès aux éléments situés hors des limites d'un conteneur. Consultez Checked Iterators pour plus d'informations.
Analyse du code managé
L'outil d'analyse du code managé, également connu sous le nom de FxCop, est un outil qui vérifie la conformité des assemblys aux instructions de conception de Microsoft .NET Framework. FxCop analyse le code et les métadonnées de chaque assembly et recherche des défaillances dans les domaines suivants :
-
Conception des bibliothèques
-
Localisation
-
Conventions d'attribution d'un nom
-
Performances
-
Sécurité
L'outil d'analyse du code managé est inclus dans Visual Studio Team System et peut également être téléchargé à l'adresse http://www.gotdotnet.com/team/fxcop/.
Windows Application Verifier
Disponible dans le cadre de l'Application Compatibility Toolkit, l'Application Verifier (AppVerifier) est un outil qui peut aider les développeurs à identifier la compatibilité, la stabilité et les problèmes de sécurité potentiels des applications.
La fonction de l'AppVerifier est de surveiller l'usage que fait une application du système d'exploitation au cours de son exécution, notamment le système de fichiers, le Registre, la mémoire et l'API. L'outil fournit ensuite une aide à la correction des problèmes qu'il découvre au niveau du code source.
Le vérificateur permet de :
-
Tester les erreurs potentielles de compatibilité des applications, provoquées par des erreurs de programmation courantes.
-
Rechercher dans une application les problèmes liés à la mémoire.
-
Déterminer la conformité d'une application avec diverses exigences des programmes d'attribution des logos « Conçu pour Windows XP » ou « Certifié pour Windows Server™ 2003 ».
-
Identifier les problèmes de sécurité potentiels d'une application.
Windows Application Verifier est disponible à l'adresse http://www.microsoft.com/windows/appcompatibility/appverifier.mspx
Caractéristiques de sécurité du .NET Framework
Cette section offre une vue d'ensemble de deux fonctionnalités de sécurité liées du .NET Framework.
- Sécurité d'accès du code
-
Décrit le système de sécurité du .NET Framework et la façon dont il s'interface avec le code de l'application.
- Configuration de la stratégie de sécurité
-
Donne des indications et des outils pour affiner les stratégies de sécurité du .NET Framework.
Comptes utilisateur Windows
L'utilisation de comptes utilisateur Windows appartenant au groupe Administrateurs expose les développeurs et, par extension, les utilisateurs, à des problèmes de sécurité. Consultez Exécution en tant que membre du groupe Utilisateurs pour plus d'informations.