Partager via


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, en particulier lors du débogage à distance. Un débogueur malveillant pourrait infliger des dommages généralisés à l’ordinateur en cours de débogage.

Toutefois, de nombreux développeurs ne se rendent pas compte que la menace de sécurité peut également circuler dans la direction opposée. Il est possible que le code malveillant dans le processus de débogage mette en péril la sécurité de l’ordinateur de débogage : il existe un certain nombre d’attaques de sécurité qui doivent être protégées.

Meilleures pratiques en matière de sécurité

Il existe une relation d’approbation implicite entre le code que vous déboguez et le débogueur. Si vous êtes prêt à déboguer quelque chose, vous devez également être prêt à l’exécuter. En fin de compte, vous devez être en mesure de faire confiance à ce que vous déboguez. Si vous ne pouvez pas lui faire confiance, vous ne devez pas le déboguer, ou vous devez le déboguer à partir d’un ordinateur que vous pouvez risquer, et dans un environnement isolé.

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

Sécurité du débogage managé

Voici quelques recommandations générales qui s'appliquent à tous les débogages gérés.

Sécurité du débogage à distance

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

Le Moniteur de débogage à distance Visual Studio (msvsmon.exe) est utilisé dans le débogage à distance et il existe plusieurs recommandations de sécurité pour la configurer. La méthode recommandée pour configurer le mode d’authentification est l’authentification Windows, car aucun mode d’authentification n’est non sécurisé.

Boîte de dialogue d’erreur

Lorsque vous utilisez le mode d’authentification Windows, sachez que l’octroi d’une autorisation utilisateur non approuvée pour se connecter à msvsmon est dangereux, car l’utilisateur dispose de toutes vos autorisations sur l’ordinateur hébergeant msvsmon.

Ne déboguez pas un processus inconnu sur une machine distante : il existe des attaques potentielles susceptibles d’affecter l’ordinateur exécutant le débogueur, ou qui peuvent compromettre msvsmon. Si vous devez absolument déboguer un processus inconnu, essayez de déboguer localement et utilisez un pare-feu pour conserver les menaces potentielles localisées.

Pour plus d’informations sur la configuration de msvsmon, consultez Configurer le débogueur distant.

Sécurité du débogage des services web

Il est plus sûr de déboguer localement, mais étant donné que Visual Studio n’est probablement pas installé sur le serveur web, le débogage local peut ne pas être pratique. En règle générale, le débogage des services Web est effectué à distance, sauf pendant le développement, de sorte que les recommandations en matière de sécurité de débogage à distance s’appliquent également au débogage des services Web. Voici quelques bonnes pratiques supplémentaires. Pour plus d’informations, consultez Débogage des services web XML.

  • N’activez pas le débogage sur un serveur web compromis.

  • Assurez-vous que le serveur web est sécurisé avant de le déboguer. Si vous ne savez pas qu’il est sécurisé, ne le déboguez pas.

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

Composants externes

N’oubliez pas l’état d’approbation des composants externes avec lesquels votre programme interagit, en particulier si vous n’avez pas écrit le code. Tenez également compte des composants que Visual Studio ou le débogueur peuvent utiliser.

Symboles et code source

Deux outils Visual Studio qui nécessitent une réflexion sur la sécurité sont les suivants :