Partager via


Considérations relatives à la sécurité du visualiseur

L’écriture d’un visualiseur implique des menaces de sécurité possibles. Aucun exploit connu n’existe actuellement pour ces menaces potentielles, mais les développeurs doivent être conscients de ces menaces et prendre des précautions de sécurité appropriées, comme décrit ici, pour se protéger contre les futures attaques.

Les visualiseurs de débogueur nécessitent des privilèges plus élevés que ceux autorisés par une application à confiance partielle. Les visualiseurs ne se chargent pas lorsque vous êtes arrêté dans le code avec une confiance partielle. Pour déboguer à l’aide d’un visualiseur, vous devez exécuter le code avec une confiance totale.

Note

La sécurité de l’accès au code (CAS) a été déconseillée dans toutes les versions de .NET Framework et .NET. Les versions récentes de .NET n’honorent pas les annotations CAS et produisent des erreurs si les API liées à CAS sont utilisées. Les développeurs doivent rechercher d’autres moyens d’accomplir des tâches de sécurité.

Composant de débogage malveillant possible

Les visualiseurs se composent d’au moins deux classes : l’une côté débogueur et l’autre côté débogage. Les visualiseurs sont souvent déployés dans des assemblys distincts placés dans des répertoires spéciaux, mais ils peuvent également être chargés hors du débogage. Lorsque cela se produit, le débogueur extrait le code du débogueur et l’exécute à l’intérieur du débogueur avec une confiance totale.

L’exécution du code côté débogage avec confiance totale devient problématique lorsque le débogage n’est pas entièrement approuvé. Si un visualiseur tente de charger un assembly d’approbation partielle à partir du débogueur dans le débogueur, Visual Studio met fin au visualiseur.

Toutefois, une vulnérabilité mineure existe toujours. La partie côté débogué peut s'associer avec une partie côté débogueur qui a été chargée à partir d'une autre source (et non du côté débogué). Le côté débogué peut ensuite demander au côté débogueur approuvé d'effectuer des actions en son nom. Si la classe de débogueur approuvée expose un mécanisme « supprimer ce fichier », par exemple, le débogueur de confiance partielle peut appeler ce mécanisme lorsque l’utilisateur appelle son visualiseur.

Pour atténuer cette vulnérabilité, tenez compte des interfaces exposées par votre visualiseur.