Considérations sur la sécurité du visualiseurVisualizer Security Considerations

L'écriture d'un visualiseur implique d'éventuelles menaces pour la sécurité.Writing a Visualizer involves possible security threats. Aucune attaque connue n'a été répertoriée concernant ces menaces potentielles, mais les développeurs doivent en être informés et prendre les précautions de sécurité appropriées, tel qu'indiqué ici, pour se protéger contre de futures attaques.No known exploit currently exists for these potential threats, but developers should be aware of them and take appropriate security precautions, as described here, to guard against future exploits.

Les visualiseurs de débogueur requièrent des privilèges plus importants que ceux octroyés par une application de confiance partielle.Debugger visualizers require greater privileges than are allowed by a partial trust application. Les visualiseurs ne se chargent pas lorsque vous êtes arrêté dans du code à confiance partielle.Visualizers will not load when you are stopped in code with partial trust. Pour déboguer à l'aide d'un visualiseur, vous devez exécuter le code avec la confiance totale.To debug using a visualizer, you must run the code with full trust.

Composant de programme débogué potentiellement malveillantPossible Malicious Debuggee Component

Les visualiseurs sont composés d'au moins deux classes : une du côté débogueur et l'autre du côté du programme débogué.Visualizers consist of at least two classes: one on the debugger side and one on the debuggee side. Les visualiseurs sont souvent déployés dans des assemblys séparés placés dans des répertoires spéciaux, mais ils peuvent également être chargés hors de l’élément débogué.Visualizers are often deployed in separate assemblies put in special directories, but they can also be loaded out of the debuggee. Dans ce cas, le débogueur sort le code du programme débogué et l'exécute à l'intérieur du débogueur avec un niveau de confiance totale.When this occurs, the debugger takes code out of the debuggee and runs it inside the debugger with full trust.

L'exécution du code côté programme débogué avec la confiance totale devient problématique lorsque le programme débogué n'est pas d'un niveau de confiance suffisant.Running debuggee-side code with full trust becomes problematic when the debuggee is not fully trusted. Si un visualiseur essaie de charger un assembly de confiance partielle à partir de l’élément débogué dans le débogueur, Visual Studio arrête le visualiseur.If a visualizer tries to load a partial trust assembly from the debuggee into the debugger, Visual Studio will terminate the visualizer.

Toutefois, il existe encore une vulnérabilité mineure.However, a minor vulnerability still exists. Le côté élément débogué peut s’associer à un côté débogueur qui a été chargé à partir d’une autre source (pas l’élément débogué).The debuggee-side can associate with a debugger side that was loaded from another source (not the debuggee). Le côté programme débogué peut alors indiquer au côté débogueur de confiance qu'il doit exécuter des actions de sa part.The debuggee side can then tell that trusted debugger side to perform actions on its behalf. Si la classe côté débogueur de confiance expose un mécanisme "supprimer ce fichier", par exemple, l’élément débogué de confiance partielle pourrait appeler ce mécanisme lorsque l’utilisateur appelle son visualiseur.If the trusted debugger-side class exposes a "delete this file" mechanism, for example, the partial-trust debuggee could invoke that mechanism when the user invokes its visualizer.

Afin d'atténuer cette vulnérabilité, faites attention aux interfaces exposées par votre visualiseur.To mitigate this vulnerability, be mindful of the interfaces exposed by your visualizer.

Voir aussiSee Also

Architecture du visualiseur Visualizer Architecture
Comment : écrire un visualiseur How to: Write a Visualizer
Créer des visualiseurs personnalisés Create Custom Visualizers
Affichage des données dans le débogueurViewing Data in the Debugger