Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez aussi afficher la version anglaise dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte.
Traduction
Anglais
Cette documentation est archivée et n’est pas conservée.

Sécurité du débogueur

La possibilité de déboguer un autre processus vous donne des pouvoirs extrêmement larges que vous n'auriez pas autrement, surtout lors du débogage à distance. Un débogueur malveillant pourrait infliger des dommages étendus sur l'ordinateur qui est débogué. C'est pour cela qu'il existe des restrictions quant à qui peut effectuer le débogage. Pour plus d'informations, consultez Autorisations de débogage distant.

Toutefois, beaucoup de développeurs ne se rendent pas compte que la menace sur la sécurité peut également se dérouler dans le sens opposé. Il est possible pour le code malveillant dans le processus du programme débogué de compromettre la sécurité de l'ordinateur de débogage : il existe plusieurs exploits de sécurité dont il faut se garder.

Il existe une relation de confiance implicite entre le code que vous déboguez et le débogueur. Si vous êtes disposé à déboguer quelque chose, vous devez également être disposé à l'exécuter. Au final, vous devez être en mesure d'avoir confiance en ce que vous déboguez. Si vous n'avez pas cette confiance, vous ne devez pas déboguer, ou vous devez déboguer le code à partir d'un ordinateur dont vous pouvez vous permettre de compromettre la sécurité, et dans un environnement isolé.

Pour réduire la surface d'attaque potentielle, le débogage doit être désactivé sur les ordinateurs de production. Pour la même raison, le débogage ne doit jamais être activé indéfiniment.

Sécurité de débogage managé

Voici quelques recommandations générales à appliquer à tout débogage managé.

Pour plus d'informations, consultez Débogage du code managé.

Sécurité du débogage à distance |

Le débogage local est généralement plus sûr que le débogage à distance. Le débogage distant augmente la zone de surface totale qui peut être sondée.

Visual Studio Remote Debugging Monitor (msvsmon.exe) est utilisé dans le débogage distant, et il existe plusieurs recommandations de sécurité pour le configurer. La façon par défaut de configurer le mode d'authentification est d'utiliser l'authentification Windows, parce que le mode Aucune Authentication n'est pas sécurisé. Lors de l'utilisation du mode Authentification Windows, sachez que le fait d'accorder une autorisation utilisateur non fiable pour se connecter à msvsmon est une opération risquée, comme l'indique un message d'avertissement.

Ne déboguez pas un processus inconnu sur un ordinateur distant : il existe des exploits potentiels qui peuvent affecter l'ordinateur exécutant le débogueur, ou cela peut compromettre msvsmon.exe, le Visual Studio Remote Debugging Monitor. Si vous devez absolument déboguer un processus inconnu, essayez de le déboguer localement et utilisez un pare-feu pour que toutes les menaces potentielles restent localisées.

Pour plus d'informations, consultez Programme d'installation du débogage distant.

Sécurité de débogage Web Services

Il est plus sûr de déboguer localement, mais puisque Visual Studio n'est probablement pas installé sur le serveur Web, le débogage local peut ne pas être pratique. En général, le débogage de services Web s'effectue à distance, sauf pendant le développement, ce qui fait que les recommandations pour la sécurité de débogage distant s'appliquent également au débogage de services Web. Voici quelques meilleures pratiques supplémentaires. Pour plus d'informations, consultez Debugging XML Web Services.

  • N'activez pas le débogage sur un serveur Web qui a été compromis.

  • Assurez-vous que le serveur Web est sécurisé avant de le déboguer. Si vous n'êtes pas sûr qu'il le soit, ne le déboguez pas.

  • Soyez particulièrement prudent si vous déboguez un service Web qui est exposé sur Internet.

Composants externes

Déterminez l'état de confiance des composants externes avec lesquels votre programme interagit, surtout si vous n'avez pas écrit le code. Déterminez également les composants que Visual Studio ou le débogueur peut utiliser.

Symboles et code source

Deux outils Visual Studio qui requièrent une réflexion à propos de la sécurité sont les éléments suivants :

Afficher: