Code de sécurité d’accès (cas)

Définition - Que signifie la sécurité d'accès par code (CAS)?

La sécurité d'accès au code (CAS) est un mécanisme de sécurité par lequel le Common Language Runtime (CLR) du framework .NET peut restreindre le code managé pour exécuter des opérations avec un ensemble limité d'autorisations.

CAS applique les politiques de sécurité dans le framework .NET en empêchant l'accès non autorisé aux ressources et opérations protégées. Contrairement aux méthodes de sécurité traditionnelles, où les informations d'identification de l'utilisateur sont obtenues auprès de l'utilisateur, CAS est conçu pour résoudre les problèmes rencontrés lors de l'obtention de code à partir de sources externes, qui contiennent des bogues et des vulnérabilités. Ces bogues et vulnérabilités peuvent rendre le système d'un utilisateur vulnérable au code malveillant, qui peut effectuer des tâches sans que l'utilisateur le sache. CAS ne connaît et n'autorise en fait que les opérations qu'un code d'utilisateur donné peut et ne peut pas effectuer. Cette fonctionnalité est applicable à tous les codes gérés ciblant le CLR.

CAS fournit une sécurité basée sur des preuves, basée sur une couche supérieure à la sécurité fournie par le système d'exploitation Windows. Alors que Windows est basé sur les autorisations de l'utilisateur, CAS est basé sur les preuves de l'assembly. L'assembly contient les autorisations définies dans la politique de sécurité et constitue la base pour permettre au code d'exécuter les actions nécessaires.

Definir Tech explique la sécurité d'accès au code (CAS)

CAS repose, entre autres, sur les éléments suivants:

  1. Autorisations: il s'agit des droits de base nécessaires pour accéder à une ressource protégée ou exécuter une opération protégée.
  2. Ensemble d'autorisations: Il s'agit d'un ensemble d'autorisations, telles que «confiance totale», «rien», «Internet», «intranet local» et autres.
  3. Groupe de codes: il s'agit d'un regroupement logique de code avec une condition spécifiée pour l'appartenance, telle que LocalIntranet_zone et Internet_zone.
  4. Preuve: il s'agit d'informations relatives à l'assembly, telles que le répertoire des applications, l'éditeur, l'URL et la zone de sécurité.
  5. Politique de sécurité: il s'agit d'un ensemble de règles configurées par un administrateur pour déterminer les autorisations accordées pour un code exprimé hiérarchiquement à quatre niveaux: entreprise, machine, utilisateur et domaine d'application.

L'opération privilégiée d'exécution de code demande au CLR une ou plusieurs autorisations. L'autorisation réelle est calculée à l'aide de l'union des autorisations définies dans les groupes de codes, puis d'une intersection au niveau de la stratégie. Le CLR garantit que les autorisations demandées sont dans les autorisations accordées de la méthode de cet assembly. Si l'autorisation n'est pas accordée, une exception de sécurité sera levée.

CAS fournit deux modes de sécurité pour définir les autorisations pour le code:

  • La sécurité déclarative est implémentée en définissant des attributs de sécurité au niveau de l'assembly, de la classe ou du membre. Le mode déclaratif est utilisé lorsque les appels doivent être évalués au moment de la compilation.
  • La sécurité impérative utilise des appels de méthode d'exécution pour créer des instances de classes de sécurité. Le mode impératif est utilisé lorsque les appels doivent être évalués au moment de l'exécution.

CAS a des limites, y compris le dysfonctionnement d'une application déplacée vers un autre système lorsque la politique de sécurité est différente. De plus, il n'y a aucun contrôle sur le code non géré et aucun contrôle du développement des applications pour répondre aux besoins de différents scénarios de paramètres de sécurité sur les systèmes des utilisateurs.

Pour utiliser efficacement la technologie de sécurité fine de CAS, les développeurs doivent écrire du code de type sécurisé, utiliser une syntaxe déclarative ou impérative basée sur le contexte, demander des autorisations au moment de l'exécution pour que le code s'exécute et utiliser des bibliothèques sécurisées.